Python 3.6 support issue

7 views
Skip to first unread message

Dmitry Tantsur

unread,
Nov 26, 2021, 8:26:08 AM11/26/21
to Metal3 Development List
Hi folks,

I became aware that OpenStack stops official support for Python 3.6, which is the default Python in CentOS 8 and thus the version we use in upstream (and OpenShift too) images. While nothing is broken right now, chances are high some dependency will eventually become incompatible with Python 3.6, breaking ironic-image.

Now, Stream/RHEL 8 does provide Python 3.8 and 3.9, but they come with no other packages. Meaning, we cannot use python3-mod_wsgi, nor can we rely on RDO (IIUC they're planning on moving to Stream 9 instead).

Our options seem to be:

1) Move to Stream 9.
Pros:
- Benefit from newer packages.
- The base container image seems significantly (156M vs 436M) smaller than Stream 8.
- Keep using RDO.
Cons:
- RHEL 9 is beta, so we can assume Stream 9 is beta quality as well.
- RDO support for Stream 9 is also very new.

2) Move to source installation with a non-default Python (3.9). Replace mod_wsgi with something we can install, most likely return the ironic-api process and use Apache only for TLS termination the same way it's done for Inspector.
Pros:
- Riccardo has already done the heavy lifting.
- Closer to upstream.
- Better control over dependencies.
Cons:
- Repeating the job RDO has done for us.
- Redoing the WSGI approach.
- Non-default Python will make images even larger.
- Building IPA from source (may be a pro too).

3) Ask OpenStack to reconsider.
Pros:
- No actions from us.
Cons:
- They won't keep 3.6 support forever, we'll need to decide something.
- 3.6 runs out of security updates this December.

4) Do nothing, wait.
Pros:
- Do nothing at all.
- Support for 3.6 won't disappear overnight.
Cons:
- Support for 3.6 will disappear sooner or later.

Any ideas?

Dmitry

--
Red Hat GmbH, https://de.redhat.com/ , Registered seat: Grasbrunn,
Commercial register: Amtsgericht Muenchen, HRB 153243,
Managing Directors: Charles Cachera, Brian Klemm, Laurie Krebs, Michael O'Neill

Noor Muhammad Malik

unread,
Nov 27, 2021, 3:58:59 PM11/27/21
to Dmitry Tantsur, Metal3 Development List
Hi Dmitry, 

Thanks for bringing this up. I think 1 is the best option considering a long term solution. 

We seem to have done our work on 2 but it has a bunch of scary cons. 3 is definitely just a patchy thing that may or may not work. (like you said, no security updates after December) 

I do love option 4 though, but it may not solve anything 😂 

Warm regards,

Noor Muhammad Malik
Assistant Manager
xFlow Research Inc
noor.m...@xflowresearch.com
+92 310 5382448 (GMT +5)
www.xflowresearch.com

--
You received this message because you are subscribed to the Google Groups "Metal3 Development List" group.
To unsubscribe from this group and stop receiving emails from it, send an email to metal3-dev+...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/metal3-dev/CACNgkFyFO3XQMtgQwCJ%2BOzz7nP-O4fSZ62hS_PrEYKk2%3DxEdgQ%40mail.gmail.com.

Riccardo Pittau

unread,
Nov 29, 2021, 5:00:27 AM11/29/21
to Noor Muhammad Malik, Dmitry Tantsur, Metal3 Development List
Thanks Dmitry for raising this here.

I would definitely go for option 1, even if centos stream 9 is not 100% ready, sooner or later we need to get there.
I started testing with it since a while and there are still things missing, for example the EPEL repository support.
I can review the changes I've done and put up a patch to show what the current status is.

I would avoid option 2, the work I've done to build the ironic-image by source I think it's valid only for testing and development at the moment, and it would take a big effort to work around all the cons.

I'd try option 3 no matter what, just to get some more time, but still we need to get to centos stream 9 at some point, and move out from python 3.6
Option 4 is definitely not feasible.

Cheers,

Riccardo

Riccardo Pittau

unread,
Dec 3, 2021, 3:04:54 AM12/3/21
to Noor Muhammad Malik, Dmitry Tantsur, Metal3 Development List
Great news everyone!

The Openstack TC has decided to extend Python 3.6 and CentOS Stream 8 support for the entire Yoga cycle.
We will continue our effort to enable support for CentOS Stream 9, but we're not in a rush anymore :)

Riccardo

Reply all
Reply to author
Forward
0 new messages