From bd21ac14d73e01c97a780ec8c12fb99e0b8c4b10 Mon Sep 17 00:00:00 2001 From: Marcin Juszkiewicz Date: Mon, 20 Apr 2020 15:13:31 +0200 Subject: [PATCH] switch to official CentOS 8 repositories RDO builds of stable/train for CentOS 8 went into phase when we do not need to use delorean builds. EPEL is disabled like it is in Ussuri (RDO packages may conflict with it). Erlang for RabbitMQ is used from CentOS 8 'rabbitmq-38' repo while RabbitMQ is still 3.7.* from same place as usual. 'python3-pika' is dropped from openstack-base as it is EPEL only package and is not used by any image (dropped in Ussuri in https://review.opendev.org/#/c/710003/ patch) AArch64 is not supported until CentOS 8.2 release. Change-Id: I9d3ed54f4d10ef7ad2d52ed3aeca15f3968cd163 --- docker/base/Dockerfile.j2 | 47 ++++++++++--------- docker/base/ceph.repo | 13 ----- docker/bifrost/bifrost-base/Dockerfile.j2 | 5 ++ docker/mariadb/Dockerfile.j2 | 1 - docker/openstack-base/Dockerfile.j2 | 1 - docker/qdrouterd/Dockerfile.j2 | 9 ++-- kolla/common/config.py | 7 --- kolla/image/build.py | 4 ++ ...-not-part-of-release-330893c1f7d5f394.yaml | 5 ++ 9 files changed, 46 insertions(+), 46 deletions(-) delete mode 100644 docker/base/ceph.repo create mode 100644 releasenotes/notes/centos8-aarch64-not-part-of-release-330893c1f7d5f394.yaml diff --git a/docker/base/Dockerfile.j2 b/docker/base/Dockerfile.j2 index f46d71d3e5..83f6599e9c 100644 --- a/docker/base/Dockerfile.j2 +++ b/docker/base/Dockerfile.j2 @@ -211,34 +211,25 @@ RUN rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 {% endblock %} {% set base_centos_yum_repo_keys = [ + '/etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-Cloud', '/etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-OpsTools', + '/etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-Storage', ] %} -# FIXME(mgoddard): Not available for CentOS 8 yet. -{% if distro_package_manager == 'yum' %} - {% set base_centos_yum_repo_keys = base_centos_yum_repo_keys + [ - '/etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-Cloud', - '/etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-Storage', - '/etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-Virtualization', - ] %} -{% endif %} {% set base_centos_yum_repo_packages = [ + 'centos-release-nfs-ganesha28', + 'centos-release-openstack-train', 'centos-release-opstools', 'epel-release', ] %} -# FIXME(mgoddard): Not available for CentOS 8 yet. -{% if distro_package_manager == 'yum' %} - {% set base_centos_yum_repo_packages = base_centos_yum_repo_packages + [ - 'centos-release-openstack-train', - 'centos-release-ceph-nautilus', - 'centos-release-qemu-ev', - ] %} -# FIXME(mnasiadka): Replace with CentOS Storage SIG packages when avail -{% else %} -COPY ceph.repo /etc/yum.repos.d/ -{% endif %} + +{% set base_centos_yum_repos_to_disable = [ +] %} {% if distro_package_manager == 'dnf' %} + {% set base_centos_yum_repo_keys = base_centos_yum_repo_keys + [ + '/etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-Virtualization-RDO', + ] %} # We need 'dnf-plugins-core' for 'dnf config-manager' {% set base_centos_yum_repo_packages = base_centos_yum_repo_packages + [ 'dnf-plugins-core' @@ -247,14 +238,28 @@ COPY ceph.repo /etc/yum.repos.d/ 'HighAvailability', 'PowerTools' ] %} + {% set base_centos_yum_repos_to_disable = [ + 'epel', + 'epel-modular', + ] %} + + # NOTE(hrw): no rabbitmq for aarch64 in CentOS 8.0/8.1 + {% if base_arch == 'aarch64' %} + {% set base_centos_yum_repos_to_disable = base_centos_yum_repos_to_disable + [ + 'centos-rabbitmq-38' + ] %} + {% endif %} {% else %} + {% set base_centos_yum_repo_keys = base_centos_yum_repo_keys + [ + '/etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-Virtualization', + ] %} {% set base_centos_yum_repo_packages = base_centos_yum_repo_packages + [ + 'centos-release-ceph-nautilus', + 'centos-release-qemu-ev', 'yum-plugin-priorities', ] %} {% endif %} -{% set base_centos_yum_repos_to_disable = [ -] %} RUN {{ macros.install_packages(base_centos_yum_repo_packages | customizable("centos_yum_repo_packages"), chain=True, clean=False) }} \ {%- for repo in base_centos_yum_repos_to_enable | customizable('centos_yum_repos_to_enable') %} diff --git a/docker/base/ceph.repo b/docker/base/ceph.repo deleted file mode 100644 index 8f33995099..0000000000 --- a/docker/base/ceph.repo +++ /dev/null @@ -1,13 +0,0 @@ -[centos-ceph-nautilus] -name=Ceph packages for $basearch -baseurl=https://trunk.rdoproject.org/centos8-master/deps/storage/storage8-ceph-nautilus/$basearch/ -enabled=1 -gpgcheck=0 -type=rpm-md - -[centos-nfs-ganesha28] -name=Ganesha packages for $basearch -baseurl=https://trunk.rdoproject.org/centos8-master/deps/storage/storage8-nfsganesha-28/$basearch/ -enabled=1 -gpgcheck=0 -type=rpm-md diff --git a/docker/bifrost/bifrost-base/Dockerfile.j2 b/docker/bifrost/bifrost-base/Dockerfile.j2 index 6b9f5f4d42..adc8c79dc4 100644 --- a/docker/bifrost/bifrost-base/Dockerfile.j2 +++ b/docker/bifrost/bifrost-base/Dockerfile.j2 @@ -29,6 +29,11 @@ WORKDIR /bifrost {% if base_package_type == 'rpm' %} {# Remove updated RabbitMQ packages since these are not supported by Bifrost yet. #} RUN rm -f /etc/yum.repos.d/rabbitmq_rabbitmq-server.repo \ +{%- if distro_package_manager == 'dnf' %} + && dnf config-manager --enable epel \ +{% else %} + && yum-config-manager --enable epel \ +{% endif -%} && yum clean all && rm -rf /var/yum/cache {% elif base_package_type == 'deb' %} RUN sed -e "s/.*mariadb.*//Ig" -e "s/.*rabbitmq.*//Ig" -i /etc/apt/sources.list \ diff --git a/docker/mariadb/Dockerfile.j2 b/docker/mariadb/Dockerfile.j2 index 7fa09a30d4..ee2616b40c 100644 --- a/docker/mariadb/Dockerfile.j2 +++ b/docker/mariadb/Dockerfile.j2 @@ -16,7 +16,6 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build 'mariadb-backup', 'mariadb-server-galera', 'mariadb-server-utils', - 'pv', 'rsync', 'tar' ] %} diff --git a/docker/openstack-base/Dockerfile.j2 b/docker/openstack-base/Dockerfile.j2 index 668f6ba041..85e3c1826c 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/qdrouterd/Dockerfile.j2 b/docker/qdrouterd/Dockerfile.j2 index 01ba0ef04e..1a0454125a 100644 --- a/docker/qdrouterd/Dockerfile.j2 +++ b/docker/qdrouterd/Dockerfile.j2 @@ -16,10 +16,13 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build 'qpid-dispatch-tools' ] %} -# FIXME(mgoddard): centos-release-opstools not installed on CentOS 8 currently. -{% if base_distro in ['centos'] and distro_package_manager == 'yum' %} +{% if base_distro in ['centos'] %} # make sure qpid is pulled from centos-openstack-RELEASE (RDO) repo -RUN {% if distro_package_manager == 'dnf' %}dnf config-manager{% else %}yum-config-manager{% endif %} --disable epel centos-release-opstools extras +{% if distro_package_manager == 'dnf' %} +RUN dnf config-manager --disable epel centos-opstools extras +{% else %} +RUN yum-config-manager --disable epel centos-release-opstools extras +{% endif %} {% endif %} {{ macros.install_packages(qdrouterd_packages | customizable("packages")) }} diff --git a/kolla/common/config.py b/kolla/common/config.py index 4050b9a8d5..48ea79033d 100755 --- a/kolla/common/config.py +++ b/kolla/common/config.py @@ -13,7 +13,6 @@ import itertools import os -from distutils.version import LooseVersion from oslo_config import cfg from oslo_config import types @@ -1266,12 +1265,6 @@ def parse(conf, args, usage=None, prog=None, # NOTE(jeffrey4l): set the default base tag based on the # base option conf.set_default('base_tag', DEFAULT_BASE_TAGS.get(conf.base)) - # TODO(mgoddard): Remove this 'if' when CentOS 7 is no longer supported. - if conf.base in ['centos', 'rhel']: - if LooseVersion(conf.base_tag) >= LooseVersion('8'): - # Use CentOS 8 Delorean repos. - conf.set_default('rpm_setup_config', [DELOREAN_CENTOS8, - DELOREAN_DEPS_CENTOS8]) if not conf.base_image: conf.base_image = conf.base diff --git a/kolla/image/build.py b/kolla/image/build.py index 26d3d29e26..54f40e3088 100755 --- a/kolla/image/build.py +++ b/kolla/image/build.py @@ -210,9 +210,13 @@ UNBUILDABLE_IMAGES = { 'centos+aarch64': { "elasticsearch", # no binary package + "fluentd", # no binary package + "gnocchi-base", # no python3-boto3 package in HA "hacluster-pcs", # no binary package "influxdb", # no binary package "kibana", # no binary package + "kolla-toolbox", # no erlang package + "rabbitmq", # no erlang package "mongodb", # no binary package }, diff --git a/releasenotes/notes/centos8-aarch64-not-part-of-release-330893c1f7d5f394.yaml b/releasenotes/notes/centos8-aarch64-not-part-of-release-330893c1f7d5f394.yaml new file mode 100644 index 0000000000..d93df17cf9 --- /dev/null +++ b/releasenotes/notes/centos8-aarch64-not-part-of-release-330893c1f7d5f394.yaml @@ -0,0 +1,5 @@ +--- +issues: + - | + AArch64 images using CentOS 8 as base system are not supported in Train. + This may be fixed later in release cycle as we need CentOS 8.2 release.