diff --git a/.zuul.d/base.yaml b/.zuul.d/base.yaml index 7af5c36195..ae7cb1be36 100644 --- a/.zuul.d/base.yaml +++ b/.zuul.d/base.yaml @@ -57,6 +57,12 @@ - name: primary label: centos-8 +- nodeset: + name: kolla-centos8-stream + nodes: + - name: primary + label: centos-8-stream + - nodeset: name: kolla-ubuntu-focal nodes: @@ -75,6 +81,12 @@ - name: primary label: centos-8-arm64 +- nodeset: + name: kolla-centos8-stream-aarch64 + nodes: + - name: primary + label: centos-8-stream-arm64 + - nodeset: name: kolla-debian-buster-aarch64 nodes: diff --git a/.zuul.d/centos.yaml b/.zuul.d/centos.yaml index a04d6f085b..beb5283a91 100644 --- a/.zuul.d/centos.yaml +++ b/.zuul.d/centos.yaml @@ -4,30 +4,40 @@ jobs: - kolla-build-centos8-binary - kolla-build-centos8-source + - kolla-build-centos8s-binary + - kolla-build-centos8s-source - kolla-ansible-centos8-source - kolla-ansible-centos8-binary - kolla-ansible-centos8-source-upgrade check-arm64: jobs: - kolla-build-centos8-source-aarch64 + - kolla-build-centos8s-source-aarch64 gate: queue: kolla jobs: - kolla-build-centos8-source + - kolla-build-centos8s-source - kolla-ansible-centos8-source - kolla-ansible-centos8-source-upgrade periodic: jobs: - kolla-publish-centos8-source-quay - kolla-publish-centos8-binary-quay + - kolla-publish-centos8s-source-quay + - kolla-publish-centos8s-binary-quay periodic-weekly: jobs: - kolla-publish-centos8-source-dockerhub - kolla-publish-centos8-binary-dockerhub + - kolla-publish-centos8s-source-dockerhub + - kolla-publish-centos8s-binary-dockerhub release: jobs: - kolla-publish-centos8-source-dockerhub - kolla-publish-centos8-binary-dockerhub + - kolla-publish-centos8s-source-dockerhub + - kolla-publish-centos8s-binary-dockerhub experimental: jobs: - kolla-build-no-infra-wheels-centos8-source @@ -66,6 +76,17 @@ base_distro: centos install_type: binary +- job: + name: kolla-build-centos8s-binary + parent: kolla-base + nodeset: kolla-centos8-stream + voting: false + vars: + base_distro: centos + base_image: quay.io/centos/centos + base_tag: stream8 + install_type: binary + - job: name: kolla-publish-centos8-binary-dockerhub parent: kolla-build-centos8-binary @@ -77,6 +98,17 @@ secrets: - kolla_dockerhub_creds +- job: + name: kolla-publish-centos8s-binary-dockerhub + parent: kolla-build-centos8s-binary + post-run: tests/playbooks/publish.yml + vars: + publisher: true + kolla_registry: dockerhub + kolla_namespace: kolla + secrets: + - kolla_dockerhub_creds + - job: name: kolla-publish-centos8-binary-quay parent: kolla-build-centos8-binary @@ -88,6 +120,17 @@ secrets: - kolla_quay_io_creds +- job: + name: kolla-publish-centos8s-binary-quay + parent: kolla-build-centos8s-binary + post-run: tests/playbooks/publish.yml + vars: + publisher: true + kolla_registry: quay.io + kolla_namespace: openstack.kolla + secrets: + - kolla_quay_io_creds + - job: name: kolla-build-centos8-source parent: kolla-base @@ -96,12 +139,28 @@ base_distro: centos install_type: source +- job: + name: kolla-build-centos8s-source + parent: kolla-base + nodeset: kolla-centos8-stream + vars: + base_distro: centos + base_image: quay.io/centos/centos + base_tag: stream8 + install_type: source + - job: name: kolla-build-centos8-source-aarch64 parent: kolla-build-centos8-source nodeset: kolla-centos8-aarch64 voting: false +- job: + name: kolla-build-centos8s-source-aarch64 + parent: kolla-build-centos8s-source + nodeset: kolla-centos8-stream-aarch64 + voting: false + - job: name: kolla-publish-centos8-source-dockerhub parent: kolla-build-centos8-source @@ -113,6 +172,17 @@ secrets: - kolla_dockerhub_creds +- job: + name: kolla-publish-centos8s-source-dockerhub + parent: kolla-build-centos8s-source + post-run: tests/playbooks/publish.yml + vars: + publisher: true + kolla_registry: dockerhub + kolla_namespace: kolla + secrets: + - kolla_dockerhub_creds + - job: name: kolla-publish-centos8-source-quay parent: kolla-build-centos8-source @@ -124,6 +194,17 @@ secrets: - kolla_quay_io_creds +- job: + name: kolla-publish-centos8s-source-quay + parent: kolla-build-centos8s-source + post-run: tests/playbooks/publish.yml + vars: + publisher: true + kolla_registry: quay.io + kolla_namespace: openstack.kolla + secrets: + - kolla_quay_io_creds + - job: name: kolla-build-no-infra-wheels-centos8-source parent: kolla-build-no-infra-wheels-base diff --git a/doc/source/admin/image-building.rst b/doc/source/admin/image-building.rst index 069f67e2d6..1e51e135ed 100644 --- a/doc/source/admin/image-building.rst +++ b/doc/source/admin/image-building.rst @@ -78,6 +78,14 @@ See the :ref:`support matrix ` for information on supported base image distribution versions and supported images on each distribution. +The Victoria release supports both CentOS 8 Linux and CentOS 8 Stream base +container images. The default is to use CentOS 8 Linux. CentOS 8 Stream +may be used as follows: + +.. code-block:: console + + kolla-build --base centos --base-image quay.io/centos/centos --base-tag stream8 + It is possible to build only a subset of images by specifying them on the command line: diff --git a/doc/source/support_matrix.rst b/doc/source/support_matrix.rst index 9c1d13af24..87a6cfa1bb 100644 --- a/doc/source/support_matrix.rst +++ b/doc/source/support_matrix.rst @@ -19,14 +19,15 @@ The following base container images are supported: CentOS 7 is no longer supported as a base container image. The Train release supports both CentOS 7 and 8 images, and provides a route for migration. -============= ============ ================ -Distribution Default base Default base tag -============= ============ ================ -CentOS 8 centos 8 -Debian Buster debian 10 -RHEL 8 rhel 8 -Ubuntu Focal ubuntu 20.04 -============= ============ ================ +=============== ============ =============================== ================ +Distribution Default base Default base image Default base tag +=============== ============ =============================== ================ +CentOS 8 Linux centos centos 8 +CentOS 8 Stream centos quay.io/centos/centos stream8 +Debian Buster debian debian 10 +RHEL 8 rhel rhel 8 +Ubuntu Focal ubuntu ubuntu 20.04 +=============== ============ =============================== ================ The remainder of this document outlines which images are supported on which of these distribution. diff --git a/docker/base/Dockerfile.j2 b/docker/base/Dockerfile.j2 index e603e4bdd4..8bd31ae96f 100644 --- a/docker/base/Dockerfile.j2 +++ b/docker/base/Dockerfile.j2 @@ -146,7 +146,10 @@ RUN if [[ -e /etc/yum.repos.d/rabbitmq_rabbitmq-server.repo ]]; then \ 'glibc-all-langpacks' ] %} -RUN {{ macros.install_packages(base_centos_language_packages | customizable("centos_language_packages"), chain=True, clean=False) }} \ +# NOTE(hrw): this macro file drops all languages other than C.UTF-8 so horizon fails +# https://bugzilla.redhat.com/show_bug.cgi?id=1729770 +RUN rm -f /etc/rpm/macros.image-language-conf \ + && {{ macros.install_packages(base_centos_language_packages | customizable("centos_language_packages"), chain=True, clean=False) }} \ && {{ macros.rpm_security_update(clean_package_cache) }} {% endblock %} @@ -250,6 +253,7 @@ RUN {{ macros.install_packages(base_centos_yum_repo_packages | customizable("cen 'curl', 'dumb-init', 'findutils', + 'hostname', 'iproute', 'iscsi-initiator-utils', 'lvm2', diff --git a/docker/monasca/monasca-grafana/Dockerfile.j2 b/docker/monasca/monasca-grafana/Dockerfile.j2 index 7c10d02e88..0adefcaad3 100644 --- a/docker/monasca/monasca-grafana/Dockerfile.j2 +++ b/docker/monasca/monasca-grafana/Dockerfile.j2 @@ -62,6 +62,7 @@ RUN gem install fpm \ && tar --strip 1 -xvf /tmp/monasca-grafana.tgz -C ${monasca_grafana_build_path} \ && rm -f /tmp/monasca-grafana.tgz \ && cd ${monasca_grafana_build_path} \ + && export GO111MODULE=auto \ && go run build.go setup \ && npm config set prefix /usr/local -g \ && npm install npm@6.x -g \ diff --git a/releasenotes/notes/centos-8-stream-b5b45ccee94f7cf5.yaml b/releasenotes/notes/centos-8-stream-b5b45ccee94f7cf5.yaml new file mode 100644 index 0000000000..7cd352ed5e --- /dev/null +++ b/releasenotes/notes/centos-8-stream-b5b45ccee94f7cf5.yaml @@ -0,0 +1,5 @@ +--- +other: + - | + CentOS images are now buildable using CentOS 8 Stream + as a base. diff --git a/tests/playbooks/run.yml b/tests/playbooks/run.yml index 47cdf74b44..2035f427cf 100644 --- a/tests/playbooks/run.yml +++ b/tests/playbooks/run.yml @@ -3,7 +3,8 @@ vars_files: - ../vars/zuul.yml vars: - tag_suffix: "{{ '-aarch64' if ansible_architecture == 'aarch64' else '' }}" + arch_suffix: "{{ '-aarch64' if ansible_architecture == 'aarch64' else '' }}" + tag_suffix: "{{ '-centos8s' if ansible_distribution | lower == 'centos' and base_tag == 'stream8' else '' }}" kolla_build_config: DEFAULT: debug: true @@ -22,12 +23,24 @@ mode: 0777 become: true + - name: Add base_image and base_tag config + vars: + kolla_base_image_config: + DEFAULT: + base_image: "{{ base_image }}" + base_tag: "{{ base_tag }}" + set_fact: + kolla_build_config: "{{ kolla_build_config | combine(kolla_base_image_config, recursive=True) }}" + when: + - base_tag is defined + - base_image is defined + - name: Add publisher config vars: kolla_publisher_config: DEFAULT: namespace: "{{ kolla_namespace }}" - tag: "{{ (zuul.tag if zuul.pipeline == 'release' else zuul.branch | basename) ~ tag_suffix }}" + tag: "{{ (zuul.tag if zuul.pipeline == 'release' else zuul.branch | basename) ~ arch_suffix ~ tag_suffix }}" set_fact: kolla_build_config: "{{ kolla_build_config | combine(kolla_publisher_config, recursive=True) }}" when: