From 1fe8012ce2aec549430212d90ffd728889d6e4aa Mon Sep 17 00:00:00 2001 From: Mark Goddard Date: Wed, 26 Feb 2020 10:06:28 +0000 Subject: Actually disable EPEL, and epel-modular The disable_extra_repos macro accepts a list as its only argument. We were calling it like this to disable EPEL: disable_extra_repos('epel') The macro interpreted this as a request to disable three repos, e, p, l. Thanks Python! Type validation to be improved separately. Additionally, on CentOS 8 the EPEL repository was not included in the repository mapping file, repos.yaml. There is also another EPEL repository on CentOS 8, epel-modular, which is enabled by default after installing epel-release. This change adds mappings for epel and epel-modular repos to repos.yaml, and fixes the disabling of epel in the base image, as well as disabling epel-modular. There are some cases where EPEL is still used (it seemed a bit too easy...), and the repository has been enabled for these images: * bifrost-base (nginx) * ironic-conductor (C7 only, shellinabox) * freezer-base (C7 only, trickle) * gnocchi-base (C8 binary only, python3-boto3) * mariadb (pv) * mongodb (C7 only, mongodb) * nova-spicehtml5proxy (C7 only, spice-html5) * telegraf (C7 only, python2-pip) A few other things were changed: * ironic-conductor does not require the ceph repo * python3-pika is no longer installed in the openstack-base image Related: blueprint remove-epel Change-Id: I3761825239dfc462072383cde6276c4fb3e1bf12 --- docker/base/Dockerfile.j2 | 2 +- docker/bifrost/bifrost-base/Dockerfile.j2 | 3 +++ docker/freezer/freezer-base/Dockerfile.j2 | 5 +++++ docker/gnocchi/gnocchi-base/Dockerfile.j2 | 6 ++++++ docker/ironic/ironic-conductor/Dockerfile.j2 | 5 ++++- docker/mariadb/Dockerfile.j2 | 3 ++- docker/mongodb/Dockerfile.j2 | 5 +++++ docker/nova/nova-spicehtml5proxy/Dockerfile.j2 | 5 +++++ docker/openstack-base/Dockerfile.j2 | 1 - docker/telegraf/Dockerfile.j2 | 5 +++++ 10 files changed, 36 insertions(+), 4 deletions(-) (limited to 'docker') diff --git a/docker/base/Dockerfile.j2 b/docker/base/Dockerfile.j2 index 85237f663..15898af61 100644 --- a/docker/base/Dockerfile.j2 +++ b/docker/base/Dockerfile.j2 @@ -359,7 +359,7 @@ RUN yum-config-manager --enable rhel-7-server-optional-rpms \ # Install base packages {{ macros.install_packages( base_centos_packages | customizable("centos_packages") | customizable("centos_binary_packages") | customizable("centos_source_packages") ) }} -{{ macros.disable_extra_repos('epel') }} +{{ macros.disable_extra_repos(['epel', 'epel-modular']) }} {# endif for base_package_type rpm #} {% elif base_package_type == 'deb' %} diff --git a/docker/bifrost/bifrost-base/Dockerfile.j2 b/docker/bifrost/bifrost-base/Dockerfile.j2 index 8cf1b62d6..effd996c2 100644 --- a/docker/bifrost/bifrost-base/Dockerfile.j2 +++ b/docker/bifrost/bifrost-base/Dockerfile.j2 @@ -7,6 +7,9 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build {{ macros.configure_user(name='bifrost') }} +{# NOTE(mgoddard): EPEL required for nginx #} +{{ macros.enable_extra_repos(['epel']) }} + {% if install_type == 'binary' %} RUN echo '{{ install_type }} not yet available for {{ base_distro }}' && /bin/false diff --git a/docker/freezer/freezer-base/Dockerfile.j2 b/docker/freezer/freezer-base/Dockerfile.j2 index 9b27fbdf1..b1787651d 100644 --- a/docker/freezer/freezer-base/Dockerfile.j2 +++ b/docker/freezer/freezer-base/Dockerfile.j2 @@ -7,6 +7,11 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build {{ macros.configure_user(name='freezer') }} +{# NOTE(mgoddard): EPEL required for trickle package. Not provided by EPEL8 #} +{% if distro_package_manager == 'yum' %} +{{ macros.enable_extra_repos(['epel']) }} +{% endif %} + {% if install_type == 'binary' %} RUN echo '{{ install_type }} not yet available for {{ base_distro }}' \ diff --git a/docker/gnocchi/gnocchi-base/Dockerfile.j2 b/docker/gnocchi/gnocchi-base/Dockerfile.j2 index 4d23bd6aa..5ef69800e 100644 --- a/docker/gnocchi/gnocchi-base/Dockerfile.j2 +++ b/docker/gnocchi/gnocchi-base/Dockerfile.j2 @@ -15,6 +15,12 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build {% endif %} {% if install_type == 'binary' %} + + {# NOTE(mgoddard): EPEL required for python3-boto3 package on CentOS 8 #} + {% if distro_package_manager == 'dnf' %} + {{ macros.enable_extra_repos(['epel']) }} + {% endif %} + {% if base_package_type == 'rpm' %} {% set gnocchi_base_packages = [ diff --git a/docker/ironic/ironic-conductor/Dockerfile.j2 b/docker/ironic/ironic-conductor/Dockerfile.j2 index 943cd206c..39d0957ac 100644 --- a/docker/ironic/ironic-conductor/Dockerfile.j2 +++ b/docker/ironic/ironic-conductor/Dockerfile.j2 @@ -5,7 +5,10 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build {% import "macros.j2" as macros with context %} -{{ macros.enable_extra_repos(['ceph']) }} +{# NOTE(mgoddard): EPEL required for shellinabox package. Not provided by EPEL8 #} +{% if distro_package_manager == 'yum' %} +{{ macros.enable_extra_repos(['epel']) }} +{% endif %} {% if install_type == 'binary' %} {% if base_package_type == 'rpm' %} diff --git a/docker/mariadb/Dockerfile.j2 b/docker/mariadb/Dockerfile.j2 index d958b03b0..fffa48426 100644 --- a/docker/mariadb/Dockerfile.j2 +++ b/docker/mariadb/Dockerfile.j2 @@ -7,7 +7,8 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build {{ macros.configure_user(name='mysql') }} -{{ macros.enable_extra_repos(['mariadb']) }} +{# NOTE(mgoddard): EPEL required for pv package #} +{{ macros.enable_extra_repos(['epel', 'mariadb']) }} {% if base_package_type == 'rpm' %} {% set mariadb_packages = [ diff --git a/docker/mongodb/Dockerfile.j2 b/docker/mongodb/Dockerfile.j2 index 2a9c3312e..b6d7985c5 100644 --- a/docker/mongodb/Dockerfile.j2 +++ b/docker/mongodb/Dockerfile.j2 @@ -7,6 +7,11 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build {{ macros.configure_user(name='mongodb') }} +{# NOTE(mgoddard): EPEL required for mongodb packages. Not provided by EPEL8 #} +{% if distro_package_manager == 'yum' %} +{{ macros.enable_extra_repos(['epel']) }} +{% endif %} + {% if base_package_type == 'rpm' %} {% set mongodb_packages = [ 'mongodb', diff --git a/docker/nova/nova-spicehtml5proxy/Dockerfile.j2 b/docker/nova/nova-spicehtml5proxy/Dockerfile.j2 index b5da34c12..fce71702e 100644 --- a/docker/nova/nova-spicehtml5proxy/Dockerfile.j2 +++ b/docker/nova/nova-spicehtml5proxy/Dockerfile.j2 @@ -5,6 +5,11 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build {% import "macros.j2" as macros with context %} +{# NOTE(mgoddard): EPEL required for spice-html5 package. Not provided by EPEL8 #} +{% if distro_package_manager == 'yum' %} +{{ macros.enable_extra_repos(['epel']) }} +{% endif %} + {% if install_type == 'binary' %} {% if base_package_type == 'rpm' %} diff --git a/docker/openstack-base/Dockerfile.j2 b/docker/openstack-base/Dockerfile.j2 index 7b276bdc3..0b36e26e4 100644 --- a/docker/openstack-base/Dockerfile.j2 +++ b/docker/openstack-base/Dockerfile.j2 @@ -76,7 +76,6 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build 'python3-paramiko', 'python3-paste-deploy', 'python3-pbr', - 'python3-pika', 'python3-posix_ipc', 'python3-prettytable', 'python3-psycopg2', diff --git a/docker/telegraf/Dockerfile.j2 b/docker/telegraf/Dockerfile.j2 index 15134bc6f..3ca337051 100644 --- a/docker/telegraf/Dockerfile.j2 +++ b/docker/telegraf/Dockerfile.j2 @@ -7,6 +7,11 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build {{ macros.configure_user(name='telegraf', homedir='/etc/telegraf') }} +{# NOTE(mgoddard): EPEL required for python2-pip package. python3-pip available in CentOS8 #} +{% if distro_package_manager == 'yum' %} +{{ macros.enable_extra_repos(['epel']) }} +{% endif %} + {{ macros.enable_extra_repos(['influxdb']) }} {% set telegraf_packages = [ -- cgit v1.2.3