From Fedora Project Wiki
(First draft (with some yet-to-be-filled sections))
 
(Fill out other sections (TODO: proofread))
Line 43: Line 43:
Ansible 9, the last release that supports Python 2.7 and Python 3.6 target nodes, will go EOL upstream in November 2024, so we must update to the latest Ansible to continue receiving upstream support.
Ansible 9, the last release that supports Python 2.7 and Python 3.6 target nodes, will go EOL upstream in November 2024, so we must update to the latest Ansible to continue receiving upstream support.


Other than the Python changes, the collections included in Ansible 11 package will receive the usual updates to their latest major versions. Ansible Core 2.18 also includes  
Other than the Python changes, the collections included in Ansible 11 package will receive the usual updates to their latest major versions. Ansible Core 2.18 also includes miscellaneous to the core playbook runtime that are listed in the [https://docs.ansible.com/ansible/devel/roadmap/ROADMAP_2_18.html Ansible Core roadmap].


== Feedback ==
== Feedback ==
Line 50: Line 50:
== Benefit to Fedora ==
== Benefit to Fedora ==


Fedora will have the latest version of Ansible and continue receiving upstream support. Ansible
Fedora will have the latest version of Ansible and continue receiving upstream support.


== Scope ==
== Scope ==
* Proposal owners:
* Proposal owners:
<!-- What work do the feature owners have to accomplish to complete the feature in time for release?  Is it a large change affecting many parts of the distribution or is it a very isolated change? What are those changes?-->
** Update the ansible and ansible-core packages
** Ensure Ansible Collections packages in Fedora are up to date and compatible with the latest Ansible version.


* Other developers: <!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
* Other developers: <!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
<!-- What work do other developers have to accomplish to complete the feature in time for release?  Is it a large change affecting many parts of the distribution or is it a very isolated change? What are those changes?-->
** Ensure Ansible Collections packages in Fedora that are not maintained by the Change owners are up to date and compatible with the latest Ansible version.
 
* Release engineering: [https://pagure.io/releng/issues #Releng issue number] <!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
<!-- Does this feature require coordination with release engineering (e.g. changes to installer image generation or update package delivery)?  Is a mass rebuild required?  include a link to the releng issue.
The issue is required to be filed prior to feature submission, to ensure that someone is on board to do any process development work and testing and that all changes make it into the pipeline; a bullet point in a change is not sufficient communication -->
 
* Policies and guidelines: N/A (not needed for this Change) <!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
<!-- Do the packaging guidelines or other documents need to be updated for this feature?  If so, does it need to happen before or after the implementation is done?  If a FPC ticket exists, add a link here. Please submit a pull request with the proposed changes before submitting your Change proposal. -->
 
* Trademark approval: N/A (not needed for this Change)
<!-- If your Change may require trademark approval (for example, if it is a new Spin), file a ticket ( https://pagure.io/Fedora-Council/tickets/issues ) requesting trademark approval from the Fedora Council. This approval will be done via the Council's consensus-based process. -->
 
* Alignment with the Fedora Strategy:
<!-- Does your proposal align with the current Fedora Strategy: https://discussion.fedoraproject.org/t/fedora-strategy-2028-february-march-planning-work-and-roadmap-til-flock/43618 ? It's okay if it doesn't, but it's something to consider -->


== Upgrade/compatibility impact ==
== Upgrade/compatibility impact ==
<!-- What happens to systems that have had a previous versions of Fedora installed and are updated to the version containing this change? Will anything require manual configuration or data migration? Will any existing functionality be no longer supported? -->


<!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
Ansible Core 2.18's minimum supported Python version on target nodes is Python 3.8 - 3.13. This means that Ansible will no longer be able to interact with RHEL 8 hosts (Python 3.6) or RHEL 7 hosts (Python 2.7).


== Early Testing (Optional) ==
<!-- This is an optional step for system-wide changes to avail of. If you would like to build an initial proof of concept of your change and have a member of Fedora QA help you write and/or run some initial basic tests on your code, please email tests@fedoraproject.org and include the link to your change proposal. This step is *optional*. -->
Do you require 'QA Blueprint' support? Y/N <!-- Optional Step for System-Wide Changes only -->


== How To Test ==
== How To Test ==
<!-- This does not need to be a full-fledged document. Describe the dimensions of tests that this change implementation is expected to pass when it is done.  This can be based off of the above section if early testing has been completed. If it needs to be tested with different hardware or software configurations, indicate them.  The more specific you can be, the better the community testing can be.
Remember that you are writing this how to for interested testers to use to check out your change implementation - documenting what you do for testing is OK, but it's much better to document what *I* can do to test your change.
A good "how to test" should answer these four questions:


0. What special hardware / data / etc. is needed (if any)?
Install the latest ansible/ansible-core packages once they arrive in the Fedora repos and ensure that your existing playbooks and installed collections and roles continue to function as they did before.
1. How do I prepare my system to test this change? What packages
need to be installed, config files edited, etc.?
2. What specific actions do I perform to check that the change is
working like it's supposed to?
3. What are the expected results of those actions?
-->


<!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
<!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
Line 112: Line 84:


== Dependencies ==
== Dependencies ==
<!-- What other packages (RPMs) depend on this package?  Are there changes outside the developers' control on which completion of this change depends?  In other words, completion of another change owned by someone else and might cause you to not be able to finish on time or that you would need to coordinate?  Other upstream projects like the kernel (if this is not a kernel change)? -->
<!-- REQUIRED FOR SYSTEM WIDE CHANGES -->


Ansible Collection packages in Fedora should be tested against the new ansible-core release.


== Contingency Plan ==
== Contingency Plan ==
Line 128: Line 98:


== Documentation ==
== Documentation ==
<!-- Is there upstream documentation on this change, or notes you have written yourself?  Link to that material here so other interested developers can get involved. -->


<!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
* [https://docs.ansible.com/ansible/devel/roadmap/ROADMAP_2_18.html Ansible Core 2.18 Roadmap]
N/A (not a System Wide Change)
* [https://docs.ansible.com/ansible/devel/roadmap/COLLECTIONS_11.html Ansible 11 Roadmap]
 


== Release Notes ==
== Release Notes ==
Line 139: Line 109:
Release Notes are not required for initial draft of the Change Proposal but has to be completed by the Change Freeze.  
Release Notes are not required for initial draft of the Change Proposal but has to be completed by the Change Freeze.  
-->
-->
Update to Ansible 11 and Ansible Core 2.18, which no longer supports Python 2.7 and Python 3.6 target nodes, including EL 7 and EL 8 hosts.

Revision as of 00:28, 15 September 2024

Ansible 11

This is a proposed Change for Fedora Linux.
This document represents a proposed Change. As part of the Changes process, proposals are publicly announced in order to receive community feedback. This proposal will only be implemented if approved by the Fedora Engineering Steering Committee.

Summary

Update to Ansible 11 and Ansible Core 2.18, which no longer supports Python 2.7 and Python 3.6 target nodes, including EL 7 and EL 8 hosts.

Owner

Current status

  • Targeted release: Fedora Linux 42
  • Last updated: 2024-09-15
  • [Announced]
  • [<will be assigned by the Wrangler> Discussion thread]
  • FESCo issue: <will be assigned by the Wrangler>
  • Tracker bug: <will be assigned by the Wrangler>
  • Release notes tracker: <will be assigned by the Wrangler>

Detailed Description

The premise of the change proposal is simple — a major version update from Ansible 9 (ansible) / Ansible Core 2.16 (ansible-core) to Ansible 11 / Ansible Core 2.18. This is being filed as a Change proposal instead of a standard update due to major breaking changes.

Ansible Core 2.18's minimum supported Python version on target nodes is Python 3.8 - 3.13. This means that Ansible will no longer be able to interact with RHEL 8 hosts (Python 3.6) or RHEL 7 hosts (Python 2.7). Ansible Core upstream plans to be more aggressive with dropping support for older Python versions on target nodes in the feature.

Ansible 9, the last release that supports Python 2.7 and Python 3.6 target nodes, will go EOL upstream in November 2024, so we must update to the latest Ansible to continue receiving upstream support.

Other than the Python changes, the collections included in Ansible 11 package will receive the usual updates to their latest major versions. Ansible Core 2.18 also includes miscellaneous to the core playbook runtime that are listed in the Ansible Core roadmap.

Feedback

Benefit to Fedora

Fedora will have the latest version of Ansible and continue receiving upstream support.

Scope

  • Proposal owners:
    • Update the ansible and ansible-core packages
    • Ensure Ansible Collections packages in Fedora are up to date and compatible with the latest Ansible version.
  • Other developers:
    • Ensure Ansible Collections packages in Fedora that are not maintained by the Change owners are up to date and compatible with the latest Ansible version.

Upgrade/compatibility impact

Ansible Core 2.18's minimum supported Python version on target nodes is Python 3.8 - 3.13. This means that Ansible will no longer be able to interact with RHEL 8 hosts (Python 3.6) or RHEL 7 hosts (Python 2.7).


How To Test

Install the latest ansible/ansible-core packages once they arrive in the Fedora repos and ensure that your existing playbooks and installed collections and roles continue to function as they did before.


User Experience

Dependencies

Ansible Collection packages in Fedora should be tested against the new ansible-core release.

Contingency Plan

  • Contingency mechanism: (What to do? Who will do it?) N/A (not a System Wide Change)
  • Contingency deadline: N/A (not a System Wide Change)
  • Blocks release? N/A (not a System Wide Change), Yes/No


Documentation


Release Notes

Update to Ansible 11 and Ansible Core 2.18, which no longer supports Python 2.7 and Python 3.6 target nodes, including EL 7 and EL 8 hosts.