[OpenStack-Infra] CentOS 8 as a Python 3-only base image

2019-09-27 Thread Ian Wienand
Hello,

All our current images use dib's "pip-and-virtualenv" element to
ensure the latest pip/setuptools/virtualenv are installed, and
/usr/bin/ installs Python 2 packages and
/usr/bin/ install Python 3 packages.

The upshot of this is that all our base images have Python 2 and 3
installed (even "python 3 first" distros like Bionic).

We have to make a decision if we want to continue this with CentOS 8;
to be specific the change [1].

Installing pip and virtualenv from upstream sources has a long history
full of bugs and workarounds nobody wants to think about (if you do
want to think about it, you can start at [2]).

A major problem has been that we have to put these packages on "hold",
to avoid the situation where the packaged versions are re-installed
over the upstream versions, creating a really big mess of mixed up
versions.

I'm thinking that CentOS 8 is a good place to stop this.  We just
won't support, in dib, installing pip/virtualenv from source for
CentOS 8.  We hope for the best that the packaged versions of tools
are always working, but *if* we do require fixes to the system
packages, we will implement that inside jobs directly, rather than on
the base images.

I think the 2019 world this is increasingly less likley, as we have
less reliance on older practices like mixing system-wide installs
(umm, yes devstack ... but we have a lot of work getting centos8
stable there anyway) and the Zuul v3 world makes it much easier to
deploy isloated fixes as roles should we need.

If we take this path, the images will be Python 3 only -- we recently
turned Ansible's "ansible_python_interpreter" to Python 3 for Fedora
30 and after a little debugging I think that is ready to go.  Of
course jobs can install the Python 2 environment should they desire.

Any comments here, or in the review [1] welcome.

Thanks,

-i

[1] https://review.opendev.org/684462
[2] 
https://opendev.org/openstack/diskimage-builder/src/branch/master/diskimage_builder/elements/pip-and-virtualenv/install.d/pip-and-virtualenv-source-install/04-install-pip#L73


___
OpenStack-Infra mailing list
OpenStack-Infra@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-infra

Re: [OpenStack-Infra] CentOS 8 as a Python 3-only base image

2019-09-27 Thread Jeremy Stanley
On 2019-09-27 17:26:15 +1000 (+1000), Ian Wienand wrote:
[...]
> Installing pip and virtualenv from upstream sources has a long history
> full of bugs and workarounds nobody wants to think about (if you do
> want to think about it, you can start at [2]).
[...]
> I'm thinking that CentOS 8 is a good place to stop this.  We just
> won't support, in dib, installing pip/virtualenv from source for
> CentOS 8.  We hope for the best that the packaged versions of tools
> are always working, but *if* we do require fixes to the system
> packages, we will implement that inside jobs directly, rather than on
> the base images.
[...]

This seems like a reasonable shift to me. I'd eventually love to see
us stop preinstalling pip and virtualenv entirely, allowing jobs to
take care of doing that at runtime if they need to use them.
-- 
Jeremy Stanley


signature.asc
Description: PGP signature
___
OpenStack-Infra mailing list
OpenStack-Infra@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-infra

Re: [OpenStack-Infra] CentOS 8 as a Python 3-only base image

2019-09-27 Thread Mohammed Naser
On Fri, Sep 27, 2019 at 7:11 AM Jeremy Stanley  wrote:
>
> On 2019-09-27 17:26:15 +1000 (+1000), Ian Wienand wrote:
> [...]
> > Installing pip and virtualenv from upstream sources has a long history
> > full of bugs and workarounds nobody wants to think about (if you do
> > want to think about it, you can start at [2]).
> [...]
> > I'm thinking that CentOS 8 is a good place to stop this.  We just
> > won't support, in dib, installing pip/virtualenv from source for
> > CentOS 8.  We hope for the best that the packaged versions of tools
> > are always working, but *if* we do require fixes to the system
> > packages, we will implement that inside jobs directly, rather than on
> > the base images.
> [...]
>
> This seems like a reasonable shift to me. I'd eventually love to see
> us stop preinstalling pip and virtualenv entirely, allowing jobs to
> take care of doing that at runtime if they need to use them.

+1 for this, it'll simplify building nodepool images a lot more

> --
> Jeremy Stanley
> ___
> OpenStack-Infra mailing list
> OpenStack-Infra@lists.openstack.org
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-infra



-- 
Mohammed Naser — vexxhost
-
D. 514-316-8872
D. 800-910-1726 ext. 200
E. mna...@vexxhost.com
W. http://vexxhost.com

___
OpenStack-Infra mailing list
OpenStack-Infra@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-infra