Add distro_python3 option
As we add support for python3 on RHEL based systems, we need to add a flag to key off of in the Dockerfiles to swap out the python3 package names. This change adds a distro_python3 configuration option that can be defined to force python3 or python2 package names. If this option is not provided, we set this to True for RHEL 8 based distros and false for other distros. Change-Id: I4028991bad92c0e8e21066cc4173c06ce5eba393 Related-Blueprint: python3-support
This commit is contained in:
parent
9cc0c84e88
commit
3410a6165a
@ -266,6 +266,10 @@ _BASE_OPTS = [
|
|||||||
cfg.StrOpt('maintainer',
|
cfg.StrOpt('maintainer',
|
||||||
default='Kolla Project (https://launchpad.net/kolla)',
|
default='Kolla Project (https://launchpad.net/kolla)',
|
||||||
help='Content of the maintainer label'),
|
help='Content of the maintainer label'),
|
||||||
|
cfg.BoolOpt('distro_python3', default=None,
|
||||||
|
help=('Enable this to force python3 packaging names. By '
|
||||||
|
'default this will try and determine the value of this '
|
||||||
|
'based on the base_distro and base_distro_tag.')),
|
||||||
cfg.ListOpt('rpm_setup_config', default=[DELOREAN, DELOREAN_DEPS],
|
cfg.ListOpt('rpm_setup_config', default=[DELOREAN, DELOREAN_DEPS],
|
||||||
help=('Comma separated list of .rpm or .repo file(s) '
|
help=('Comma separated list of .rpm or .repo file(s) '
|
||||||
'or URL(s) to install before building containers')),
|
'or URL(s) to install before building containers')),
|
||||||
|
@ -689,6 +689,14 @@ class KollaWorker(object):
|
|||||||
deb_base = ['ubuntu', 'debian']
|
deb_base = ['ubuntu', 'debian']
|
||||||
deb_type = ['source', 'binary']
|
deb_type = ['source', 'binary']
|
||||||
|
|
||||||
|
if self.conf.distro_python3 is not None:
|
||||||
|
self.distro_python3 = self.conf.distro_python3
|
||||||
|
elif self.base in rh_base and self.base_tag in ['8']:
|
||||||
|
# RHEL 8+ is python3
|
||||||
|
self.distro_python3 = True
|
||||||
|
else:
|
||||||
|
self.distro_python3 = False
|
||||||
|
|
||||||
if not ((self.base in rh_base and self.install_type in rh_type) or
|
if not ((self.base in rh_base and self.install_type in rh_type) or
|
||||||
(self.base in deb_base and self.install_type in deb_type)):
|
(self.base in deb_base and self.install_type in deb_type)):
|
||||||
raise exception.KollaMismatchBaseTypeException(
|
raise exception.KollaMismatchBaseTypeException(
|
||||||
@ -888,6 +896,7 @@ class KollaWorker(object):
|
|||||||
'kolla_version': kolla_version,
|
'kolla_version': kolla_version,
|
||||||
'image_name': image_name,
|
'image_name': image_name,
|
||||||
'users': self.get_users(),
|
'users': self.get_users(),
|
||||||
|
'distro_python3': self.distro_python3,
|
||||||
'rpm_setup': self.rpm_setup,
|
'rpm_setup': self.rpm_setup,
|
||||||
'build_date': build_date}
|
'build_date': build_date}
|
||||||
env = jinja2.Environment( # nosec: not used to render HTML
|
env = jinja2.Environment( # nosec: not used to render HTML
|
||||||
|
@ -381,6 +381,26 @@ class KollaWorkerTest(base.TestCase):
|
|||||||
kolla = build.KollaWorker(self.conf)
|
kolla = build.KollaWorker(self.conf)
|
||||||
self.assertEqual(2, len(kolla.rpm_setup))
|
self.assertEqual(2, len(kolla.rpm_setup))
|
||||||
|
|
||||||
|
def test_build_distro_python3(self):
|
||||||
|
"""check distro_python3 conf value is taken"""
|
||||||
|
self.conf.set_override('distro_python3', True)
|
||||||
|
kolla = build.KollaWorker(self.conf)
|
||||||
|
self.assertTrue(kolla.distro_python3)
|
||||||
|
|
||||||
|
def test_build_distro_python3_rhel8(self):
|
||||||
|
"""check distro_python3 true for rhel8"""
|
||||||
|
self.conf.set_override('base', 'rhel')
|
||||||
|
self.conf.set_override('base_tag', '8')
|
||||||
|
kolla = build.KollaWorker(self.conf)
|
||||||
|
self.assertTrue(kolla.distro_python3)
|
||||||
|
|
||||||
|
def test_build_distro_python3_non_rhel8(self):
|
||||||
|
"""check distro_python3 false for non-rhel8"""
|
||||||
|
self.conf.set_override('base', 'rhel')
|
||||||
|
self.conf.set_override('base_tag', '7')
|
||||||
|
kolla = build.KollaWorker(self.conf)
|
||||||
|
self.assertFalse(kolla.distro_python3)
|
||||||
|
|
||||||
def test_pre_defined_exist_profile(self):
|
def test_pre_defined_exist_profile(self):
|
||||||
# default profile include the fake image: image-base
|
# default profile include the fake image: image-base
|
||||||
self.conf.set_override('profile', ['default'])
|
self.conf.set_override('profile', ['default'])
|
||||||
|
@ -0,0 +1,8 @@
|
|||||||
|
---
|
||||||
|
features:
|
||||||
|
- |
|
||||||
|
Added a `distro_python3` configuration option for the kolla-build.conf
|
||||||
|
that will switch the package names to assume the python3 name. By default,
|
||||||
|
this will be True if a RHEL 8 based distro and False for any other distro.
|
||||||
|
If a value of True or False is provided in the configuration, this will
|
||||||
|
override the derived value.
|
Loading…
Reference in New Issue
Block a user