Skip to content
This repository has been archived by the owner on May 14, 2024. It is now read-only.

[Vote ended on 2023-02-14] Unmaintained collection: google.cloud #105

Closed
nkakouros opened this issue May 25, 2022 · 53 comments
Closed

[Vote ended on 2023-02-14] Unmaintained collection: google.cloud #105

nkakouros opened this issue May 25, 2022 · 53 comments

Comments

@nkakouros
Copy link

Summary

The google.cloud collection has been unmaintained for some time now, it has:

  • had only two commits the past 6 months about trivial stuff,
  • no release for almost 1.5 years,
  • 90 open and completely unanswered issues
  • 26 pull requests ignored
  • does not support hundreds of APIs and operations for google cloud.

Also, ansible was removed from the magic modules repository because building it is no longer supported in that repo. That repo also had no ansible commits for a year.

The collection kind of works now, but it has several bugs.

If it gets removed, users will be left with the community.google collection which is very limited.

Maintaining it may be tricky as, in the past, it was generated automatically by magic modules and maybe it should still be done that way.

@nkakouros nkakouros changed the title Unmaintained collection: google.coud Unmaintained collection: google.cloud May 25, 2022
@felixfontein
Copy link
Contributor

Thanks for creating this issue!

There are two (somewhat distinct) problems:

  1. How to get a maintained collection for GCP?
  2. Keep google.cloud in Ansible or not?

About 1 I can't say much, except point to Brian's email that the collection is owned by Google, so it's their decision what to do with google.cloud. (Anyone else has to think of Google Feed Reader?)

About 2: I think google.cloud qualifies as an unmaintained collection, so it should be removed from Ansible as described here: https://github.com/ansible-collections/overview/blob/main/removal_from_ansible.rst#unmaintained-collections While this means that users who install Ansible from PyPi (or equivalent OS packages) no longer can directly access that collection, they can still manually install google.cloud (ansible-galaxy collection install google.cloud). So removing it doesn't make it impossible to still use it.

@felixfontein
Copy link
Contributor

CC @rambleraptor who has been pretty active on the google.cloud collection for a long time.

@mariolenz
Copy link
Contributor

I think google.cloud qualifies as an unmaintained collection, so it should be removed from Ansible as described here: https://github.com/ansible-collections/overview/blob/main/removal_from_ansible.rst#unmaintained-collections

I agree.

@felixfontein
Copy link
Contributor

Let's keep this open for a few more days, and if nobody is against that, I'll start the process as described here by announcing that this collection seems unmaintained in The Bullhorn and in the collection's repository. Then roughtly a month later, assuming that the collection doesn't show any signs of being actively maintained again, we can start a vote for the Steering Committee. If then nothing happens again, the collection will be removed from Ansible 8.0.0 in roughly a year.

@toumorokoshi
Copy link

Hello! I'm one of the current Google engineers working on magic-modules. rambleraptor no longer works at Google, but I can join in their place.

As @nkakouros has already said, we haven't been able to allocate time for the google.cloud ansible collection to get the attention it needs.

Long term I think there's some effort we're working on that will improve our ability to support Ansible, but short-term I don't see a good option for first-party support. I know that's not a great answer, but I'm interested in finding the optimal (or least-worst) path forward.

It sounds like there's a community-maintained integration with GCP currently (community.google). Is it a better state to turn google.cloud over to a set of community contributors?

@felixfontein
Copy link
Contributor

@toumorokoshi thanks for your message, I really appreciate this! There is a community.google collection, but it is effectively unmaintained as well. It contains some modules which were part of Ansible 2.9 that Google didn't want to have in the google.cloud collection (I guess because they were not automatically generated and predated magic-modules, but I never was involved in that). The main difference to google.cloud is that it is owned by the Ansible community team, so community contributions to it can be easily merged and new versions can be released. Unfortunately, there have been zero contributions so far, and also zero issues reported, which could also be a sign that nobody is using it (and maybe it isn't working at all).

(@nkakouros since you mentioned community.google: do you have any experience with it?)

@toumorokoshi
Copy link

The main difference to google.cloud is that it is owned by the Ansible community team, so community contributions to it can be easily merged and new versions can be released.

yep! make sense.

To clarify I wasn't suggesting we use comomunity.google, but perhaps we can migrate google.cloud to something maintained by the community team? If the main issue is that the repo ownership is such that it's preventing people who want to maintain and be more active, I think we can move the ownership (or fork) to enable more activity.

I'm also happy to join in a community meeting or other medium if it'll help move things along quicker.

And sorry I'm not intricately familiar with the way this community operates, so if I'm misusing terminology or mischaracterizing a practice let me know.

@mariolenz
Copy link
Contributor

If the main issue is that the repo ownership is such that it's preventing people who want to maintain and be more active, I think we can move the ownership (or fork) to enable more activity.

I'm afraid the main issue is that the collection is more or less unmaintained. Changing the ownership would allow the community to do this. But maybe nobody wants to, so the problem doesn't change: An unmaintained collection in Ansible.

I thought about moving the modules to community.google (they're both GPL3 as far as I can see, so this shouldn't be a problem) but, as @felixfontein pointed out, this collection is effectively unmaintained as well.

And sorry I'm not intricately familiar with the way this community operates, so if I'm misusing terminology or mischaracterizing a practice let me know.

No reason to be sorry.

Just to make this clear: Removing google.cloud from Ansible doesn't mean people can't use it. They would just have to install it via ansible-galaxy. And it doesn't mean removing the repository, either. If Google starts to really maintain the collection some time in the future, we could add it again to the Ansible package.

@acozine
Copy link
Contributor

acozine commented Jun 8, 2022

Draft announcement:

The Ansible community will remove the google.cloud collection from the Ansible package in Ansible 8.0.0.

Why is the google.cloud collection being removed?
The google.cloud collection is being removed in accordance with our community guidelines for collections, because it is unmaintained. The collection was last released in February, 2021, and the repo contains many open issues and pull requests with no responses at all. In addition, the functionality of the collection is outdated and minimal.

Can I still use the google.cloud collection?
Yes. The google.cloud collection is included in Ansible 6.x and will be included in Ansible 7.x with a deprecation warning. Starting with Ansible 8.0.0, you can still use the collection, but it will not be installed by pip install ansible; you must install it separately.

Can I help maintain this collection and get it back into the Ansible package?
Yes! We are considering moving these modules into the community.google collection, but we need maintainers before we do that. If you can help, reach out to the Ansible community on Matrix or IRC for more information.

@felixfontein
Copy link
Contributor

I think this announcement can be used once the process is at step 5 ("Announce upcoming removal from Ansible Y").

@toumorokoshi
Copy link

toumorokoshi commented Jun 8, 2022

Just to make this clear: Removing google.cloud from Ansible doesn't mean people can't use it. They would just have to install it via ansible-galaxy. And it doesn't mean removing the repository, either. If Google starts to really maintain the collection some time in the future, we could add it again to the Ansible package.

yes, I think that sounds fine.

I think this announcement can be used once the process is at step 5 ("Announce upcoming removal from Ansible Y").

I think the removal sounds good, and I agree the point that moving one unmaintained collection into another doesn't help.

If someone is interested and you want some help moving the collection, let me know. Happy to be pinged on discussions around the Google collection or Google + ansible in general.

@nkakouros
Copy link
Author

There are two concerns about a potential move to community.google.

The current "machine-generated" code has bugs. If these get solved through manual PRs, what will happen if magic modules start working again for ansible (via magic modules or whatever form the long-term effort @toumorokoshi mentions taks)? Will the fixes be undone? This will be bad for the users and if it is not catered for from the start, maintainers (i.e. people that have experience with google.cloud and who know a lot of its bugs) will be reluctant to spend time on work that has an expiration date. The same goes for new features/modules/plugins.

Would moving the collection also mean that a possible future for ansible in magic modules (or elsewhere) is sabotaged because the community will be anyway maintaining a google cloud collection?

@mariolenz
Copy link
Contributor

Proposal for the Bullhorn announcement (step 1):

It looks like the google.cloud collection is effectively unmaintained. According to the current community guidelines for collections, we consider removing it in a future version of the Ansible community package. Please see Unmaintained collection: google.cloud for more information or to announce that you're interested in taking over the maintenance of google.cloud.

@felixfontein
Copy link
Contributor

I don't think it's possible to take over maintenance of google.cloud, but creating a community fork (be that in community.google or under another name). At least not without some coordination with Google first. So how about adjusting this to:

It looks like the google.cloud collection is effectively unmaintained. According to the current community guidelines for collections, we consider removing it in a future version of the Ansible community package. Please see Unmaintained collection: google.cloud for more information or to announce that you're interested in taking over the maintenance of (a fork of) google.cloud.

I would also expand a bit more on how the process works:

At least one month after this announcement appears, the Ansible community engineering steering committee will vote on whether this collection is considered unmaintained and will be removed, or whether it will be kept. If it will be removed, this will happen earliest in Ansible 8.0.0. Please note that you can still manually install the collection with ansible-galaxy collection install google.cloud even when it has been removed from Ansible.

@felixfontein
Copy link
Contributor

There are two concerns about a potential move to community.google.

The current "machine-generated" code has bugs. If these get solved through manual PRs, what will happen if magic modules start working again for ansible (via magic modules or whatever form the long-term effort @toumorokoshi mentions taks)? Will the fixes be undone? This will be bad for the users and if it is not catered for from the start, maintainers (i.e. people that have experience with google.cloud and who know a lot of its bugs) will be reluctant to spend time on work that has an expiration date. The same goes for new features/modules/plugins.

I think the only acceptable way is to reactivate Ansible support for magic modules (if that's not possible in magic modules itself, that needs to be forked as well). I have no idea how much work this is going to be - I guess it will be quite some amount of work. So this is IMO only a relalistic option if there are preferably multiple persons dedicating quite some time into this.

Would moving the collection also mean that a possible future for ansible in magic modules (or elsewhere) is sabotaged because the community will be anyway maintaining a google cloud collection?

I personally don't think it makes sense to copy over anything from google.cloud without the help of magic modules (forked or not), basically for the reasons you are mentioning. (And also since it will be a huge manual effort to keep the modules updated.)

@mariolenz
Copy link
Contributor

@felixfontein Thanks! I think your changes / additions to my proposal sound great.

@mariolenz
Copy link
Contributor

Updated proposal for the Bullhorn announcement (step 1):

It looks like the google.cloud collection is effectively unmaintained. According to the current community guidelines for collections, we consider removing it in a future version of the Ansible community package. Please see Unmaintained collection: google.cloud for more information or to announce that you're interested in taking over the maintenance of (a fork of) google.cloud.

At least one month after this announcement appears, the Ansible community engineering steering committee will vote on whether this collection is considered unmaintained and will be removed, or whether it will be kept. If it will be removed, this will happen earliest in Ansible 8.0.0. Please note that you can still manually install the collection with ansible-galaxy collection install google.cloud even when it has been removed from Ansible.

Thanks @felixfontein for your suggestions!

@mariolenz
Copy link
Contributor

mariolenz commented Jun 15, 2022

Proposal for the google.cloud issue:

It looks like this collection is effectively unmaintained. According to the current community guidelines for collections, we consider removing it in a future version of the Ansible community package. Please see Unmaintained collection: google.cloud for more information.

At least one month after this announcement appears on Bullhorn, the Ansible community engineering steering committee will vote on whether this collection is considered unmaintained and will be removed, or whether it will be kept. If it will be removed, this will happen earliest in Ansible 8.0.0. Please note that people can still manually install the collection with ansible-galaxy collection install google.cloud even when it has been removed from Ansible.

@felixfontein
Copy link
Contributor

I'd change the first sentence of the second paragraph of the issue tracker announcement to At least one month after this announcement appears here and on [Bullhorn](https://github.com/ansible/community/wiki/News#the-bullhorn), .... Similar, the first sentence of the second paragraph of the Bullhorn announcement to At least one month after this announcement appears here and in the collection's issue tracker, ....

@samccann
Copy link

First paragraph should be we will consider (aka add will)

@mariolenz
Copy link
Contributor

FYI: ansible-collections/google.cloud#485

@felixfontein
Copy link
Contributor

The announcements have been there fore more than four weeks, so we could proceed with voting on this.

@mariolenz
Copy link
Contributor

I've opened a vote on this: #121

@mariolenz mariolenz changed the title Unmaintained collection: google.cloud [Vote ends on 2022-08-03] Unmaintained collection: google.cloud Jul 20, 2022
@felixfontein felixfontein added the active-vote These are currently active votes label Jul 20, 2022
@gotmax23 gotmax23 added implemented and removed being_implemented This is currently being implemented labels Dec 3, 2022
@toumorokoshi
Copy link

The new version of the collection has shipped! 1.1.2 contains a handful of bugfixes and a couple new features.

As mentioned I'll be reviewing PRs and fixing bugs as needed.

@Andersson007
Copy link
Contributor

@toumorokoshi great to hear, thanks for stepping up and taking care of the collection!

@felixfontein
Copy link
Contributor

We discussed this at today's community meeting, and decided to start a vote of re-including google.cloud to Ansible 8 once Ansible 7.2.0 is out (the next Ansible release that will contain the new google.cloud 1.1.2 release).

@toumorokoshi
Copy link

We discussed this at today's community meeting, and decided to start a vote of re-including google.cloud to Ansible 8 once Ansible 7.2.0 is out (the next Ansible release that will contain the new google.cloud 1.1.2 release).

Awesome! Thank you. Let me know if I can provide information or help in any way. Happy to attend any meetings as well.

@mariolenz
Copy link
Contributor

We discussed this at today's community meeting, and decided to start a vote of re-including google.cloud to Ansible 8 once Ansible 7.2.0 is out (the next Ansible release that will contain the new google.cloud 1.1.2 release).

@toumorokoshi If I forget to open a vote on re-including / canceling the removal google.cloud, please ping me :-)

@toumorokoshi
Copy link

@mariolenz since you asked for a ping on the vote :) Did this vote happen, or is it planned?

@mariolenz
Copy link
Contributor

@toumorokoshi We wanted to wait until 7.2.0 has been released, which didn't happen yet. ETA is end of January / early February.

@felixfontein Do you think I should create just the vote, or also an issue similar to #180? We could re-use this issue for the vote, but it might be better to have a new one.

@felixfontein
Copy link
Contributor

@mariolenz reusing this issue should be fine IMO.

@toumorokoshi
Copy link

We wanted to wait until 7.2.0 has been released, which didn't happen yet. ETA is end of January / early February.

Got it! Thank you.

@mariolenz mariolenz added the active-vote These are currently active votes label Feb 1, 2023
@mariolenz mariolenz changed the title [Vote ended on 2022-08-03] Unmaintained collection: google.cloud [Vote ends on 2023-02-14] Unmaintained collection: google.cloud Feb 1, 2023
@mariolenz
Copy link
Contributor

Vote on cancelling the removal process happens in #195

@felixfontein
Copy link
Contributor

felixfontein commented Feb 9, 2023

@ansible-community/steering-committee please do not forget to vote on #195, the vote ends today soon and does not have enough SC votes!

@mariolenz mariolenz changed the title [Vote ends on 2023-02-14] Unmaintained collection: google.cloud [Vote ended on 2023-02-14] Unmaintained collection: google.cloud Feb 14, 2023
@mariolenz mariolenz removed the active-vote These are currently active votes label Feb 14, 2023
@mariolenz
Copy link
Contributor

I counted votes:

7 x +1 from SC (mariolenz briantist felixfontein Andersson007 acozine russoz ssbarnea)

2 x +1 from community (jillr cybette)

1 x neutral +0 from SC (gotmax23)

Can someone from the Steering Committee confirm?

@Andersson007
Copy link
Contributor

I counted votes:

7 x +1 from SC (mariolenz briantist felixfontein Andersson007 acozine russoz ssbarnea)

2 x +1 from community (jillr cybette)

1 x neutral +0 from SC (gotmax23)

Can someone from the Steering Committee confirm?

i've counted the same numbers

@mariolenz mariolenz added being_implemented This is currently being implemented and removed implemented labels Feb 14, 2023
@mariolenz
Copy link
Contributor

Then it looks like the vote has been accepted and we will keep google.cloud in Ansible 8.

I'll create a PR for ansible-build-data and a Bullhorn announcement later this day.

Thanks all!

@mariolenz
Copy link
Contributor

netbsd-srcmastr pushed a commit to NetBSD/pkgsrc that referenced this issue Mar 2, 2023
7.3.0

Major Changes
-------------

kubernetes.core
~~~~~~~~~~~~~~~

- refactor K8sAnsibleMixin into module_utils/k8s/ (ansible-collections/kubernetes.core#481).

Minor Changes
-------------

Ansible-core
~~~~~~~~~~~~

- Make using blocks as handlers a parser error (ansible/ansible#79968)
- ansible-test - Specify the configuration file location required by test plugins when the config file is not found. This resolves issue: ansible/ansible#79411
- ansible-test - Update error handling code to use Python 3.x constructs, avoiding direct use of ``errno``.
- ansible-test acme test container - update version to update used Pebble version, underlying Python and Go base containers, and Python requirements (ansible/ansible#79783).

cisco.aci
~~~~~~~~~

- Add Node Profile BGP Peer and Route Control Profile functionalities to aci_l3out_bgp_peer module
- Add SVI auto state support (auto_state attribute) to aci_l3out_interface
- Add aci_aaa_domain, aci_aaa_role and aci_custom_privilege modules
- Add aci_fabric_pod_policy_group module
- Add aci_interface_policy_leaf_profile_fex_policy_group module and add FEX support to aci_access_port_to_interface_policy_leaf_profile
- Add aci_tenant_span_src_group_src module
- Add action_groups for module_defaults
- Add support for filter direction in aci_contract_subject and aci_contract_subject_to_filter
- Update modules to assign roles and permissions to a user

cisco.nxos
~~~~~~~~~~

- `nxos_acls` - Support ICMPv6 option. Please refer to module doc for all new options (ansible-collections/cisco.nxos#624).
- `nxos_facts` - Update facts gathering logic to ensure that `gather_network_resources: all` does not fail for NX-OS on MDS switches.
- `nxos_l2_interfaces` - Add new mode dot1q-tunnel (ansible-collections/cisco.nxos#600).

community.crypto
~~~~~~~~~~~~~~~~

- get_certificate - adds ``ciphers`` option for custom cipher selection (ansible-collections/community.crypto#571).

community.general
~~~~~~~~~~~~~~~~~

- dnsimple - set custom User-Agent for API requests to DNSimple (ansible-collections/community.general#5927).
- flatpak_remote - add new boolean option ``enabled``. It controls, whether the remote is enabled or not (ansible-collections/community.general#5926).
- gitlab_project - add ``releases_access_level``, ``environments_access_level``, ``feature_flags_access_level``, ``infrastructure_access_level``, ``monitor_access_level``, and ``security_and_compliance_access_level`` options (ansible-collections/community.general#5986).
- jc filter plugin - added the ability to use parser plugins (ansible-collections/community.general#6043).
- keycloak_group - add new optional module parameter ``parents`` to properly handle keycloak subgroups (ansible-collections/community.general#5814).
- keycloak_user_federation - make ``org.keycloak.storage.ldap.mappers.LDAPStorageMapper`` the default value for mappers ``providerType`` (ansible-collections/community.general#5863).
- ldap modules - add ``xorder_discovery`` option (ansible-collections/community.general#6045, ansible-collections/community.general#6109).
- lxd_container - add diff and check mode (ansible-collections/community.general#5866).
- mattermost, rocketchat, slack - replace missing default favicon with docs.ansible.com favicon (ansible-collections/community.general#5928).
- modprobe - add ``persistent`` option (ansible-collections/community.general#4028, ansible-collections/community.general#542).
- osx_defaults - include stderr in error messages (ansible-collections/community.general#6011).
- proxmox - suppress urllib3 ``InsecureRequestWarnings`` when ``validate_certs`` option is ``false`` (ansible-collections/community.general#5931).
- redfish_command - adding ``EnableSecureBoot`` functionality (ansible-collections/community.general#5899).
- redfish_command - adding ``VerifyBiosAttributes`` functionality (ansible-collections/community.general#5900).
- sefcontext - add support for path substitutions (ansible-collections/community.general#1193).

community.grafana
~~~~~~~~~~~~~~~~~

- able to set `uid` for datasources in grafana via module grafana_datasource

community.mongodb
~~~~~~~~~~~~~~~~~

- 491 mongodb_shell - Add feature to detect if mongo or mongosh is available.
- 494 mongodb_auth - Removes module_defaults from role.
- 494 mongodb_shutdown - Fix examples block.
- 511 mongodb_auth - Adds support for deletion of users.
- 514 mongodb_linux - Remove extended FQCN for pam_limits.
- 524 mongodb_auth - Add supports for Amazon Linux 2.
- 528 multiple roles - Use first ip address when multiple bind IPs provided.
- 530 mongodb_role - Adds new module to manage MongoDB roles.
- 536 mongodb_auth - Add user after enabling authentication.
- 544 mongodb_replicaset - Module documentation improvements.
- 547 mongodb_repository - Bump default of MongoDB to 6.0.

community.mysql
~~~~~~~~~~~~~~~

- mysql_info - add ``connector_name`` and ``connector_version`` to returned values (ansible-collections/community.mysql#497).
- mysql_role - enable auto_commit to avoid MySQL metadata table lock (ansible-collections/community.mysql#479).
- mysql_user - add plugin_auth_string as optional parameter to use a specific pam service if pam/auth_pam plugin is used (ansible-collections/community.mysql#445).
- mysql_user - add the ``session_vars`` argument to set session variables at the beginning of module execution (ansible-collections/community.mysql#478).
- mysql_user - display a more informative invalid privilege exception. Changes the exception handling of the granting permission logic to show the query executed , params and the exception message granting privileges fails` (ansible-collections/community.mysql#465).
- mysql_user - enable auto_commit to avoid MySQL metadata table lock (ansible-collections/community.mysql#479).
- setup_mysql - update MySQL tarball URL (ansible-collections/community.mysql#491).

community.vmware
~~~~~~~~~~~~~~~~

- vmware_guest_disk - Add support for IDE disk add, remove or reconfigure, and change to gather same VM disk info as in vmware_guest_disk_info (ansible-collections/community.vmware#1428).
- vmware_guest_disk - Extend return value documentation for vmware_guest_disk (ansible-collections/community.vmware#1641)
- vmware_guest_disk_info - Move gather VM disk info function to vm_device_helper.py (ansible-collections/community.vmware#1617)
- vmware_vmotion - New parameter timeout in order to allow vmotions running longer than 1 hour (https://github.com/ansible-collections/community.vmware/pulls/1629).

grafana.grafana
~~~~~~~~~~~~~~~

- Updated the return message in grafana.grafana.folder module

hetzner.hcloud
~~~~~~~~~~~~~~

- hcloud_server - add private_networks_info containing name and private ip in responses
- hcloud_server_info - add private_networks_info containing name and private ip in responses
- inventory plugin - Add list of all private networks to server variables.
- inventory plugin - Add new connect_with setting public_ipv6 to connect to discovered servers via public IPv6 address.
- inventory plugin - Add public IPv6 address to server variables.
- inventory plugin - Log warning instead of crashing when some servers do not work with global connect_with setting.

inspur.ispim
~~~~~~~~~~~~

- Change the ansible-test.yml application file version.
- Change the description of the edit_bios module file_url field.
- Modify the description information of the backup module item field.
- Modify the description of the media_attach, retry_count, and retry_time_interval fields of the edit_kvm module.
- Modify the description of the secure_channel field of the edit_media_instance module.
- Modify the description of the slot and vname fields of the add_ldisk module.
- Modify the edit_ntp module example.
- Modify the edit_snmp_trap module version field description information.
- Modify the mode field description information of update_fw module.
- Modify the name field description of the user_group module.
- Modify the restore module example.
- Modify the supporting properties and description information of the edit_ncsi module edit_ncsi field.
- The edit_power_budget module adds the except_action field.

kubernetes.core
~~~~~~~~~~~~~~~

- Adjust k8s_user_impersonation tests to be compatible with Kubernetes 1.24 (ansible-collections/kubernetes.core#520).
- add support for dry run with kubernetes client version >=18.20 (ansible-collections/kubernetes.core#245).
- added ignore.txt for Ansible 2.14 devel branch.
- fixed module_defaults by removing routing hacks from runtime.yml (ansible-collections/kubernetes.core#347).
- helm - add support for -set-file, -set-json, -set and -set-string options when running helm install (ansible-collections/kubernetes.core#533).
- helm - add support for helm dependency update (ansible-collections/kubernetes.core#208).
- helm - add support for post-renderer flag (ansible-collections/kubernetes.core#30).
- helm - add support for timeout cli parameter to allow setting Helm timeout independent of wait (ansible-collections/kubernetes.core#67).
- helm - add support for wait parameter for helm uninstall command. (https://github.com/ansible-collections/kubernetes/core/issues/33).
- helm - support repo location for helm diff (ansible-collections/kubernetes.core#174).
- helm - when ansible is executed in check mode, return the diff between what's deployed and what will be deployed.
- helm, helm_plugin, helm_info, helm_plugin_info, kubectl - add support for in-memory kubeconfig. (ansible-collections/kubernetes.core#492).
- helm_info - add hooks, notes and manifest as part of returned information (ansible-collections/kubernetes.core#546).
- helm_info - add release state as a module argument (ansible-collections/kubernetes.core#377).
- helm_info - added possibility to get all values by adding get_all_values parameter (ansible-collections/kubernetes.core#531).
- helm_plugin - Add plugin_version parameter to the helm_plugin module (ansible-collections/kubernetes.core#157).
- helm_plugin - Add support for helm plugin update using state=update.
- helm_repository - Ability to replace (overwrite) the repo if it already exists by forcing (ansible-collections/kubernetes.core#491).
- helm_repository - add support for pass-credentials cli parameter (ansible-collections/kubernetes.core#282).
- helm_repository - added support for ``host``, ``api_key``, ``validate_certs``, and ``ca_cert``.
- helm_repository - mark `pass_credentials` as no_log=True to silence false warning (ansible-collections/kubernetes.core#412).
- helm_template - add name (NAME of release) and disable_hook as optional module arguments (ansible-collections/kubernetes.core#313).
- helm_template - add show_only and release_namespace as module arguments (ansible-collections/kubernetes.core#313).
- helm_template - add support for -set-file, -set-json, -set and -set-string options when running helm template (ansible-collections/kubernetes.core#546).
- k8s - add no_proxy support to k8s* (ansible-collections/kubernetes.core#272).
- k8s - add support for server_side_apply. (ansible-collections/kubernetes.core#87).
- k8s - add support for user impersonation. (https://github.com/ansible-collections/kubernetes/core/issues/40).
- k8s - allow resource definition using metadata.generateName (ansible-collections/kubernetes.core#35).
- k8s lookup plugin - Enable turbo mode via environment variable  (ansible-collections/kubernetes.core#291).
- k8s, k8s_scale, k8s_service - add support for resource definition as manifest via. (ansible-collections/kubernetes.core#451).
- k8s_cp - remove dependency with 'find' executable on remote pod when state=from_pod (ansible-collections/kubernetes.core#486).
- k8s_drain - Adds ``delete_emptydir_data`` option to ``k8s_drain.delete_options`` to evict pods with an ``emptyDir`` volume attached (ansible-collections/kubernetes.core#322).
- k8s_exec - select first container from the pod if none specified (ansible-collections/kubernetes.core#358).
- k8s_exec - update deprecation warning for `return_code` (ansible-collections/kubernetes.core#417).
- k8s_json_patch - minor typo fix in the example section (ansible-collections/kubernetes.core#411).
- k8s_log - add the ``all_containers`` for retrieving all containers' logs in the pod(s).
- k8s_log - added the `previous` parameter for retrieving the previously terminated pod logs (ansible-collections/kubernetes.core#437).
- k8s_log - added the `tail_lines` parameter to limit the number of lines to be retrieved from the end of the logs (ansible-collections/kubernetes.core#488).
- k8s_rollback - add support for check_mode. (https://github.com/ansible-collections/kubernetes/core/issues/243).
- k8s_scale - add support for check_mode. (https://github.com/ansible-collections/kubernetes/core/issues/244).
- kubectl - wait for dd command to complete before proceeding (ansible-collections/kubernetes.core#321).
- kubectl.py - replace distutils.spawn.find_executable with shutil.which in the kubectl connection plugin (ansible-collections/kubernetes.core#456).

netapp.ontap
~~~~~~~~~~~~

- na_ontap_aggregate - new option ``allow_flexgroups`` added.
- na_ontap_cifs - new options ``access_based_enumeration``, ``change_notify``, ``encryption``, ``home_directory``, ``oplocks``, ``show_snapshot``, ``allow_unencrypted_access``, ``namespace_caching`` and ``continuously_available`` added in REST.
- na_ontap_dns - ``skip_validation`` option requires 9.9.1 or later with REST and ignored for cluster DNS operations.
- na_ontap_dns - support cluster scope for modify and delete.
- na_ontap_interface - do not attempt to migrate FC interface if desired ``home_port``, ``home_node`` and ``current_port``, ``current_node`` are same.
- na_ontap_license - support for NLF v2 license files.
- na_ontap_nfs - new options ``root``, ``windows`` and ``security`` added in REST.
- na_ontap_user_role - ``command_directory_name`` is required if ``privileges`` not set in REST.
- na_ontap_user_role - ``path`` is required if ``privileges`` set in REST.
- na_ontap_volume_efficiency - REST support for ``policy`` requires 9.7 or later, ``path`` requires 9.9.1 or later and ``volume_efficiency`` and ``start_ve_scan_old_data`` requires 9.11.1 or later.
- na_ontap_volume_efficiency - ``schedule``, ``start_ve_scan_all``, ``start_ve_build_metadata``, ``start_ve_delete_checkpoint``, ``start_ve_queue_operation``, ``start_ve_qos_policy`` and ``stop_ve_all_operations`` options are not supported with REST.
- na_ontap_volume_efficiency - new option ``volume_name`` added.
- na_ontap_volume_efficiency - updated private cli with REST API.

netbox.netbox
~~~~~~~~~~~~~

- nb_inventory - Add serial and asset tag to extracted attributes

purestorage.flasharray
~~~~~~~~~~~~~~~~~~~~~~

- purefa_network - Added support for NVMe-RoCE and NVMe-TCP service types
- purefa_user - Added Ops Admin role to choices
- purefa_vlan - Added support for NVMe-TCP service type

Breaking Changes / Porting Guide
--------------------------------

hetzner.hcloud
~~~~~~~~~~~~~~

- inventory plugin - Python v3.5+ is now required.

Deprecated Features
-------------------

- Since the google.cloud collection seems to be maintained again, we `cancelled the removal process <https://github.com/ansible-collections/overview/blob/main/removal_from_ansible.rst#cancelling-removal-of-an-unmaintained-collection>`__. So contrary to an earlier announcement, this collection is NOT deprecated and will NOT be removed from Ansible 8 (ansible-community/community-topics#105).

community.general
~~~~~~~~~~~~~~~~~

- gitlab_runner - the option ``access_level`` will lose its default value in community.general 8.0.0. From that version on, you have set this option to ``ref_protected`` explicitly, if you want to have a protected runner (ansible-collections/community.general#5925).
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

8 participants