From 1fe8012ce2aec549430212d90ffd728889d6e4aa Mon Sep 17 00:00:00 2001 From: Mark Goddard Date: Wed, 26 Feb 2020 10:06:28 +0000 Subject: [PATCH] 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 +++++ kolla/template/repos.yaml | 2 ++ 11 files changed, 38 insertions(+), 4 deletions(-) diff --git a/docker/base/Dockerfile.j2 b/docker/base/Dockerfile.j2 index 85237f663d..15898af612 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 8cf1b62d6a..effd996c2f 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 9b27fbdf12..b1787651d4 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 4d23bd6aaf..5ef69800e8 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 943cd206ca..39d0957acf 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 d958b03b02..fffa484269 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 2a9c3312e5..b6d7985c5a 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 b5da34c12d..fce71702ec 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 7b276bdc31..0b36e26e47 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 15134bc6f3..3ca3370516 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 = [ diff --git a/kolla/template/repos.yaml b/kolla/template/repos.yaml index 777a0ed6c2..36981b4888 100644 --- a/kolla/template/repos.yaml +++ b/kolla/template/repos.yaml @@ -43,6 +43,8 @@ centos8: ceph-noarch: "ceph-noarch" ceph-el8: "ceph-el8" ceph-lab-extras: "ceph-lab-extras" + epel: "epel" + epel-modular: "epel-modular" grafana: "grafana" influxdb: "influxdb" rabbitmq: "rabbitmq_rabbitmq-server"