summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.zuul.d/base.yaml8
-rw-r--r--.zuul.d/centos.yaml58
-rw-r--r--docker/base/Dockerfile.j251
-rw-r--r--docker/base/mariadb-aarch64.repo6
-rw-r--r--docker/base/mariadb.repo2
-rw-r--r--docker/base/rabbitmq_rabbitmq-erlang.repo1
-rw-r--r--docker/bifrost/bifrost-base/Dockerfile.j26
-rw-r--r--docker/collectd/Dockerfile.j23
-rw-r--r--docker/cron/Dockerfile.j25
-rw-r--r--docker/cron/extend_start.sh20
-rwxr-xr-xdocker/cron/logrotate18
-rw-r--r--docker/horizon/Dockerfile.j21
-rw-r--r--docker/iscsid/Dockerfile.j23
-rw-r--r--docker/keystone/keystone-base/Dockerfile.j22
-rw-r--r--docker/kolla-toolbox/Dockerfile.j22
-rw-r--r--docker/mariadb/mariadb-server/Dockerfile.j22
-rw-r--r--docker/neutron/neutron-base/extend_start.sh38
-rw-r--r--docker/nova/nova-compute/Dockerfile.j24
-rw-r--r--docker/nova/nova-libvirt/Dockerfile.j21
-rw-r--r--docker/openstack-base/Dockerfile.j23
-rw-r--r--docker/prometheus/prometheus-libvirt-exporter/Dockerfile.j22
-rw-r--r--docker/rabbitmq/Dockerfile.j22
-rw-r--r--docker/vitrage/vitrage-base/Dockerfile.j21
-rw-r--r--docker/watcher/watcher-base/Dockerfile.j21
-rwxr-xr-xkolla/common/config.py10
-rwxr-xr-xkolla/image/build.py12
-rw-r--r--kolla/template/repos.yaml14
-rw-r--r--kolla/tests/test_build.py5
-rw-r--r--kolla/tests/test_methods.py4
-rw-r--r--releasenotes/notes/centos-stream-9-ec4591d83c22b509.yaml4
-rw-r--r--tests/playbooks/pre.yml16
-rw-r--r--tests/templates/template_overrides.j24
32 files changed, 174 insertions, 135 deletions
diff --git a/.zuul.d/base.yaml b/.zuul.d/base.yaml
index d16c76df1..bca6f1dff 100644
--- a/.zuul.d/base.yaml
+++ b/.zuul.d/base.yaml
@@ -55,10 +55,10 @@
0M27tl+OWHO3KkfFR4tWc3dws3r1kYjQeds0adBHyYD0eL8SJfwZkbtojAQ1JM=
- nodeset:
- name: kolla-centos8-stream
+ name: kolla-centos-9-stream
nodes:
- name: primary
- label: centos-8-stream
+ label: centos-9-stream
- nodeset:
name: kolla-ubuntu-jammy
@@ -73,10 +73,10 @@
label: debian-bullseye
- nodeset:
- name: kolla-centos8-stream-aarch64
+ name: kolla-centos-9-stream-aarch64
nodes:
- name: primary
- label: centos-8-stream-arm64
+ label: centos-9-stream-arm64
- nodeset:
name: kolla-debian-bullseye-aarch64
diff --git a/.zuul.d/centos.yaml b/.zuul.d/centos.yaml
index 6a9e0efa1..e05ec0c8b 100644
--- a/.zuul.d/centos.yaml
+++ b/.zuul.d/centos.yaml
@@ -1,43 +1,41 @@
---
+- project:
+ check:
+ jobs:
+ - kolla-build-centos9s
+ - kolla-ansible-centos9s-source:
+ vars:
+ kolla_python_version: "3.9"
+ check-arm64:
+ jobs:
+ - kolla-build-centos9s-aarch64
+ gate:
+ jobs:
+ - kolla-build-centos9s
+ - kolla-ansible-centos9s-source:
+ vars:
+ kolla_python_version: "3.9"
+ experimental:
+ jobs:
+ - kolla-build-no-infra-wheels-centos9s
+
- job:
- name: kolla-build-centos8s
+ name: kolla-build-centos9s
parent: kolla-base
- nodeset: kolla-centos8-stream
+ nodeset: kolla-centos-9-stream
vars:
base_distro: centos
- base_distro_version: stream8
-
-- job:
- name: kolla-build-centos8s-aarch64
- parent: kolla-build-centos8s
- nodeset: kolla-centos8-stream-aarch64
voting: false
- job:
- name: kolla-publish-centos8s-dockerhub
- parent: kolla-build-centos8s
- post-run: tests/playbooks/publish.yml
- vars:
- publisher: true
- kolla_registry: dockerhub
- kolla_namespace: kolla
- secrets:
- - kolla_dockerhub_creds
-
-- job:
- name: kolla-publish-centos8s-quay
- parent: kolla-build-centos8s
- post-run: tests/playbooks/publish.yml
- vars:
- publisher: true
- kolla_registry: quay.io
- kolla_namespace: openstack.kolla
- secrets:
- - kolla_quay_io_creds
+ name: kolla-build-centos9s-aarch64
+ parent: kolla-build-centos9s
+ nodeset: kolla-centos-9-stream-aarch64
+ voting: false
- job:
- name: kolla-build-no-infra-wheels-centos8s
+ name: kolla-build-no-infra-wheels-centos9s
parent: kolla-build-no-infra-wheels-base
- nodeset: kolla-centos8-stream
+ nodeset: kolla-centos-9-stream
vars:
base_distro: centos
diff --git a/docker/base/Dockerfile.j2 b/docker/base/Dockerfile.j2
index a25be51c5..13af63149 100644
--- a/docker/base/Dockerfile.j2
+++ b/docker/base/Dockerfile.j2
@@ -62,10 +62,14 @@ COPY dnf.conf /etc/dnf/dnf.conf
{% endblock %}
#### BEGIN REPO ENABLEMENT
+{#
+Repo files not available for CentOS Stream 9:
+ 'elasticsearch.repo', # signed with SHA1 key https://github.com/elastic/elasticsearch/issues/85876
+ 'grafana.repo', # signed with SHA1 key https://github.com/grafana/grafana/issues/41036
+ 'proxysql.repo', # no repository yet for RHEL9 family
+ #}
{% set base_yum_repo_files = [
- 'elasticsearch.repo',
- 'grafana.repo',
- 'proxysql.repo',
+ 'mariadb.repo',
'rabbitmq_rabbitmq-server.repo',
'td.repo',
] %}
@@ -73,35 +77,41 @@ COPY dnf.conf /etc/dnf/dnf.conf
{% set base_yum_url_packages = [
] %}
-{% set base_yum_repo_keys = [
+{#
+SHA1 keys are not supported in RHEL9: https://github.com/rpm-software-management/rpm/issues/1977
'https://artifacts.elastic.co/GPG-KEY-elasticsearch',
'https://packages.grafana.com/gpg.key',
+ #}
+{% set base_yum_repo_keys = [
'https://downloads.mariadb.com/MariaDB/RPM-GPG-KEY-MariaDB',
- 'https://repo.proxysql.com/ProxySQL/proxysql-2.4.x/repo_pub_key',
- 'https://github.com/rabbitmq/signing-keys/releases/download/2.0/rabbitmq-release-signing-key.asc',
'https://packages.treasuredata.com/GPG-KEY-td-agent',
] %}
{% if base_arch == 'x86_64' %}
{% set base_yum_repo_files = base_yum_repo_files + [
'influxdb.repo',
- 'mariadb.repo',
'rabbitmq_rabbitmq-erlang.repo',
] %}
# FIXME(mgoddard): Not available for CentOS 8 yet.
# 'crmsh.repo',
{% set base_yum_repo_keys = base_yum_repo_keys + [
+ 'https://github.com/rabbitmq/signing-keys/releases/download/2.0/rabbitmq-release-signing-key.asc',
'https://repos.influxdata.com/influxdb.key',
] %}
{% elif base_arch == 'aarch64' %}
- {% set base_yum_repo_files = base_yum_repo_files + [
+{#
+Repo files not available for CentOS Stream 9:
'erlang-solutions.repo',
- 'mariadb-aarch64.repo',
+ #}
+ {% set base_yum_repo_files = base_yum_repo_files + [
] %}
- {% set base_yum_repo_keys = base_yum_repo_keys + [
+{#
+SHA1 keys are not supported in RHEL9: https://github.com/rpm-software-management/rpm/issues/1977
'https://packages.erlang-solutions.com/rpm/erlang_solutions.asc',
+ #}
+ {% set base_yum_repo_keys = base_yum_repo_keys + [
] %}
{% endif %}
@@ -150,8 +160,7 @@ RUN rm -f /etc/rpm/macros.image-language-conf \
] %}
{% set base_centos_yum_repo_packages = [
- 'centos-release-ceph-pacific',
- 'centos-release-nfv-extras',
+ 'centos-release-ceph-quincy',
'centos-release-nfv-openvswitch',
'centos-release-opstools',
'epel-release',
@@ -168,20 +177,26 @@ RUN rm -f /etc/rpm/macros.image-language-conf \
# from delorean or rdo-release-* package
# https://review.rdoproject.org/r/c/rdo-infra/ansible-role-dlrn/+/33241
{% set base_centos_yum_repos_to_disable = [
- 'advanced-virtualization',
- 'centos-nfv-extras',
- 'centos-nfv-ovs',
- 'centos-ceph-pacific',
+ 'centos-ceph-quincy',
'centos-nfv-openvswitch',
'centos-opstools',
+ 'centos9-nfv-ovs',
+ 'centos9-opstools',
+ 'centos9-rabbitmq',
+ 'centos9-storage',
'epel',
- 'epel-modular',
] %}
{% if base_arch == 'x86_64' %}
{% set base_centos_yum_repos_to_disable = base_centos_yum_repos_to_disable + [
'influxdb',
] %}
+{% elif base_arch == 'aarch64' %}
+
+{# NOTE(hrw): delorean-deps.repo may force x86-64 repos #}
+
+RUN sed -i -e "s/x86_64/aarch64/g" /etc/yum.repos.d/delorean-deps.repo
+
{% endif %}
RUN {{ macros.install_packages(base_centos_yum_repo_packages | customizable("centos_yum_repo_packages"), chain=True, clean=False) }}
@@ -204,9 +219,9 @@ RUN {{ macros.install_packages(base_centos_yum_repo_packages | customizable("cen
{% block base_redhat_binary_versionlock %}{% endblock %}
+{# NOTE(hrw): CentOS Stream 9 has curl-minimal, Rocky Linux 9 has curl so we do not install any #}
{% set base_centos_packages = [
'ca-certificates',
- 'curl',
'dumb-init',
'findutils',
'hostname',
diff --git a/docker/base/mariadb-aarch64.repo b/docker/base/mariadb-aarch64.repo
deleted file mode 100644
index 79929e8e9..000000000
--- a/docker/base/mariadb-aarch64.repo
+++ /dev/null
@@ -1,6 +0,0 @@
-[mariadb]
-name = MariaDB Server
-baseurl = https://dlm.mariadb.com/repo/mariadb-server/10.6/yum/rhel/8/aarch64
-gpgcheck = 1
-enabled = 0
-module_hotfixes = 1
diff --git a/docker/base/mariadb.repo b/docker/base/mariadb.repo
index 7420fcd35..43ea786a5 100644
--- a/docker/base/mariadb.repo
+++ b/docker/base/mariadb.repo
@@ -1,6 +1,6 @@
[mariadb]
name = MariaDB Server
-baseurl = https://dlm.mariadb.com/repo/mariadb-server/10.6/yum/rhel/8/x86_64
+baseurl = https://dlm.mariadb.com/repo/mariadb-server/10.6/yum/rhel/$releasever/$basearch
gpgcheck = 1
enabled = 0
module_hotfixes = 1
diff --git a/docker/base/rabbitmq_rabbitmq-erlang.repo b/docker/base/rabbitmq_rabbitmq-erlang.repo
index bcb4f40f1..59d49c492 100644
--- a/docker/base/rabbitmq_rabbitmq-erlang.repo
+++ b/docker/base/rabbitmq_rabbitmq-erlang.repo
@@ -1,5 +1,6 @@
[rabbitmq_rabbitmq-erlang]
name=rabbitmq_rabbitmq-erlang
+# https://www.rabbitmq.com/install-rpm.html lists "el/8" for CentOS Stream 9
baseurl=https://packagecloud.io/rabbitmq/erlang/el/8/$basearch
gpgcheck=1
enabled=0
diff --git a/docker/bifrost/bifrost-base/Dockerfile.j2 b/docker/bifrost/bifrost-base/Dockerfile.j2
index 9592798b2..7c4fed946 100644
--- a/docker/bifrost/bifrost-base/Dockerfile.j2
+++ b/docker/bifrost/bifrost-base/Dockerfile.j2
@@ -12,6 +12,12 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build
{# NOTE(mgoddard): EPEL required for nginx #}
{{ macros.enable_extra_repos(['epel']) }}
+{% set bifrost_base_packages = [
+ 'cpio',
+] %}
+
+{{ macros.install_packages(bifrost_base_packages | customizable("packages")) }}
+
ENV VENV /var/lib/kolla/venv
{% set bifrost_base_pip_packages = [
diff --git a/docker/collectd/Dockerfile.j2 b/docker/collectd/Dockerfile.j2
index 0190b71f5..85194cc26 100644
--- a/docker/collectd/Dockerfile.j2
+++ b/docker/collectd/Dockerfile.j2
@@ -30,12 +30,10 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build
'collectd-dbi',
'collectd-disk',
'collectd-dns',
- 'collectd-generic-jmx',
'collectd-ipmi',
'collectd-log_logstash',
'collectd-logparser',
'collectd-mcelog',
- 'collectd-memcachec',
'collectd-mysql',
'collectd-netlink',
'collectd-openldap',
@@ -59,7 +57,6 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build
{% if base_arch =='x86_64' %}
{% set collectd_packages = collectd_packages + [
'collectd-hugepages',
- 'collectd-iptables',
'collectd-pcie-errors',
'collectd-pmu',
'collectd-rdt',
diff --git a/docker/cron/Dockerfile.j2 b/docker/cron/Dockerfile.j2
index fbbd68500..860fae576 100644
--- a/docker/cron/Dockerfile.j2
+++ b/docker/cron/Dockerfile.j2
@@ -12,6 +12,11 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build
'cronie',
'logrotate'
] %}
+
+# NOTE(hrw): In RHEL 9 family it is done by systemd timer, we want cron to
+# handle it.
+COPY logrotate /etc/cron.daily/logrotate
+
{% elif base_package_type == 'deb' %}
{% set cron_packages = [
'cron',
diff --git a/docker/cron/extend_start.sh b/docker/cron/extend_start.sh
index 7f78e8500..3476302e1 100644
--- a/docker/cron/extend_start.sh
+++ b/docker/cron/extend_start.sh
@@ -3,15 +3,19 @@
CRON_LOGROTATE_CURRENT_PATH="$(find /etc/cron* -name logrotate)"
CRON_LOGROTATE_CURRENT_SCHEDULE=$(echo "${CRON_LOGROTATE_CURRENT_PATH}" | sed -r 's/(.*)(hourly|daily|weekly|monthly)(.*)/\2/g')
-# Pass only for hourly|daily|weekly|monthly
-if [[ "${KOLLA_LOGROTATE_SCHEDULE:-undefined}" =~ hourly|daily|weekly|monthly ]]; then
+if [ -z $CRON_LOGROTATE_CURRENT_PATH ]; then
+ echo "logrotate is not handled by cron"
+else
+ # Pass only for hourly|daily|weekly|monthly
+ if [[ "${KOLLA_LOGROTATE_SCHEDULE:-undefined}" =~ hourly|daily|weekly|monthly ]]; then
- CRON_LOGROTATE_DESIRED_PATH="/etc/cron.${KOLLA_LOGROTATE_SCHEDULE}/logrotate"
+ CRON_LOGROTATE_DESIRED_PATH="/etc/cron.${KOLLA_LOGROTATE_SCHEDULE}/logrotate"
- if [[ "${CRON_LOGROTATE_CURRENT_PATH}" != "${CRON_LOGROTATE_DESIRED_PATH}" ]]; then
- mv ${CRON_LOGROTATE_CURRENT_PATH} ${CRON_LOGROTATE_DESIRED_PATH}
- CRON_LOGROTATE_CURRENT_SCHEDULE="${KOLLA_LOGROTATE_SCHEDULE}"
+ if [[ "${CRON_LOGROTATE_CURRENT_PATH}" != "${CRON_LOGROTATE_DESIRED_PATH}" ]]; then
+ mv ${CRON_LOGROTATE_CURRENT_PATH} ${CRON_LOGROTATE_DESIRED_PATH}
+ CRON_LOGROTATE_CURRENT_SCHEDULE="${KOLLA_LOGROTATE_SCHEDULE}"
+ fi
fi
-fi
-echo "[i] Cron schedule for logrotate is currently set to: ${CRON_LOGROTATE_CURRENT_SCHEDULE}."
+ echo "[i] Cron schedule for logrotate is currently set to: ${CRON_LOGROTATE_CURRENT_SCHEDULE}."
+fi
diff --git a/docker/cron/logrotate b/docker/cron/logrotate
new file mode 100755
index 000000000..1ac157001
--- /dev/null
+++ b/docker/cron/logrotate
@@ -0,0 +1,18 @@
+#!/bin/sh
+
+# skip in favour of systemd timer
+if [ -d /run/systemd/system ]; then
+ exit 0
+fi
+
+# this cronjob persists removals (but not purges)
+if [ ! -x /usr/sbin/logrotate ]; then
+ exit 0
+fi
+
+/usr/sbin/logrotate /etc/logrotate.conf
+EXITVALUE=$?
+if [ $EXITVALUE != 0 ]; then
+ /usr/bin/logger -t logrotate "ALERT exited abnormally with [$EXITVALUE]"
+fi
+exit $EXITVALUE
diff --git a/docker/horizon/Dockerfile.j2 b/docker/horizon/Dockerfile.j2
index 1a2352e21..62053f88a 100644
--- a/docker/horizon/Dockerfile.j2
+++ b/docker/horizon/Dockerfile.j2
@@ -7,7 +7,6 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build
{% import "macros.j2" as macros with context %}
-{{ macros.enable_extra_repos(['powertools']) }}
{{ macros.configure_user(name='horizon') }}
{% if base_package_type == 'rpm' %}
diff --git a/docker/iscsid/Dockerfile.j2 b/docker/iscsid/Dockerfile.j2
index ca6e44080..091666b5f 100644
--- a/docker/iscsid/Dockerfile.j2
+++ b/docker/iscsid/Dockerfile.j2
@@ -26,8 +26,9 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build
{{ macros.install_packages(iscsid_packages | customizable("packages")) }}
COPY extend_start.sh /usr/local/bin/kolla_extend_start
+# NOTE(hrw): CentOS Stream 9 lacks initiatorname.iscsi file
RUN chmod 644 /usr/local/bin/kolla_extend_start \
- && rm /etc/iscsi/initiatorname.iscsi
+ && rm -f /etc/iscsi/initiatorname.iscsi
{% block iscsid_footer %}{% endblock %}
{% block footer %}{% endblock %}
diff --git a/docker/keystone/keystone-base/Dockerfile.j2 b/docker/keystone/keystone-base/Dockerfile.j2
index fc5f814a2..0415e0ace 100644
--- a/docker/keystone/keystone-base/Dockerfile.j2
+++ b/docker/keystone/keystone-base/Dockerfile.j2
@@ -17,8 +17,6 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build
'openldap-devel',
] %}
-RUN dnf module enable mod_auth_openidc -y
-
{% elif base_package_type == 'deb' %}
{% set keystone_base_packages = [
'libapache2-mod-auth-mellon',
diff --git a/docker/kolla-toolbox/Dockerfile.j2 b/docker/kolla-toolbox/Dockerfile.j2
index 618bf3719..20822738b 100644
--- a/docker/kolla-toolbox/Dockerfile.j2
+++ b/docker/kolla-toolbox/Dockerfile.j2
@@ -17,7 +17,7 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build
{{ macros.enable_extra_repos(['epel']) }}
{% endif %}
-{{ macros.enable_extra_repos(['erlang', 'openvswitch', 'powertools', 'rabbitmq']) }}
+{{ macros.enable_extra_repos(['crb', 'erlang', 'openvswitch', 'rabbitmq']) }}
{% if base_package_type == 'rpm' %}
diff --git a/docker/mariadb/mariadb-server/Dockerfile.j2 b/docker/mariadb/mariadb-server/Dockerfile.j2
index d3f6d440f..2be384f6d 100644
--- a/docker/mariadb/mariadb-server/Dockerfile.j2
+++ b/docker/mariadb/mariadb-server/Dockerfile.j2
@@ -10,7 +10,7 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build
{{ macros.configure_user(name='mysql') }}
{# NOTE(mgoddard): EPEL required for pv package #}
-{{ macros.enable_extra_repos(['epel']) }}
+{{ macros.enable_extra_repos(['epel', 'mariadb']) }}
{% if base_package_type == 'rpm' %}
{% set mariadb_packages = [
diff --git a/docker/neutron/neutron-base/extend_start.sh b/docker/neutron/neutron-base/extend_start.sh
index 32108209d..c560cedf8 100644
--- a/docker/neutron/neutron-base/extend_start.sh
+++ b/docker/neutron/neutron-base/extend_start.sh
@@ -6,26 +6,28 @@ fi
if [[ $(stat -c %a /var/log/kolla/neutron) != "755" ]]; then
chmod 755 /var/log/kolla/neutron
fi
-if [[ ${KOLLA_BASE_DISTRO} == "centos" ]]; then
- export UPDATE_ALTERNATIVES="/usr/sbin/update-alternatives"
-else
- export UPDATE_ALTERNATIVES="/usr/bin/update-alternatives"
-fi
-# set legacy iptables to allow kernels not supporting iptables-nft
-# CentOS has update-alternatives 1.13, so use --display (not --query)
-if $UPDATE_ALTERNATIVES --display iptables; then
- # NOTE(yoctozepto): Kolla-Ansible does not always set KOLLA_LEGACY_IPTABLES;
- # the workaround below ensures it gets set to `false` in such cases to fix
- # this code under `set -o nounset`.
- KOLLA_LEGACY_IPTABLES=${KOLLA_LEGACY_IPTABLES-false}
+# NOTE(hrw): from RHEL 9 release notes:
+# "Iptables-nft and ipset are now deprecated, which included the utilities,
+# iptables, ip6tables, ebtables, and arptables. These are all replaced by the
+# nftables framework."
+# so no need to even use u-a on RHEL 9 family as there is one provider
+# (and there is no u-a for ip6tables so script fails)
+
+if [[ ${KOLLA_BASE_DISTRO} != "centos" ]]; then
+ if /usr/bin/update-alternatives --display iptables; then
+ # NOTE(yoctozepto): Kolla-Ansible does not always set KOLLA_LEGACY_IPTABLES;
+ # the workaround below ensures it gets set to `false` in such cases to fix
+ # this code under `set -o nounset`.
+ KOLLA_LEGACY_IPTABLES=${KOLLA_LEGACY_IPTABLES-false}
- if [[ $KOLLA_LEGACY_IPTABLES == "true" ]]; then
- sudo $UPDATE_ALTERNATIVES --set iptables /usr/sbin/iptables-legacy
- sudo $UPDATE_ALTERNATIVES --set ip6tables /usr/sbin/ip6tables-legacy
- else
- sudo $UPDATE_ALTERNATIVES --auto iptables
- sudo $UPDATE_ALTERNATIVES --auto ip6tables
+ if [[ $KOLLA_LEGACY_IPTABLES == "true" ]]; then
+ sudo /usr/bin/update-alternatives --set iptables /usr/sbin/iptables-legacy
+ sudo /usr/bin/update-alternatives --set ip6tables /usr/sbin/ip6tables-legacy
+ else
+ sudo /usr/bin/update-alternatives --auto iptables
+ sudo /usr/bin/update-alternatives --auto ip6tables
+ fi
fi
fi
diff --git a/docker/nova/nova-compute/Dockerfile.j2 b/docker/nova/nova-compute/Dockerfile.j2
index 2db11a224..5420e9363 100644
--- a/docker/nova/nova-compute/Dockerfile.j2
+++ b/docker/nova/nova-compute/Dockerfile.j2
@@ -42,9 +42,7 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build
] %}
{% endif %}
-{{ macros.install_packages(nova_compute_packages | customizable("packages")) }} \
- && dnf remove -y linux-firmware \
- && dnf clean all
+{{ macros.install_packages(nova_compute_packages | customizable("packages")) }}
{% elif base_package_type == 'deb' %}
diff --git a/docker/nova/nova-libvirt/Dockerfile.j2 b/docker/nova/nova-libvirt/Dockerfile.j2
index 199707b69..100b0c2d6 100644
--- a/docker/nova/nova-libvirt/Dockerfile.j2
+++ b/docker/nova/nova-libvirt/Dockerfile.j2
@@ -25,7 +25,6 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build
'openvswitch',
'qemu-img',
'qemu-kvm',
- 'trousers'
] %}
{% if base_arch == 'x86_64' %}
{% set nova_libvirt_packages = nova_libvirt_packages + [
diff --git a/docker/openstack-base/Dockerfile.j2 b/docker/openstack-base/Dockerfile.j2
index cd21a65b9..36d02f62f 100644
--- a/docker/openstack-base/Dockerfile.j2
+++ b/docker/openstack-base/Dockerfile.j2
@@ -7,7 +7,7 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build
{% import "macros.j2" as macros with context %}
-{{ macros.enable_extra_repos(['opstools', 'powertools']) }}
+{{ macros.enable_extra_repos(['crb']) }}
{% if base_package_type == 'rpm' %}
{% set openstack_base_packages = [
@@ -55,7 +55,6 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build
{% endif %}
-{{ macros.enable_extra_repos(['powertools']) }}
{{ macros.install_packages(openstack_base_packages | customizable("packages")) }}
{% set openstack_base_pip_packages = [
diff --git a/docker/prometheus/prometheus-libvirt-exporter/Dockerfile.j2 b/docker/prometheus/prometheus-libvirt-exporter/Dockerfile.j2
index d341af1e2..0cf606ad1 100644
--- a/docker/prometheus/prometheus-libvirt-exporter/Dockerfile.j2
+++ b/docker/prometheus/prometheus-libvirt-exporter/Dockerfile.j2
@@ -5,6 +5,8 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build
{% import "macros.j2" as macros with context %}
+{{ macros.enable_extra_repos(['crb']) }}
+
{% block prometheus_libvirt_exporter_header %}{% endblock %}
{% if base_package_type == 'rpm' %}
diff --git a/docker/rabbitmq/Dockerfile.j2 b/docker/rabbitmq/Dockerfile.j2
index 9dc7d2363..7d524df68 100644
--- a/docker/rabbitmq/Dockerfile.j2
+++ b/docker/rabbitmq/Dockerfile.j2
@@ -14,7 +14,7 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build
{{ macros.enable_extra_repos(['epel']) }}
{% endif %}
-{{ macros.enable_extra_repos(['erlang', 'powertools', 'rabbitmq']) }}
+{{ macros.enable_extra_repos(['crb', 'erlang', 'rabbitmq']) }}
{% block rabbitmq_install %}
{% if base_package_type == 'rpm' %}
diff --git a/docker/vitrage/vitrage-base/Dockerfile.j2 b/docker/vitrage/vitrage-base/Dockerfile.j2
index aaa1dd55d..d971584c2 100644
--- a/docker/vitrage/vitrage-base/Dockerfile.j2
+++ b/docker/vitrage/vitrage-base/Dockerfile.j2
@@ -7,7 +7,6 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build
{% import "macros.j2" as macros with context %}
-{{ macros.enable_extra_repos(['powertools']) }}
{{ macros.configure_user(name='vitrage') }}
{% if base_package_type == 'rpm' %}
diff --git a/docker/watcher/watcher-base/Dockerfile.j2 b/docker/watcher/watcher-base/Dockerfile.j2
index aae288e56..7850642b7 100644
--- a/docker/watcher/watcher-base/Dockerfile.j2
+++ b/docker/watcher/watcher-base/Dockerfile.j2
@@ -7,7 +7,6 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build
{% import "macros.j2" as macros with context %}
-{{ macros.enable_extra_repos(['powertools']) }}
{{ macros.configure_user(name='watcher') }}
ADD watcher-base-archive /watcher-base-source
diff --git a/kolla/common/config.py b/kolla/common/config.py
index 773e7c11c..d6b5e1e0f 100755
--- a/kolla/common/config.py
+++ b/kolla/common/config.py
@@ -24,22 +24,20 @@ from kolla.version import version_info as version
BASE_OS_DISTRO = ['centos', 'debian', 'ubuntu']
BASE_ARCH = ['x86_64', 'aarch64']
DEFAULT_BASE_TAGS = {
- 'centos': {'name': 'quay.io/centos/centos', 'tag': 'stream8'},
+ 'centos': {'name': 'quay.io/centos/centos', 'tag': 'stream9'},
'debian': {'name': 'debian', 'tag': 'bullseye'},
'ubuntu': {'name': 'ubuntu', 'tag': '22.04'},
}
# NOTE(hrw): has to match PRETTY_NAME in /etc/os-release
DISTRO_PRETTY_NAME = {
- 'centos': 'CentOS Stream 8',
+ 'centos': 'CentOS Stream 9',
'debian': 'Debian GNU/Linux 11 (bullseye)',
'ubuntu': 'Ubuntu 22.04',
}
OPENSTACK_RELEASE = 'master'
# This is noarch repository so we will use it on all architectures
-DELOREAN = "https://trunk.rdoproject.org/centos8-yoga/" \
- "consistent/delorean.repo"
-DELOREAN_DEPS = "https://trunk.rdoproject.org/centos8-yoga/" \
+DELOREAN_DEPS = "https://trunk.rdoproject.org/centos9-master/" \
"delorean-deps.repo"
INSTALL_TYPE_CHOICES = ['source']
@@ -270,7 +268,7 @@ _BASE_OPTS = [
help=('Set the package type of the distro. If not set then '
'the packaging type is set to "rpm" if a RHEL based '
'distro and "deb" if a Debian based distro.')),
- cfg.ListOpt('rpm_setup_config', default=[DELOREAN, DELOREAN_DEPS],
+ cfg.ListOpt('rpm_setup_config', default=[DELOREAN_DEPS],
help=('Comma separated list of .rpm or .repo file(s) '
'or URL(s) to install before building containers')),
cfg.StrOpt('apt_sources_list', help=('Path to custom sources.list')),
diff --git a/kolla/image/build.py b/kolla/image/build.py
index 25eb38a74..48e5d9731 100755
--- a/kolla/image/build.py
+++ b/kolla/image/build.py
@@ -87,11 +87,19 @@ UNBUILDABLE_IMAGES = {
"skydive-base", # no aarch64 binary
},
+ # Issues for SHA1 keys:
+ # https://github.com/elastic/elasticsearch/issues/85876
+ # https://github.com/grafana/grafana/issues/41036
'centos': {
+ "elasticsearch", # SHA1 gpg key
+ "grafana", # SHA1 gpg key
"hacluster-pcs", # Missing crmsh package
+ "kibana", # SHA1 gpg key
+ "logstash", # SHA1 gpg key
"nova-spicehtml5proxy", # Missing spicehtml5 package
"ovsdpdk", # Not supported on CentOS
- "tgtd", # Not supported on CentOS 8
+ "proxysql", # no binary package
+ "tgtd", # Not supported on CentOS
},
'debian': {
@@ -623,7 +631,7 @@ class KollaWorker(object):
self.rpm_setup = self.build_rpm_setup(rpm_setup_config)
if self.base in ['centos']:
- self.conf.distro_python_version = "3.6"
+ self.conf.distro_python_version = "3.9"
self.distro_package_manager = 'dnf'
self.base_package_type = 'rpm'
elif self.base in ['debian']:
diff --git a/kolla/template/repos.yaml b/kolla/template/repos.yaml
index 68f53c826..916b35da2 100644
--- a/kolla/template/repos.yaml
+++ b/kolla/template/repos.yaml
@@ -1,13 +1,13 @@
---
centos:
- ceph: "centos-ceph-pacific"
+ ceph: "centos-ceph-quincy"
+ crb: "crb"
elasticsearch: "elasticsearch-kibana-logstash-7.x"
epel: "epel"
- epel-modular: "epel-modular"
erlang: "rabbitmq_rabbitmq-erlang"
extras: "extras"
grafana: "grafana"
- hacluster: "ha"
+ hacluster: "highavailability"
haproxy: "centos-nfv-extras"
influxdb: "influxdb"
kibana: "elasticsearch-kibana-logstash-7.x"
@@ -15,27 +15,25 @@ centos:
mariadb: "mariadb"
openvswitch: "centos-nfv-openvswitch"
opstools: "centos-opstools"
- powertools: "powertools"
proxysql: "proxysql"
rabbitmq: "rabbitmq_rabbitmq-server"
td-agent: "treasuredata"
centos-aarch64:
- ceph: "centos-ceph-pacific"
+ ceph: "centos-ceph-quincy"
+ crb: "crb"
elasticsearch: "elasticsearch-kibana-logstash-7.x"
epel: "epel"
- epel-modular: "epel-modular"
erlang: "erlang-solutions"
extras: "extras"
grafana: "grafana"
- hacluster: "ha"
+ hacluster: "highavailability"
haproxy: "centos-nfv-extras"
kibana: "elasticsearch-kibana-logstash-7.x"
logstash: "elasticsearch-kibana-logstash-7.x"
mariadb: "mariadb"
openvswitch: "centos-nfv-openvswitch"
opstools: "centos-opstools"
- powertools: "powertools"
proxysql: "proxysql"
rabbitmq: "rabbitmq_rabbitmq-server"
td-agent: "treasuredata"
diff --git a/kolla/tests/test_build.py b/kolla/tests/test_build.py
index ab6e37432..bf9896465 100644
--- a/kolla/tests/test_build.py
+++ b/kolla/tests/test_build.py
@@ -529,11 +529,10 @@ class KollaWorkerTest(base.TestCase):
self.assertEqual('3.10', kolla.distro_python_version)
def test_build_distro_python_version_centos(self):
- """check distro_python_version for CentOS 8.0.1905"""
+ """check distro_python_version for CentOS Stream 9"""
self.conf.set_override('base', 'centos')
- self.conf.set_override('base_tag', '8.0.1905')
kolla = build.KollaWorker(self.conf)
- self.assertEqual('3.6', kolla.distro_python_version)
+ self.assertEqual('3.9', kolla.distro_python_version)
def test_build_distro_package_manager(self):
"""check distro_package_manager conf value is taken"""
diff --git a/kolla/tests/test_methods.py b/kolla/tests/test_methods.py
index 16b40c17f..d98fa8825 100644
--- a/kolla/tests/test_methods.py
+++ b/kolla/tests/test_methods.py
@@ -55,7 +55,7 @@ class MethodsTest(base.TestCase):
result = methods.handle_repos(template_vars, ['grafana', 'ceph'],
'enable')
expectCmd = 'RUN dnf config-manager --enable grafana '
- expectCmd += '--enable centos-ceph-pacific || true'
+ expectCmd += '--enable centos-ceph-quincy || true'
self.assertEqual(expectCmd, result)
def test_enable_repos_debian(self):
@@ -145,7 +145,7 @@ class MethodsTest(base.TestCase):
result = methods.handle_repos(template_vars, ['grafana', 'ceph'],
'disable')
expectCmd = 'RUN dnf config-manager --disable grafana '
- expectCmd += '--disable centos-ceph-pacific || true'
+ expectCmd += '--disable centos-ceph-quincy || true'
self.assertEqual(expectCmd, result)
# NOTE(hrw): there is no disabling of repos for Debian/Ubuntu
diff --git a/releasenotes/notes/centos-stream-9-ec4591d83c22b509.yaml b/releasenotes/notes/centos-stream-9-ec4591d83c22b509.yaml
new file mode 100644
index 000000000..32136eca7
--- /dev/null
+++ b/releasenotes/notes/centos-stream-9-ec4591d83c22b509.yaml
@@ -0,0 +1,4 @@
+---
+features:
+ - |
+ CentOS Stream 9 is now used instead of CentOS Stream 8.
diff --git a/tests/playbooks/pre.yml b/tests/playbooks/pre.yml
index 2e8f3c888..5a2c01c53 100644
--- a/tests/playbooks/pre.yml
+++ b/tests/playbooks/pre.yml
@@ -18,26 +18,24 @@
path: "{{ kolla_build_logs_dir }}"
state: directory
- - name: Install Python3 setuptools and family
+ - name: Install Python3 pip and setuptools
package:
name:
- python3-pip
- python3-setuptools
- - python3-virtualenv
- - python3-wheel
become: true
- # NOTE(hrw): On RedHat systems it is part of python3-virtualenv
- - name: Install virtualenv on Debian systems
+ # NOTE(hrw): On RedHat systems venv is part of python3-libs
+ - name: Install Python3 venv on Debian systems
package:
name:
- - virtualenv
+ - python3-venv
become: true
when:
ansible_os_family == "Debian"
- name: Create virtualenv
- command: python3 -m virtualenv {{ virtualenv_path }} --python python3
+ command: python3 -m venv {{ virtualenv_path }}
- name: Install kolla
command: "{{ virtualenv_path }}/bin/python -m pip install {{ zuul.project.src_dir }}"
@@ -58,11 +56,11 @@
- name: Configure Docker repo for CentOS
block:
- - name: Add Docker YUM repository
+ - name: Add Docker repository
yum_repository:
name: docker
description: Docker
- baseurl: "{{ nodepool_docker_proxy }}/centos/7/$basearch/stable"
+ baseurl: "{{ nodepool_docker_proxy }}/centos/9/$basearch/stable"
enabled: yes
gpgcheck: yes
gpgkey: "{{ nodepool_docker_proxy }}/centos/gpg"
diff --git a/tests/templates/template_overrides.j2 b/tests/templates/template_overrides.j2
index 5112bafa7..932917c3c 100644
--- a/tests/templates/template_overrides.j2
+++ b/tests/templates/template_overrides.j2
@@ -23,7 +23,7 @@ RUN echo registry={{ nodepool_npmjs_proxy }} > /etc/npmrc \
RUN sed -i \
-e "s|^\(mirrorlist.*\)|#\1|" \
-e "s|^#baseurl=http://mirror.centos.org|baseurl=http://{{ nodepool_mirror_host }}|" \
- /etc/yum.repos.d/CentOS-*.repo
+ /etc/yum.repos.d/centos*.repo
{% raw %}
{% endblock %}
@@ -46,7 +46,7 @@ RUN sed -i \
-e "s|^#baseurl=https://mirror.centos.org|baseurl=http://{{ nodepool_mirror_host }}|" \
-e "s|^baseurl=http://mirror.centos.org|baseurl=http://{{ nodepool_mirror_host }}|" \
-e "s|^baseurl=https://mirror.centos.org|baseurl=http://{{ nodepool_mirror_host }}|" \
- /etc/yum.repos.d/CentOS-*.repo \
+ /etc/yum.repos.d/centos*.repo \
&& sed -i \
-e "s|^\(metalink.*\)|#\1|" \
-e "s|^#baseurl=http://download.example/pub|baseurl=http://{{ nodepool_mirror_host }}|" \