..
   THIS DOCUMENT IS AUTOMATICALLY GENERATED BY ANTSIBULL! PLEASE DO NOT EDIT MANUALLY! (YOU PROBABLY WANT TO EDIT porting_guide_core_2.20.rst)

.. _porting_13_guide:

========================
Ansible 13 Porting Guide
========================

.. contents::
  :depth: 2


Ansible 13 is based on Ansible-core 2.20.

We suggest you read this page along with the `Ansible 13 Changelog <https://github.com/ansible-community/ansible-build-data/blob/main/13/CHANGELOG-v13.md>`_ to understand what updates you may need to make.

.. _2.20_introduction:

Introduction
============

No notable changes

.. _2.20_playbook:

Playbook
========

Removed quote stripping in PowerShell operations
-------------------------------------------------

The PowerShell module utilities no longer attempt to remove quotes from paths when performing Windows operations like copying and fetching files. This should not affect normal playbooks unless a value is quoted too many times. If you have playbooks that rely on this automatic quote removal, you will need to adjust your path formatting.

.. _2.20_engine:

Engine
======

No notable changes

.. _2.20_plugin_api:

Plugin API
==========

Removed Features
----------------

The following previously deprecated features have been removed:

* The ``DEFAULT_TRANSPORT`` configuration option no longer supports the ``smart`` value that selected the default transport as either ``ssh`` or ``paramiko`` based on the underlying platform configuration.
* The ``vault`` and ``unvault`` filters no longer accept the deprecated ``vaultid`` parameter.
* The ``ansible-galaxy`` command no longer supports the v2 Galaxy server API. Galaxy servers hosting collections must support v3.
* The ``dnf`` and ``dnf5`` modules no longer support the deprecated ``install_repoquery`` option.
* The ``encrypt`` module utility no longer includes the deprecated ``passlib_or_crypt`` API.
* The ``paramiko`` connection plugin no longer supports the ``PARAMIKO_HOST_KEY_AUTO_ADD`` and ``PARAMIKO_LOOK_FOR_KEYS`` configuration keys, which were previously deprecated.
* The ``py3compat.environ`` call has been removed.
* Vars plugins that do not inherit from ``BaseVarsPlugin`` and define a ``get_vars`` method can no longer use the deprecated ``get_host_vars`` or ``get_group_vars`` fallback.
* The ``yum_repository`` module no longer supports the deprecated ``keepcache`` option.

Behavioral Changes
------------------

* The ``DataLoader.get_basedir`` method now returns an absolute path instead of a relative path. Plugin code that relies on relative paths may need adjustment.
* Argument spec validation now treats ``None`` values as empty strings for the ``str`` type for better consistency with pre-2.19 templating conversions.
* When using ``failed_when`` to suppress an error, the ``exception`` key in the result is now renamed to ``failed_when_suppressed_exception``. This prevents the error from being displayed by callbacks after being suppressed. If you have playbooks that check for the exception in the result, update them as follows:

.. code-block:: yaml+jinja

    # Before
    - command: /bin/false
      register: result
      failed_when: false

    - debug:
        msg: "Exception was: {{ result.exception }}"
      when: result.exception is defined

    # After
    - command: /bin/false
      register: result
      failed_when: false

    - debug:
        msg: "Exception was: {{ result.failed_when_suppressed_exception }}"
      when: result.failed_when_suppressed_exception is defined

.. _2.20_command_line:

Command Line
============

* Python 3.11 is no longer a supported control node version. Python 3.12+ is now required for running Ansible.
* Python 3.8 is no longer a supported remote version. Python 3.9+ is now required for target execution.

.. _2.20_deprecated:

Deprecated
==========

INJECT_FACTS_AS_VARS
--------------------

The ``INJECT_FACTS_AS_VARS`` configuration currently defaults to ``True``, but this is now deprecated and it will switch to ``False`` in Ansible 2.24.

When enabled, facts are available both inside the ``ansible_facts`` dictionary and as individual variables in the main namespace. In the ``ansible_facts`` dictionary, the ``ansible_`` prefix is removed from fact names.

You will receive deprecation warnings if you are accessing 'injected' facts. To prepare for the future default:

**Update your playbooks to use the ansible_facts dictionary:**

.. code-block:: yaml+jinja

    # Deprecated - will stop working in 2.24
    - debug:
        msg: "OS: {{ ansible_os_distribution }}"

    # Recommended - works in all versions
    - debug:
        msg: "OS: {{ ansible_facts['distribution'] }}"
        # Note: 'ansible_' prefix is removed inside ansible_facts

**Or explicitly enable the current behavior in your configuration:**

In your ``ansible.cfg`` file:

.. code-block:: ini

    [defaults]
    inject_facts_as_vars = True

By exporting an environment variable:

.. code-block:: shell

    export ANSIBLE_INJECT_FACT_VARS=True

Other Deprecations
------------------

* The ``vars`` internal variable cache will be removed in 2.24. This cache, once used internally, exposes variables in inconsistent states. The ``vars`` and ``varnames`` lookups should be used instead.
* Specifying ``ignore_files`` as a string in the ``include_vars`` module is deprecated. Use a list instead:

.. code-block:: yaml

    # Deprecated
    - include_vars:
        dir: vars/
        ignore_files: ".gitkeep"

    # Correct
    - include_vars:
        dir: vars/
        ignore_files: [".gitkeep"]

.. _2.20_modules:

Modules
=======

Modules removed
---------------

The following modules no longer exist:

* No notable changes

Deprecation notices
-------------------

No notable changes

Noteworthy module changes
-------------------------

* The ``include_vars`` module now raises an error if the ``extensions`` parameter is not specified as a list. Previously, non-list values were silently accepted.
* The ``include_vars`` module now raises an error if the ``ignore_files`` parameter is not specified as a list. Previously, string values were accepted but are now deprecated.
* The ``replace`` module now reads and writes files in text-mode as unicode characters instead of as bytes, and switches regex matching to unicode characters instead of bytes. This may affect playbooks that rely on byte-level operations.

Plugins
=======

Noteworthy plugin changes
-------------------------

No notable changes

Porting custom scripts
======================

No notable changes

Networking
==========

No notable changes

Porting Guide for v13.4.0
=========================

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

containers.podman
^^^^^^^^^^^^^^^^^

- Add podman Quadlet modules

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

- The awx.awx collection will be removed from Ansible 14.
  The collection is undergoing a heavy \ `refactoring <https://forum.ansible.com/t/7404>`__ and currently does not align with the standards for the community package.
  See `the removal discussion for details <https://forum.ansible.com/t/44706>`__.
  After removal, users can still install this collection with ``ansible-galaxy collection install awx.awx``.

community.aws
^^^^^^^^^^^^^

- The alias ``aws_acm_info`` for the ``acm_certificate_info`` module has been deprecated. Please use ``community.aws.acm_certificate_info`` instead (https://github.com/ansible-collections/community.aws/pull/2387).
- The alias ``aws_acm`` for the ``acm_certificate`` module has been deprecated. Please use ``community.aws.acm_certificate`` instead (https://github.com/ansible-collections/community.aws/pull/2387).
- The alias ``aws_api_gateway_domain`` for the ``api_gateway_domain`` module has been deprecated. Please use ``community.aws.api_gateway_domain`` instead (https://github.com/ansible-collections/community.aws/pull/2387).
- The alias ``aws_api_gateway`` for the ``api_gateway`` module has been deprecated. Please use ``community.aws.api_gateway`` instead (https://github.com/ansible-collections/community.aws/pull/2387).
- The alias ``aws_application_scaling_policy`` for the ``application_autoscaling_policy`` module has been deprecated. Please use ``community.aws.application_autoscaling_policy`` instead (https://github.com/ansible-collections/community.aws/pull/2387).
- The alias ``aws_batch_compute_environment`` for the ``batch_compute_environment`` module has been deprecated. Please use ``community.aws.batch_compute_environment`` instead (https://github.com/ansible-collections/community.aws/pull/2387).
- The alias ``aws_batch_job_definition`` for the ``batch_job_definition`` module has been deprecated. Please use ``community.aws.batch_job_definition`` instead (https://github.com/ansible-collections/community.aws/pull/2387).
- The alias ``aws_batch_job_queue`` for the ``batch_job_queue`` module has been deprecated. Please use ``community.aws.batch_job_queue`` instead (https://github.com/ansible-collections/community.aws/pull/2387).
- The alias ``aws_codebuild`` for the ``codebuild_project`` module has been deprecated. Please use ``community.aws.codebuild_project`` instead (https://github.com/ansible-collections/community.aws/pull/2387).
- The alias ``aws_codecommit`` for the ``codecommit_repository`` module has been deprecated. Please use ``community.aws.codecommit_repository`` instead (https://github.com/ansible-collections/community.aws/pull/2387).
- The alias ``aws_codepipeline`` for the ``codepipeline`` module has been deprecated. Please use ``community.aws.codepipeline`` instead (https://github.com/ansible-collections/community.aws/pull/2387).
- The alias ``aws_config_aggregation_authorization`` for the ``config_aggregation_authorization`` module has been deprecated. Please use ``community.aws.config_aggregation_authorization`` instead (https://github.com/ansible-collections/community.aws/pull/2387).
- The alias ``aws_config_aggregator`` for the ``config_aggregator`` module has been deprecated. Please use ``community.aws.config_aggregator`` instead (https://github.com/ansible-collections/community.aws/pull/2387).
- The alias ``aws_config_delivery_channel`` for the ``config_delivery_channel`` module has been deprecated. Please use ``community.aws.config_delivery_channel`` instead (https://github.com/ansible-collections/community.aws/pull/2387).
- The alias ``aws_config_recorder`` for the ``config_recorder`` module has been deprecated. Please use ``community.aws.config_recorder`` instead (https://github.com/ansible-collections/community.aws/pull/2387).
- The alias ``aws_config_rule`` for the ``config_rule`` module has been deprecated. Please use ``community.aws.config_rule`` instead (https://github.com/ansible-collections/community.aws/pull/2387).
- The alias ``aws_direct_connect_confirm_connection`` for the ``directconnect_confirm_connection`` module has been deprecated. Please use ``community.aws.directconnect_confirm_connection`` instead (https://github.com/ansible-collections/community.aws/pull/2387).
- The alias ``aws_direct_connect_connection`` for the ``directconnect_connection`` module has been deprecated. Please use ``community.aws.directconnect_connection`` instead (https://github.com/ansible-collections/community.aws/pull/2387).
- The alias ``aws_direct_connect_gateway`` for the ``directconnect_gateway`` module has been deprecated. Please use ``community.aws.directconnect_gateway`` instead (https://github.com/ansible-collections/community.aws/pull/2387).
- The alias ``aws_direct_connect_link_aggregation_group`` for the ``directconnect_link_aggregation_group`` module has been deprecated. Please use ``community.aws.directconnect_link_aggregation_group`` instead (https://github.com/ansible-collections/community.aws/pull/2387).
- The alias ``aws_direct_connect_virtual_interface`` for the ``directconnect_virtual_interface`` module has been deprecated. Please use ``community.aws.directconnect_virtual_interface`` instead (https://github.com/ansible-collections/community.aws/pull/2387).
- The alias ``aws_eks_cluster`` for the ``eks_cluster`` module has been deprecated. Please use ``community.aws.eks_cluster`` instead (https://github.com/ansible-collections/community.aws/pull/2387).
- The alias ``aws_elasticbeanstalk_app`` for the ``elasticbeanstalk_app`` module has been deprecated. Please use ``community.aws.elasticbeanstalk_app`` instead (https://github.com/ansible-collections/community.aws/pull/2387).
- The alias ``aws_glue_connection`` for the ``glue_connection`` module has been deprecated. Please use ``community.aws.glue_connection`` instead (https://github.com/ansible-collections/community.aws/pull/2387).
- The alias ``aws_glue_crawler`` for the ``glue_crawler`` module has been deprecated. Please use ``community.aws.glue_crawler`` instead (https://github.com/ansible-collections/community.aws/pull/2387).
- The alias ``aws_glue_job`` for the ``glue_job`` module has been deprecated. Please use ``community.aws.glue_job`` instead (https://github.com/ansible-collections/community.aws/pull/2387).
- The alias ``aws_inspector_target`` for the ``inspector_target`` module has been deprecated. Please use ``community.aws.inspector_target`` instead (https://github.com/ansible-collections/community.aws/pull/2387).
- The alias ``aws_kms_info`` for the ``kms_key_info`` module has been deprecated. Please use ``amazon.aws.kms_key_info`` instead (https://github.com/ansible-collections/community.aws/pull/2387).
- The alias ``aws_kms`` for the ``kms_key`` module has been deprecated. Please use ``amazon.aws.kms_key`` instead (https://github.com/ansible-collections/community.aws/pull/2387).
- The alias ``aws_msk_cluster`` for the ``msk_cluster`` module has been deprecated. Please use ``community.aws.msk_cluster`` instead (https://github.com/ansible-collections/community.aws/pull/2387).
- The alias ``aws_msk_config`` for the ``msk_config`` module has been deprecated. Please use ``community.aws.msk_config`` instead (https://github.com/ansible-collections/community.aws/pull/2387).
- The alias ``aws_s3_bucket_info`` for the ``s3_bucket_info`` module has been deprecated. Please use ``amazon.aws.s3_bucket_info`` instead (https://github.com/ansible-collections/community.aws/pull/2387).
- The alias ``aws_s3_cors`` for the ``s3_cors`` module has been deprecated. Please use ``community.aws.s3_cors`` instead (https://github.com/ansible-collections/community.aws/pull/2387).
- The alias ``aws_secret`` for the ``secretsmanager_secret`` module has been deprecated. Please use ``community.aws.secretsmanager_secret`` instead (https://github.com/ansible-collections/community.aws/pull/2387).
- The alias ``aws_ses_identity_policy`` for the ``ses_identity_policy`` module has been deprecated. Please use ``community.aws.ses_identity_policy`` instead (https://github.com/ansible-collections/community.aws/pull/2387).
- The alias ``aws_ses_identity`` for the ``ses_identity`` module has been deprecated. Please use ``community.aws.ses_identity`` instead (https://github.com/ansible-collections/community.aws/pull/2387).
- The alias ``aws_ses_rule_set`` for the ``ses_rule_set`` module has been deprecated. Please use ``community.aws.ses_rule_set`` instead (https://github.com/ansible-collections/community.aws/pull/2387).
- The alias ``aws_sgw_info`` for the ``storagegateway_info`` module has been deprecated. Please use ``community.aws.storagegateway_info`` instead (https://github.com/ansible-collections/community.aws/pull/2387).
- The alias ``aws_ssm_parameter_store`` for the ``ssm_parameter`` module has been deprecated. Please use ``community.aws.ssm_parameter`` instead (https://github.com/ansible-collections/community.aws/pull/2387).
- The alias ``aws_step_functions_state_machine_execution`` for the ``stepfunctions_state_machine_execution`` module has been deprecated. Please use ``community.aws.stepfunctions_state_machine_execution`` instead (https://github.com/ansible-collections/community.aws/pull/2387).
- The alias ``aws_step_functions_state_machine`` for the ``stepfunctions_state_machine`` module has been deprecated. Please use ``community.aws.stepfunctions_state_machine`` instead (https://github.com/ansible-collections/community.aws/pull/2387).
- The alias ``aws_waf_condition`` for the ``waf_condition`` module has been deprecated. Please use ``community.aws.waf_condition`` instead (https://github.com/ansible-collections/community.aws/pull/2387).
- The alias ``aws_waf_info`` for the ``waf_info`` module has been deprecated. Please use ``community.aws.waf_info`` instead (https://github.com/ansible-collections/community.aws/pull/2387).
- The alias ``aws_waf_rule`` for the ``waf_rule`` module has been deprecated. Please use ``community.aws.waf_rule`` instead (https://github.com/ansible-collections/community.aws/pull/2387).
- The alias ``aws_waf_web_acl`` for the ``waf_web_acl`` module has been deprecated. Please use ``community.aws.waf_web_acl`` instead (https://github.com/ansible-collections/community.aws/pull/2387).
- The alias ``cloudfront_info`` for the ``cloudfront_distribution_info`` module has been deprecated. Please use ``community.aws.cloudfront_distribution_info`` instead (https://github.com/ansible-collections/community.aws/pull/2387).
- The alias ``cloudtrail`` for the ``cloudtrail`` module has been deprecated. Please use ``amazon.aws.cloudtrail`` instead (https://github.com/ansible-collections/community.aws/pull/2387).
- The alias ``ec2_asg_info`` for the ``autoscaling_group_info`` module has been deprecated. Please use ``amazon.aws.autoscaling_group_info`` instead (https://github.com/ansible-collections/community.aws/pull/2387).
- The alias ``ec2_asg_instance_refresh_info`` for the ``autoscaling_instance_refresh_info`` module has been deprecated. Please use ``amazon.aws.autoscaling_instance_refresh_info`` instead (https://github.com/ansible-collections/community.aws/pull/2387).
- The alias ``ec2_asg_instance_refresh`` for the ``autoscaling_instance_refresh`` module has been deprecated. Please use ``amazon.aws.autoscaling_instance_refresh`` instead (https://github.com/ansible-collections/community.aws/pull/2387).
- The alias ``ec2_asg_lifecycle_hook`` for the ``autoscaling_lifecycle_hook`` module has been deprecated. Please use ``community.aws.autoscaling_lifecycle_hook`` instead (https://github.com/ansible-collections/community.aws/pull/2387).
- The alias ``ec2_asg_scheduled_action`` for the ``autoscaling_scheduled_action`` module has been deprecated. Please use ``community.aws.autoscaling_scheduled_action`` instead (https://github.com/ansible-collections/community.aws/pull/2387).
- The alias ``ec2_asg`` for the ``autoscaling_group`` module has been deprecated. Please use ``amazon.aws.autoscaling_group`` instead (https://github.com/ansible-collections/community.aws/pull/2387).
- The alias ``ec2_lc_find`` for the ``autoscaling_launch_config_find`` module has been deprecated. Please use ``community.aws.autoscaling_launch_config_find`` instead (https://github.com/ansible-collections/community.aws/pull/2387).
- The alias ``ec2_lc_info`` for the ``autoscaling_launch_config_info`` module has been deprecated. Please use ``community.aws.autoscaling_launch_config_info`` instead (https://github.com/ansible-collections/community.aws/pull/2387).
- The alias ``ec2_lc`` for the ``autoscaling_launch_config`` module has been deprecated. Please use ``community.aws.autoscaling_launch_config`` instead (https://github.com/ansible-collections/community.aws/pull/2387).
- The alias ``ec2_metric_alarm`` for the ``cloudwatch_metric_alarm`` module has been deprecated. Please use ``amazon.aws.cloudwatch_metric_alarm`` instead (https://github.com/ansible-collections/community.aws/pull/2387).
- The alias ``ec2_scaling_policy`` for the ``autoscaling_policy`` module has been deprecated. Please use ``community.aws.autoscaling_policy`` instead (https://github.com/ansible-collections/community.aws/pull/2387).
- The alias ``execute_lambda`` for the ``lambda_execute`` module has been deprecated. Please use ``amazon.aws.lambda_execute`` instead (https://github.com/ansible-collections/community.aws/pull/2387).
- cloudfront_distribution - The ``items`` return value in ``active_trusted_signers`` has been deprecated and will be removed in a release after 2026-12-15. Use ``elements`` instead (https://github.com/ansible-collections/community.aws/pull/2354).
- cloudfront_distribution - The ``items`` return value in ``aliases`` has been deprecated and will be removed in a release after 2026-12-15. Use ``elements`` instead (https://github.com/ansible-collections/community.aws/pull/2354).
- cloudfront_distribution - The ``items`` return value in ``cache_behaviors.items.allowed_methods.cached_methods`` has been deprecated and will be removed in a release after 2026-12-15. Use ``elements`` instead (https://github.com/ansible-collections/community.aws/pull/2354).
- cloudfront_distribution - The ``items`` return value in ``cache_behaviors.items.allowed_methods`` has been deprecated and will be remove in a release after 2026-12-15. Use ``elements`` instead (https://github.com/ansible-collections/community.aws/pull/2354).
- cloudfront_distribution - The ``items`` return value in ``cache_behaviors.items.forwarded_values.cookies.whitelisted_names`` has been deprecated and will be remove in a release after 2026-12-15. Use ``elements`` instead (https://github.com/ansible-collections/community.aws/pull/2354).
- cloudfront_distribution - The ``items`` return value in ``cache_behaviors.items.forwarded_values.headers`` has been deprecated and will be remove in a release after 2026-12-15. Use ``elements`` instead (https://github.com/ansible-collections/community.aws/pull/2354).
- cloudfront_distribution - The ``items`` return value in ``cache_behaviors.items.forwarded_values.query_string_cache_keys`` has been deprecated and will be remove in a release after 2026-12-15. Use ``elements`` instead (https://github.com/ansible-collections/community.aws/pull/2354).
- cloudfront_distribution - The ``items`` return value in ``cache_behaviors.items.lambda_function_associations`` has been deprecated and will be remove in a release after 2026-12-15. Use ``elements`` instead (https://github.com/ansible-collections/community.aws/pull/2354).
- cloudfront_distribution - The ``items`` return value in ``cache_behaviors`` has been deprecated and will be remove in a release after 2026-12-15. Use ``elements`` instead (https://github.com/ansible-collections/community.aws/pull/2354).
- cloudfront_distribution - The ``items`` return value in ``custom_error_responses`` has been deprecated and will be remove in a release after 2026-12-15. Use ``elements`` instead (https://github.com/ansible-collections/community.aws/pull/2354).
- cloudfront_distribution - The ``items`` return value in ``default_cache_behavior.allowed_methods.cached_methods`` has been deprecated and will be remove in a release after 2026-12-15. Use ``elements`` instead (https://github.com/ansible-collections/community.aws/pull/2354).
- cloudfront_distribution - The ``items`` return value in ``default_cache_behavior.allowed_methods`` has been deprecated and will be remove in a release after 2026-12-15. Use ``elements`` instead (https://github.com/ansible-collections/community.aws/pull/2354).
- cloudfront_distribution - The ``items`` return value in ``default_cache_behavior.forwarded_values.cookies.whitelisted_names`` has been deprecated and will be remove in a release after 2026-12-15. Use ``elements`` instead (https://github.com/ansible-collections/community.aws/pull/2354).
- cloudfront_distribution - The ``items`` return value in ``default_cache_behavior.forwarded_values.headers`` has been deprecated and will be remove in a release after 2026-12-15. Use ``elements`` instead (https://github.com/ansible-collections/community.aws/pull/2354).
- cloudfront_distribution - The ``items`` return value in ``default_cache_behavior.forwarded_values.query_string_cache_keys`` has been deprecated and will be remove in a release after 2026-12-15. Use ``elements`` instead (https://github.com/ansible-collections/community.aws/pull/2354).
- cloudfront_distribution - The ``items`` return value in ``default_cache_behavior.lambda_function_associations`` has been deprecated and will be remove in a release after 2026-12-15. Use ``elements`` instead (https://github.com/ansible-collections/community.aws/pull/2354).
- cloudfront_distribution - The ``items`` return value in ``origins.items.custom_origin_config.origin_ssl_protocols`` has been deprecated and will be remove in a release after 2026-12-15. Use ``elements`` instead (https://github.com/ansible-collections/community.aws/pull/2354).
- cloudfront_distribution - The ``items`` return value in ``origins`` has been deprecated and will be remove in a release after 2026-12-15. Use ``elements`` instead (https://github.com/ansible-collections/community.aws/pull/2354).
- cloudfront_distribution - The ``items`` return value in ``restrictions.geo_restriction`` has been deprecated and will be remove in a release after 2026-12-15. Use ``elements`` instead (https://github.com/ansible-collections/community.aws/pull/2354).
- cloudfront_invalidation - The ``items`` return value in ``invalidation.invalidation_batch.paths`` has been deprecated and will be remove in a release after 2026-12-15. Use ``elements`` instead (https://github.com/ansible-collections/community.aws/pull/2354).
- cloudfront_invalidation - The ``items`` return value in ``invalidation.invalidation_batch.paths`` has been deprecated and will be removed in a release after 2026-12-15. Use ``elements`` instead (https://github.com/ansible-collections/community.aws/pull/2354).
- waf_condition - The module has been deprecated as Amazon has retired the ``WAF Classic`` service. Please use the ``AWS WAF (WAFv2)`` service and modules instead. The module will be removed in version 12.0.0 (https://github.com/ansible-collections/community.aws/pull/2389).
- waf_info - The module has been deprecated as Amazon has retired the ``WAF Classic`` service. Please use the ``AWS WAF (WAFv2)`` service and modules instead. The module will be removed in version 12.0.0 (https://github.com/ansible-collections/community.aws/pull/2389).
- waf_rule - The module has been deprecated as Amazon has retired the ``WAF Classic`` service. Please use the ``AWS WAF (WAFv2)`` service and modules instead. The module will be removed in version 12.0.0 (https://github.com/ansible-collections/community.aws/pull/2389).
- waf_web_acl - The module has been deprecated as Amazon has retired the ``WAF Classic`` service. Please use the ``AWS WAF (WAFv2)`` service and modules instead. The module will be removed in version 12.0.0 (https://github.com/ansible-collections/community.aws/pull/2389).

kubernetes.core
^^^^^^^^^^^^^^^

- helm - the ``status.values`` return value has been deprecated and will be removed in a release after 2027-01-08. Use ``status.release_values`` instead (https://github.com/ansible-collections/kubernetes.core/pull/1056).
- helm_info - the ``status.values`` return value has been deprecated and will be removed in a release after 2027-01-08. Use ``status.release_values`` instead (https://github.com/ansible-collections/kubernetes.core/pull/1056).

vmware.vmware_rest
^^^^^^^^^^^^^^^^^^

- Deprecate modules that have been moved to the new vmware.vmware collection. Includes vcenter_vm_guest_customization, vcenter_vm_hardware_adapter_sata, vcenter_vm_hardware_adapter_scsi, vcenter_vm_hardware_cdrom, vcenter_vm_hardware_cpu, vcenter_vm_hardware_disk, vcenter_vm_hardware_ethernet, vcenter_vm_hardware_memory, vcenter_vm

Porting Guide for v13.3.0
=========================

Added Collections
-----------------

- community.clickhouse (version 2.0.0)
- pcg.alpaca_operator (version 2.1.1)

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

community.vmware
^^^^^^^^^^^^^^^^

- Bump required ``vmware.vmware`` collection version to 2.5.0 (https://github.com/ansible-collections/community.vmware/pull/2503).

containers.podman
^^^^^^^^^^^^^^^^^

- Rewrite podman and buildah connections

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

- The ``netapp.cloudmanager`` collection is considered unmaintained and will be removed from Ansible 15 if no one starts maintaining it again before Ansible 15.
  See `Collections Removal Process for unmaintained collections <https://docs.ansible.com/projects/ansible/devel/community/collection_contributors/collection_package_removal.html#unmaintained-collections>`__ for more details, including for how this can be cancelled (`https://forum.ansible.com/t/44891 <https://forum.ansible.com/t/44891>`__).
  After removal, users can still install this collection with ``ansible-galaxy collection install netapp.cloudmanager``.

amazon.aws
^^^^^^^^^^

- ec2_vpc_dhcp_option - the ``dhcp_config`` return value has been deprecated and will be removed in a release after 2026-12-01. Use ``dhcp_options`` instead (https://github.com/ansible-collections/amazon.aws/pull/2772).
- ec2_vpc_dhcp_option_info - the ``dhcp_config`` return value has been deprecated and will be removed in a release after 2026-12-01. Use ``dhcp_options`` instead (https://github.com/ansible-collections/amazon.aws/pull/2772).
- route53 - the ``values`` key in the ``resource_record_sets`` return value has been deprecated in favor of ``record_values`` for Jinja2 compatibility. The ``values`` key will be removed in a release after 2026-12-01 (https://github.com/ansible-collections/amazon.aws/pull/2772).

hetzner.hcloud
^^^^^^^^^^^^^^

- hcloud inventory - The ``hcloud_datacenter`` host variable is deprecated and will be removed after 1 July 2026. Please use the ``hcloud_location`` host variable instead.
- network_info - The ``hcloud_network_info[].servers[].datacenter`` return value is deprecated and will be removed after 1 July 2026. Please use the ``hcloud_network_info[].servers[].location`` return value instead.
- primary_ip - The ``datacenter`` argument is deprecated and will be removed after 1 July 2026. Please use the ``location`` argument instead.
- primary_ip - The ``hcloud_primary_ip.datacenter`` return value is deprecated and will be removed after 1 July 2026. Please use the ``hcloud_primary_ip.location`` return value instead.
- primary_ip_info - The ``hcloud_primary_ip_info[].datacenter`` return value is deprecated and will be removed after 1 July 2026. Please use the ``hcloud_primary_ip_info[].location`` return value instead.
- server - The ``datacenter`` argument is deprecated and will be removed after 1 July 2026. Please use the ``location`` argument instead.
- server - The ``hcloud_server.datacenter`` return value is deprecated and will be removed after 1 July 2026. Please use the ``hcloud_server.location`` return value instead.
- server_info - The ``hcloud_server_info[].datacenter`` return value is deprecated and will be removed after 1 July 2026. Please use the ``hcloud_server_info[].location`` return value instead.

Porting Guide for v13.2.0
=========================

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

netapp.ontap
^^^^^^^^^^^^

- na_ontap_interface - AWS Lambda support added to the module.
- na_ontap_lun - AWS Lambda support added to the module.
- na_ontap_snapshot - AWS Lambda support added to the module.
- na_ontap_svm - AWS Lambda support added to the module.

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

community.general
^^^^^^^^^^^^^^^^^

- All module utils, plugin utils, and doc fragments will be made **private** in community.general 13.0.0. This means that they will no longer be part of the public API of the collection, and can have breaking changes even in bugfix releases. If you depend on importing code from the module or plugin utils, or use one of the doc fragments, please `comment in the issue to discuss this <https://github.com/ansible-collections/community.general/issues/11312>`__. Note that this does not affect any use of community.general in task files, roles, or playbooks (https://github.com/ansible-collections/community.general/issues/11312, https://github.com/ansible-collections/community.general/pull/11320).

community.routeros
^^^^^^^^^^^^^^^^^^

- api_find_and_modify - the current defaults for ``ignore_dynamic`` and ``ignore_builtin`` (both ``false``) have been deprecated and will change to ``true`` in community.routeros 4.0.0. To avoid deprecation messages, please set the value explicitly to ``true`` or ``false``, if you have not already done so. We recommend to set them to ``true``, unless you have a good reason to set them to ``false`` (https://github.com/ansible-collections/community.routeros/pull/399).

Porting Guide for v13.1.0
=========================

Known Issues
------------

community.docker
^^^^^^^^^^^^^^^^

- docker_image, docker_image_export - idempotency for archiving images depends on whether the image IDs used by the image storage backend correspond to the IDs used in the tarball's ``manifest.json`` files. The new default backend in Docker 29 apparently uses image IDs that no longer correspond, whence idempotency no longer works (https://github.com/ansible-collections/community.docker/pull/1199).

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

vmware.vmware
^^^^^^^^^^^^^

- Replace ``ansible.module_utils._text`` (https://github.com/ansible-collections/vmware.vmware/issues/268).
- Replace ``ansible.module_utils.common._collections_compat`` (https://github.com/ansible-collections/vmware.vmware/issues/271).

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

- The ``junipernetworks.junos`` collection has been deprecated.
  It will be removed from Ansible 14 if no one starts maintaining it again before Ansible 14.
  See `Collections Removal Process for unmaintained collections <https://docs.ansible.com/projects/ansible/devel/community/collection_contributors/collection_package_removal.html#unmaintained-collections>`__ for more details (`https://forum.ansible.com/t/44869 <https://forum.ansible.com/t/44869>`__).

community.general
^^^^^^^^^^^^^^^^^

- cloud module utils - this module utils is not used by community.general and will thus be removed from community.general 13.0.0. If you are using it from another collection, please copy it over (https://github.com/ansible-collections/community.general/pull/11205).
- database module utils - this module utils is not used by community.general and will thus be removed from community.general 13.0.0. If you are using it from another collection, please copy it over (https://github.com/ansible-collections/community.general/pull/11205).
- dconf - deprecate fallback mechanism when ``gi.repository`` is not available; fallback will be removed in community.general 15.0.0 (https://github.com/ansible-collections/community.general/pull/11088).
- known_hosts module utils - this module utils is not used by community.general and will thus be removed from community.general 13.0.0. If you are using it from another collection, please copy it over (https://github.com/ansible-collections/community.general/pull/11205).
- layman - ClearLinux was made EOL in July 2025.; the module will be removed from community.general 15.0.0 (https://github.com/ansible-collections/community.general/pull/11087).
- layman - Gentoo deprecated ``layman`` in mid-2023; the module will be removed from community.general 14.0.0 (https://github.com/ansible-collections/community.general/pull/11070).
- pushbullet - module relies on Python package supporting Python 3.2 only; the module will be removed from community.general 13.0.0 (https://github.com/ansible-collections/community.general/pull/11224).
- saslprep module utils - this module utils is not used by community.general and will thus be removed from community.general 13.0.0. If you are using it from another collection, please copy it over (https://github.com/ansible-collections/community.general/pull/11205).
- spotinst_aws_elastigroup - module relies on Python package supporting Python 2.7 only; the module will be removed from community.general 13.0.0 (https://github.com/ansible-collections/community.general/pull/11069).

Porting Guide for v13.0.0
=========================

Added Collections
-----------------

- hitachivantara.vspone_object (version 1.0.0)
- ravendb.ravendb (version 1.0.4)

Known Issues
------------

Ansible-core
^^^^^^^^^^^^

- templating - Exceptions raised in a Jinja ``set`` or ``with`` block which are not accessed by the template are ignored in the same manner as undefined values.
- templating - Passing a container created in a Jinja ``set`` or ``with`` block to a method results in a copy of that container. Mutations to that container which are not returned by the method will be discarded.

community.sops
^^^^^^^^^^^^^^

- When using the ``community.sops.load_vars`` with ansible-core 2.20, note that the deprecation of ``INJECT_FACTS_AS_VARS`` causes deprecation warnings to be shown every time a variable loaded with ``community.sops.load_vars`` is used. This is due to ansible-core deprecating ``INJECT_FACTS_AS_VARS`` without providing an alternative for modules like ``community.sops.load_vars`` to use. If you do not like these deprecation warnings, you have to explicitly set ``INJECT_FACTS_AS_VARS`` to ``true``. **DO NOT** change the use of SOPS encrypted variables to ``ansible_facts``. The situation will hopefully improve in ansible-core 2.21 through the promised API that allows action plugins to set variables; community.sops will adapt to use it, which will make the warning go away. (The API was originally promised for ansible-core 2.20, but then delayed.)

dellemc.openmanage
^^^^^^^^^^^^^^^^^^

- Formal qualification of module ome_smart_fabric_info for Ansible Core version 2.19 is still pending.
- idrac_attributes - The module accepts both the string as well as integer value for the field "SNMP.1.AgentCommunity" for iDRAC10.
- idrac_diagnostics - This module does not support export of diagnostics file to HTTP and HTTPS share via SOCKS proxy.
- idrac_license - Due to API limitation, proxy parameters are ignored during the import operation.
- idrac_license - The module will fail to export license to NFS Share.
- idrac_license - The module will give different error messages for iDRAC9 and iDRAC10 when user imports license with invalid share name.
- idrac_os_deployment - The module continues to return a 200 response and marks the job as completed, even when an outdated date is supplied in the Expose duration.
- idrac_redfish_storage_controller - PatrolReadRatePercent attribute cannot be set in iDRAC10.
- idrac_server_config_profile - When attempting to revert iDRAC settings using a previously exported SCP file, the import operation will complete with errors if a new user was created after the export (Instead of restoring the system to its previous state, including the removal of newly added users).
- idrac_system_info - The module will show empty video list despite having Embedded VIDEO controller.
- ome_smart_fabric_uplink - The module supported by OpenManage Enterprise Modular, however it does not allow the creation of multiple uplinks of the same name. If an uplink is created using the same name as an existing uplink, then the existing uplink is modified.
- redfish_storage_volume - Encryption type and block_io_size bytes will be read only property in iDRAC 9 and iDRAC 10 and hence the module ignores these parameters.
- redfish_storage_volume - Encryption type and block_io_size bytes will be read only property in iDRAC9 and iDRAC10 and hence the module ignores these parameters.

Breaking Changes
----------------

Ansible-core
^^^^^^^^^^^^

- powershell - Removed code that tried to remote quotes from paths when performing Windows operations like copying and fetching file. This should not affect normal playbooks unless a value is quoted too many times.

community.docker
^^^^^^^^^^^^^^^^

- All doc fragments, module utils, and plugin utils are from now on private. They can change at any time, and have breaking changes even in bugfix releases (https://github.com/ansible-collections/community.docker/pull/1144).

community.general
^^^^^^^^^^^^^^^^^

- mh.base module utils - ``debug`` will now always be delegated to the underlying ``AnsibleModule`` object (https://github.com/ansible-collections/community.general/pull/10883).
- oneview module utils - remove import of standard library ``os`` (https://github.com/ansible-collections/community.general/pull/10644).
- slack - the default of ``prepend_hash`` changed from ``auto`` to ``never`` (https://github.com/ansible-collections/community.general/pull/10883).

community.mysql
^^^^^^^^^^^^^^^

- Since version 4.0.0, the collection accepts code written in Python 3. Modules aren't tested against Python 2 and might not work in Python 2 environments.
- collection - stop testing against mysqlclient connector as its support was deprecated in this collection - use PyMySQL connector instead! It'll stop working in 5.0.0 when we remove all related code (https://github.com/ansible-collections/community.mysql/issues/654).
- mysql_db - the ``pipefail`` argument's default value is set to ``true``.  If your target machines do not use ``bash`` as a default interpreter, set ``pipefail`` to ``false`` explicitly. However, we strongly recommend setting up ``bash`` as a default and ``pipefail=true`` as it will protect you from getting broken dumps you don't know about (https://github.com/ansible-collections/community.mysql/issues/407).
- mysql_info - The ``users_info`` filter does not return the ``plugin_auth_string`` field anymore. Use the `plugin_hash_string` return value instead (https://github.com/ansible-collections/community.mysql/pull/629).
- mysql_role - the ``column_case_sensitive`` argument's default value has been changed to ``true``. If your playbook expected the column to be automatically uppercased for your users privileges, you should set this to ``false`` explicitly (https://github.com/ansible-collections/community.mysql/issues/578).
- mysql_user - the ``column_case_sensitive`` argument's default value has been changed to ``true``. If your playbook expected the column to be automatically uppercased for your users privileges, you should set this to ``false`` explicitly (https://github.com/ansible-collections/community.mysql/issues/577).

community.vmware
^^^^^^^^^^^^^^^^

- Removed support for ansible-core < 2.19.0.
- Removed support for vmware.vmware < 2.0.0.
- Replace the dependencies on ``pyvmomi``, ``vmware-vcenter`` and ``vmware-vapi-common-client`` with ``vcf-sdk`` (https://github.com/ansible-collections/community.vmware/pull/2457).

hetzner.hcloud
^^^^^^^^^^^^^^

- Drop support for Python 3.9
- Drop support for ansible-core 2.17

ibm.storage_virtualize
^^^^^^^^^^^^^^^^^^^^^^

- ibm_sv_manage_flashsystem_grid - The flashsystem grid module now uses newer FlashSystem REST APIs to perform tasks.

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

Ansible-core
^^^^^^^^^^^^

- ansible - Add support for Python 3.14.
- ansible - Drop support for Python 3.11 on the controller.
- ansible - Drop support for Python 3.8 on targets.

community.vmware
^^^^^^^^^^^^^^^^

- Re-use code from ``vmware.vmware`` (https://github.com/ansible-collections/community.vmware/pull/2459).
- Replace ``ansible.module_utils._text`` (https://github.com/ansible-collections/community.vmware/issues/2497).
- Replace ``ansible.module_utils.common._collections_compat`` (https://github.com/ansible-collections/community.vmware/issues/2497).
- Replace ``ansible.module_utils.six`` (https://github.com/ansible-collections/community.vmware/pull/2495).

containers.podman
^^^^^^^^^^^^^^^^^

- Add inventory plugins for buildah and podman
- Add podman system connection modules

dellemc.openmanage
^^^^^^^^^^^^^^^^^^

- The OpenManage Enterprise, OpenManage Enterprise Modular and OpenManage Enterprise Integration for VMware vCenter modules are now compatible with Ansible Core version 2.19.
- idrac_certificate - This role is enhanced to support iDRAC10.
- idrac_export_server_config_profile - This role is enhanced to support iDRAC10.
- idrac_firmware - This role is enhanced to support iDRAC10.
- idrac_import_server_config_profile - This role is enhanced to support iDRAC10.
- idrac_license - This module is enhanced to support iDRAC10.
- idrac_os_deployment - This module is enhanced to support iDRAC10.
- idrac_os_deployment - This role is enhanced to support iDRAC10.
- idrac_redfish_storage_controller - This module is enhanced to support iDRAC10.
- idrac_server_config_profile - This module is enhanced to support iDRAC10.
- idrac_storage_controller - This role is enhanced to support iDRAC10.
- idrac_storage_volume - This module is enhanced to support iDRAC10.
- redfish_firmware - This role is enhanced to support iDRAC10.
- redfish_firmware_rollback - This module is enhanced to support iDRAC10.
- redfish_storage_volume - This module is enhanced to support iDRAC10.
- redfish_storage_volume - This role is enhanced to support iDRAC10.

fortinet.fortios
^^^^^^^^^^^^^^^^

- Supported default_group feature for the all of the modules.
- Supported new versions 7.6.3 and 7.6.4.
- Supported the authentication method when using username and password in v7.6.4.

grafana.grafana
^^^^^^^^^^^^^^^

- Add SUSE support to Alloy role by @pozsa in https://github.com/grafana/grafana-ansible-collection/pull/423
- Fallback to empty dict in case grafana_ini is undefined by @root-expert in https://github.com/grafana/grafana-ansible-collection/pull/403
- Fix Mimir config file validation task by @Windos in https://github.com/grafana/grafana-ansible-collection/pull/428
- Fixes issue by @digiserg in https://github.com/grafana/grafana-ansible-collection/pull/421
- Fixes to foldersFromFilesStructure option by @root-expert in https://github.com/grafana/grafana-ansible-collection/pull/351
- Import custom dashboards only when directory exists by @mahendrapaipuri in https://github.com/grafana/grafana-ansible-collection/pull/430
- Migrate RedHat install to ansible.builtin.package by @r65535 in https://github.com/grafana/grafana-ansible-collection/pull/431
- Restore default listen address and port in Mimir by @56quarters in https://github.com/grafana/grafana-ansible-collection/pull/456
- Updated YUM repo urls from `packages.grafana.com` to `rpm.grafana.com` by @DejfCold in https://github.com/grafana/grafana-ansible-collection/pull/414
- Use credentials from grafana_ini when importing dashboards by @root-expert in https://github.com/grafana/grafana-ansible-collection/pull/402
- add macOS support to alloy role by @l50 in https://github.com/grafana/grafana-ansible-collection/pull/418
- do not skip scrape latest github version even in check_mode by @cmehat in https://github.com/grafana/grafana-ansible-collection/pull/408
- fix broken Grafana apt repository addition by @kleini in https://github.com/grafana/grafana-ansible-collection/pull/454
- fix datasource documentation by @jeremad in https://github.com/grafana/grafana-ansible-collection/pull/437
- fix mimir_download_url_deb & mimir_download_url_rpm by @germebl in https://github.com/grafana/grafana-ansible-collection/pull/400
- replace None with [] for safe length checks by @voidquark in https://github.com/grafana/grafana-ansible-collection/pull/426
- update catalog info by @Duologic in https://github.com/grafana/grafana-ansible-collection/pull/434
- use deb822 for newer debian versions by @Lukas-Heindl in https://github.com/grafana/grafana-ansible-collection/pull/440

ieisystem.inmanage
^^^^^^^^^^^^^^^^^^

- The edit_m6_log_setting.py module has added the 'server_status' attribute; The edit_network_bond.py module modifies the attribute descriptions; The edit_snmp.py and edit_snmp_trap.py module modifies the allowable value ranges for the auth_protocol and priv_protocol attributes. (https://github.com/ieisystem/ieisystem.inmanage/pull/30).

ngine_io.cloudstack
^^^^^^^^^^^^^^^^^^^

- Ensuring backwards compatibility and integration tests with CloudStack 4.17 and 4.18.
- General overhaul (black code style) and renaming of all modules (dropping ``cs_`` prefix) (https://github.com/ngine-io/ansible-collection-cloudstack/pull/141).
- Update cs dependency to >=3.4.0.

Removed Collections
-------------------

- community.digitalocean (previously included version: 1.27.0)
- ibm.qradar (previously included version: 4.0.0)

You can still install a removed collection manually with ``ansible-galaxy collection install <name-of-collection>``.

Removed Features
----------------

- The deprecated ``community.digitalocean`` collection has been removed (`https://forum.ansible.com/t/44602 <https://forum.ansible.com/t/44602>`__).
- The deprecated ``ibm.qradar`` collection has been removed (`https://forum.ansible.com/t/44259 <https://forum.ansible.com/t/44259>`__).

Ansible-core
^^^^^^^^^^^^

- Removed the option to set the ``DEFAULT_TRANSPORT`` configuration to ``smart`` that selects the default transport as either ``ssh`` or ``paramiko`` based on the underlying platform configuraton.
- ``vault``/``unvault`` filters - remove the deprecated ``vaultid`` parameter.
- ansible-doc - role entrypoint attributes are no longer shown
- ansible-galaxy - remove support for resolvelib >= 0.5.3, < 0.8.0.
- ansible-galaxy - removed the v2 Galaxy server API. Galaxy servers hosting collections must support v3.
- dnf/dnf5 - remove deprecated ``install_repoquery`` option.
- encrypt - remove deprecated passlib_or_crypt API.
- paramiko - Removed the ``PARAMIKO_HOST_KEY_AUTO_ADD`` and ``PARAMIKO_LOOK_FOR_KEYS`` configuration keys, which were previously deprecated.
- py3compat - remove deprecated ``py3compat.environ`` call.
- vars plugins - removed the deprecated ``get_host_vars`` or ``get_group_vars`` fallback for vars plugins that do not inherit from ``BaseVarsPlugin`` and define a ``get_vars`` method.
- yum_repository - remove deprecated ``keepcache`` option.

community.docker
^^^^^^^^^^^^^^^^

- Remove support for Docker SDK for Python version 1.x.y, also known as ``docker-py``. Modules and plugins that use Docker SDK for Python require version 2.0.0+ (https://github.com/ansible-collections/community.docker/pull/1171).
- The collection no longer supports Python 3.6 and before. Note that this coincides with the Python requirements of ansible-core 2.17+ (https://github.com/ansible-collections/community.docker/pull/1123).
- The collection no longer supports ansible-core 2.15 and 2.16. You need ansible-core 2.17.0 or newer to use community.docker 5.x.y (https://github.com/ansible-collections/community.docker/pull/1123).

community.general
^^^^^^^^^^^^^^^^^

- Ansible-core 2.16 is no longer supported. This also means that the collection now requires Python 3.7+ (https://github.com/ansible-collections/community.general/pull/10884).
- bearychat - the module has been removed as the chat service is no longer available (https://github.com/ansible-collections/community.general/pull/10883).
- cmd_runner module utils - the parameter ``ignore_value_none`` to ``CmdRunner.__call__()`` has been removed (https://github.com/ansible-collections/community.general/pull/10883).
- cmd_runner_fmt module utils - the parameter ``ctx_ignore_none`` to argument formatters has been removed (https://github.com/ansible-collections/community.general/pull/10883).
- facter - the module has been replaced by ``community.general.facter_facts`` (https://github.com/ansible-collections/community.general/pull/10883).
- mh.deco module utils - the parameters ``on_success`` and ``on_failure`` of ``cause()`` have been removed; use ``when="success"`` and ``when="failure"`` instead (https://github.com/ansible-collections/community.general/pull/10883).
- opkg - the value ``""`` for the option ``force`` is no longer allowed. Omit ``force`` instead (https://github.com/ansible-collections/community.general/pull/10883).
- pacemaker_cluster - the option ``state`` is now required (https://github.com/ansible-collections/community.general/pull/10883).
- pure module utils - the modules using this module utils have been removed from community.general 3.0.0 (https://github.com/ansible-collections/community.general/pull/10883).
- purestorage doc fragment - the modules using this doc fragment have been removed from community.general 3.0.0 (https://github.com/ansible-collections/community.general/pull/10883).
- yaml callback plugin - the deprecated plugin has been removed. Use the default callback with ``result_format=yaml`` instead (https://github.com/ansible-collections/community.general/pull/10883).

community.vmware
^^^^^^^^^^^^^^^^

- vmware_cluster - The deprecated module has been removed. Use ``vmware.vmware.cluster`` instead (https://github.com/ansible-collections/community.vmware/pull/2455).
- vmware_cluster_dpm - The deprecated module has been removed. Use ``vmware.vmware.cluster_dpm`` instead (https://github.com/ansible-collections/community.vmware/pull/2455).
- vmware_cluster_drs - The deprecated module has been removed. Use ``vmware.vmware.cluster_drs`` instead (https://github.com/ansible-collections/community.vmware/pull/2455).
- vmware_cluster_drs_recommendations - The deprecated module has been removed. Use ``vmware.vmware.cluster_drs_recommendations`` instead (https://github.com/ansible-collections/community.vmware/pull/2455).
- vmware_cluster_vcls - The deprecated module has been removed. Use ``vmware.vmware.cluster_vcls`` instead (https://github.com/ansible-collections/community.vmware/pull/2455).

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

Ansible-core
^^^^^^^^^^^^

- Deprecated the shell plugin's ``wrap_for_exec`` function. This API is not used in Ansible or any known collection and is being removed to simplify the plugin API. Plugin authors should wrap their command to execute within an explicit shell or other known executable.
- INJECT_FACTS_AS_VARS configuration currently defaults to ``True``, this is now deprecated and it will switch to ``False`` by Ansible 2.24. You will only get notified if you are accessing 'injected' facts (for example, ansible_os_distribution vs ansible_facts['os_distribution']).
- hash_params function in roles/__init__ is being deprecated as it is not in use.
- include_vars - Specifying 'ignore_files' as a string is deprecated.
- vars, the internal variable cache will be removed in 2.24. This cache, once used internally exposes variables in inconsistent states, the 'vars' and 'varnames' lookups should be used instead.

community.general
^^^^^^^^^^^^^^^^^

- catapult - module is deprecated and will be removed in community.general 13.0.0 (https://github.com/ansible-collections/community.general/issues/10318, https://github.com/ansible-collections/community.general/pull/10329).
- cpanm - deprecate ``mode=compatibility``, ``mode=new`` should be used instead (https://github.com/ansible-collections/community.general/pull/10434).
- dimensiondata doc_fragments plugin - fragments is deprecated and will be removed in community.general 13.0.0 (https://github.com/ansible-collections/community.general/pull/10986).
- dimensiondata module_utils plugin - utils is deprecated and will be removed in community.general 13.0.0 (https://github.com/ansible-collections/community.general/pull/10986).
- dimensiondata_network - module is deprecated and will be removed in community.general 13.0.0 (https://github.com/ansible-collections/community.general/pull/10986).
- dimensiondata_vlan - module is deprecated and will be removed in community.general 13.0.0 (https://github.com/ansible-collections/community.general/pull/10986).
- dimensiondata_wait doc_fragments plugin - fragments is deprecated and will be removed in community.general 13.0.0 (https://github.com/ansible-collections/community.general/pull/10986).
- github_repo - deprecate ``force_defaults=true`` (https://github.com/ansible-collections/community.general/pull/10435).
- hiera lookup plugin - retrieving data with Hiera has been deprecated a long time ago; because of that this plugin will be removed from community.general 13.0.0. If you disagree with this deprecation, please create an issue in the community.general repository (https://github.com/ansible-collections/community.general/issues/4462, https://github.com/ansible-collections/community.general/pull/10779).
- oci_utils module utils - utils is deprecated and will be removed in community.general 13.0.0 (https://github.com/ansible-collections/community.general/issues/10318, https://github.com/ansible-collections/community.general/pull/10652).
- oci_vcn - module is deprecated and will be removed in community.general 13.0.0 (https://github.com/ansible-collections/community.general/issues/10318, https://github.com/ansible-collections/community.general/pull/10652).
- oneandone module utils - DNS fails to resolve the API endpoint used by the module. The module is deprecated and will be removed in community.general 13.0.0 (https://github.com/ansible-collections/community.general/pull/10994).
- oneandone_firewall_policy - DNS fails to resolve the API endpoint used by the module. The module is deprecated and will be removed in community.general 13.0.0 (https://github.com/ansible-collections/community.general/pull/10994).
- oneandone_load_balancer - DNS fails to resolve the API endpoint used by the module. The module is deprecated and will be removed in community.general 13.0.0 (https://github.com/ansible-collections/community.general/pull/10994).
- oneandone_monitoring_policy - DNS fails to resolve the API endpoint used by the module. The module is deprecated and will be removed in community.general 13.0.0 (https://github.com/ansible-collections/community.general/pull/10994).
- oneandone_private_network - DNS fails to resolve the API endpoint used by the module. The module is deprecated and will be removed in community.general 13.0.0 (https://github.com/ansible-collections/community.general/pull/10994).
- oneandone_public_ip - DNS fails to resolve the API endpoint used by the module. The module is deprecated and will be removed in community.general 13.0.0 (https://github.com/ansible-collections/community.general/pull/10994).
- oneandone_server - DNS fails to resolve the API endpoint used by the module. The module is deprecated and will be removed in community.general 13.0.0 (https://github.com/ansible-collections/community.general/pull/10994).
- oracle* doc fragments - fragments are deprecated and will be removed in community.general 13.0.0 (https://github.com/ansible-collections/community.general/issues/10318, https://github.com/ansible-collections/community.general/pull/10652).
- pacemaker_cluster - the state ``cleanup`` will be removed from community.general 14.0.0 (https://github.com/ansible-collections/community.general/pull/10741).
- rocketchat - the default value for ``is_pre740``, currently ``true``, is deprecated and will change to ``false`` in community.general 13.0.0 (https://github.com/ansible-collections/community.general/pull/10490).
- typetalk - module is deprecated and will be removed in community.general 13.0.0 (https://github.com/ansible-collections/community.general/pull/9499).

community.hrobot
^^^^^^^^^^^^^^^^

- storagebox\* modules - membership in the ``community.hrobot.robot`` action group (module defaults group) is deprecated; the modules will be removed from the group in community.hrobot 3.0.0. Use ``community.hrobot.api`` instead (https://github.com/ansible-collections/community.hrobot/pull/178).
- storagebox\* modules - the ``hetzner_token`` option for these modules will be required from community.hrobot 3.0.0 on (https://github.com/ansible-collections/community.hrobot/pull/178).
- storagebox\* modules - the ``hetzner_user`` and ``hetzner_pass`` options for these modules are deprecated; support will be removed in community.hrobot 3.0.0. Use ``hetzner_token`` instead (https://github.com/ansible-collections/community.hrobot/pull/178).
- storagebox_info - the ``storageboxes[].login``, ``storageboxes[].disk_quota``, ``storageboxes[].disk_usage``, ``storageboxes[].disk_usage_data``, ``storageboxes[].disk_usage_snapshot``, ``storageboxes[].webdav``, ``storageboxes[].samba``, ``storageboxes[].ssh``, ``storageboxes[].external_reachability``, and ``storageboxes[].zfs`` return values are deprecated and will be removed from community.routeros. Check out the documentation to find out their new names according to the new API (https://github.com/ansible-collections/community.hrobot/pull/178).
- storagebox_snapshot_info - the ``snapshots[].timestamp``, ``snapshots[].size``, ``snapshots[].filesystem_size``, ``snapshots[].automatic``, and ``snapshots[].comment`` return values are deprecated and will be removed from community.routeros. Check out the documentation to find out their new names according to the new API (https://github.com/ansible-collections/community.hrobot/pull/178).
- storagebox_snapshot_plan - the ``plans[].month`` return value is deprecated, since it only returns ``null`` with the new API and cannot be set to any other value (https://github.com/ansible-collections/community.hrobot/pull/178).
- storagebox_snapshot_plan_info - the ``plans[].month`` return value is deprecated, since it only returns ``null`` with the new API and cannot be set to any other value (https://github.com/ansible-collections/community.hrobot/pull/178).
- storagebox_subaccount - ``password_mode=set-to-random`` is deprecated and will be removed from community.hrobot 3.0.0. Hetzner's new API does not support this anyway, it can only be used with the legacy API (https://github.com/ansible-collections/community.hrobot/pull/183).
- storagebox_subaccount - the ``subaccount.homedirectory``, ``subaccount.samba``, ``subaccount.ssh``, ``subaccount.external_reachability``, ``subaccount.webdav``, ``subaccount.readonly``, ``subaccount.createtime``, and ``subaccount.comment`` return values are deprecated and will be removed from community.routeros. Check out the documentation to find out their new names according to the new API (https://github.com/ansible-collections/community.hrobot/pull/178).
- storagebox_subaccount_info - the ``subaccounts[].accountid``, ``subaccounts[].homedirectory``, ``subaccounts[].samba``, ``subaccounts[].ssh``, ``subaccounts[].external_reachability``, ``subaccounts[].webdav``, ``subaccounts[].readonly``, ``subaccounts[].createtime``, and ``subaccounts[].comment`` return values are deprecated and will be removed from community.routeros. Check out the documentation to find out their new names according to the new API (https://github.com/ansible-collections/community.hrobot/pull/178).

community.vmware
^^^^^^^^^^^^^^^^

- vmware_guest_snapshot - the module has been deprecated and will be removed in community.vmware 8.0.0 (https://github.com/ansible-collections/community.vmware/pull/2467).

community.zabbix
^^^^^^^^^^^^^^^^

- zabbix_maintenance module - Depreicated `minutes` argument for `time_periods`

dellemc.powerflex
^^^^^^^^^^^^^^^^^

- The device, info, protection_domain, snapshot, storagepool and volume modules are supported only on PowerFlex Gen1. They are replaced by v2 modules on PowerFlex Gen2.
- The fault_set, replication_consistency_group, replication_pair, resource_group and sds modules are not supported on PowerFlex Gen2.

hetzner.hcloud
^^^^^^^^^^^^^^

- server_type_info - Deprecate Server Type ``deprecation`` property.

purestorage.flasharray
^^^^^^^^^^^^^^^^^^^^^^

- purefa_volume_tags - Deprecated due to removal of REST 1.x support. Will be removed in Collection 2.0.0
