Bug 2221820

Summary: Downgrade ansible-core to 2.14.7 with python 3.9
Product: Red Hat Enterprise Linux 9 Reporter: Dimitri Savineau <dsavinea>
Component: ansible-coreAssignee: Dimitri Savineau <dsavinea>
Status: CLOSED ERRATA QA Contact: Matt Clay <mclay>
Severity: low Docs Contact:
Priority: medium    
Version: CentOS StreamCC: bstinson, carl, jwboyer, maxwell, neil, orion
Target Milestone: rcKeywords: Triaged
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: ansible-core-2.14.7-1.el9 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2023-11-07 08:31:55 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Dimitri Savineau 2023-07-10 22:21:31 UTC
Description of problem:

It has been decided to pin the ansible-core release on RHEL 9.3+ to 2.14 so RHEL 7 targets could be supported compared to future ansible-core release.
To support ansible-core 2.14 during the remaining RHEL 9 lifecycle then python 3.9 (system default) will be used as interpreter.

Comment 1 Maxwell G 2023-07-11 00:46:53 UTC
Will this apply to RHEL 8 as well? What'll happen with CentOS Stream that already has 2.15? Also, I'm not sure how this relates to RHEL 7. ansible-core 2.15 still supports Python 2.7 on target nodes, does it not?

Comment 2 Dimitri Savineau 2023-07-11 13:43:11 UTC
> Will this apply to RHEL 8 as well? What'll happen with CentOS Stream that already has 2.15?

No it's only for RHEL 9

RHEL 8.9 will still use 2.15 with python 3.11 and the last 8.10 release will use 2.16 with python 3.12

> Also, I'm not sure how this relates to RHEL 7. ansible-core 2.15 still supports Python 2.7 on target nodes, does it not?

python 2.7 removal is planned for ansible-core 2.17 so we could have use ansible-core 2.16 with python 3.12.

However, python 3.12 on RHEL 9 will only be supported for 3 years which is 5 years short for 2.16 to be supported on RHEL 9 until the end of Maintenance support.
Since core 2.16 doesn't support python 3.9 then the remaining solution is ansible-core 2.14 (even releases are supported longer than odd releases) with python 3.9 (because it is supported during the whole RHEL 9 lifecycle.

Comment 3 Maxwell G 2023-07-11 16:03:42 UTC
(In reply to Dimitri Savineau from comment #2)
> > Will this apply to RHEL 8 as well? What'll happen with CentOS Stream that already has 2.15?
> 
> No it's only for RHEL 9
> 
> RHEL 8.9 will still use 2.15 with python 3.11 and the last 8.10 release will
> use 2.16 with python 3.12

Ack. I assume you plan to add an Epoch to CentOS Stream 9 now that ansible-core-2.15.0-1.el9 has gone out in a compose? Or will it stay at ansible-core-2.15.0-1.el9 for the rest of the lifecycle? Downgrading packages like this does not seem like something that should happen in a production distribution. It'll introduce regressions for Stream users.

> 
> > Also, I'm not sure how this relates to RHEL 7. ansible-core 2.15 still supports Python 2.7 on target nodes, does it not?
> 
> python 2.7 removal is planned for ansible-core 2.17 so we could have use
> ansible-core 2.16 with python 3.12.
> 
> However, python 3.12 on RHEL 9 will only be supported for 3 years which is 5
> years short for 2.16 to be supported on RHEL 9 until the end of Maintenance
> support.
> Since core 2.16 doesn't support python 3.9 then the remaining solution is
> ansible-core 2.14 (even releases are supported longer than odd releases)
> with python 3.9 (because it is supported during the whole RHEL 9 lifecycle.

I see. Would the core team consider supporting Python 3.9 for just one more release so you could support 2.16 with python3.9 for the rest of the lifecycle? Having a much newer version in EL 8 than 9 and having to back out an update and add an Epoch that'll stick around forever does not sound like a good situation to me.

Comment 4 Dimitri Savineau 2023-07-17 18:39:43 UTC
> Ack. I assume you plan to add an Epoch to CentOS Stream 9 now that ansible-core-2.15.0-1.el9 has gone out in a compose? Or will it stay at ansible-core-2.15.0-1.el9 for the rest of the lifecycle?

Adding Epoch is possibility. I just need to discuss about this with some RHEL/CS folks since this is only impacting C9S for now.

> Downgrading packages like this does not seem like something that should happen in a production distribution.

CS isn't designed for production.

> I see. Would the core team consider supporting Python 3.9 for just one more release so you could support 2.16 with python3.9 for the rest of the lifecycle?

AFAIK there's no plan to change the python support range on the ansible controller.

In fact, python 3.9 was already removed from devel last week.

https://github.com/ansible/ansible/commit/67b78a17c458a69e6b5b4c21c737219d37ed9f82

Comment 9 errata-xmlrpc 2023-11-07 08:31:55 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory (ansible-core bug fix and enhancement update), and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHBA-2023:6413