diff --git a/README.rst b/README.rst index 4af919296e..a8cf66238f 100644 --- a/README.rst +++ b/README.rst @@ -133,7 +133,7 @@ Kolla provides images to deploy the following infrastructure components: direct messaging back end for communication between services. - `RabbitMQ `__ as a broker messaging back end for communication between services. -- `Redis Sentinel `__ provides high availability for redis +- `Valkey Sentinel `__ provides high availability for valkey along with collateral tasks such as monitoring, notification and acts as configuration provider for clients. - `Telegraf `__ as a plugin-driven server diff --git a/doc/source/matrix_aarch64.csv b/doc/source/matrix_aarch64.csv index 028bba2c21..04e94f1690 100644 --- a/doc/source/matrix_aarch64.csv +++ b/doc/source/matrix_aarch64.csv @@ -46,11 +46,11 @@ ovsdpdk,N,U,U placement,U,U,U prometheus,U,U,U rabbitmq,U,U,U -redis,U,U,U skyline,U,U,U tacker,U,U,U telegraf,N,N,N tgtd,U,U,U trove,U,U,U +valkey,U,U,U watcher,U,U,U zun,U,U,U diff --git a/doc/source/matrix_x86.csv b/doc/source/matrix_x86.csv index 14c37597dc..738475b61f 100644 --- a/doc/source/matrix_x86.csv +++ b/doc/source/matrix_x86.csv @@ -47,12 +47,12 @@ ovsdpdk,N,U,U placement,T,T,T prometheus,U,U,U rabbitmq,T,T,T -redis,T,U,U skyline,U,U,U swift,T,T,U tacker,T,U,U telegraf,U,U,U tgtd,N,T,U trove,U,U,U +valkey,T,U,U watcher,U,U,U zun,T,T,U diff --git a/doc/source/support_matrix.rst b/doc/source/support_matrix.rst index 48338af6f9..445ed08c63 100644 --- a/doc/source/support_matrix.rst +++ b/doc/source/support_matrix.rst @@ -18,7 +18,7 @@ The following base container images are supported: Distribution Default base Default base tag ================== =============================== ================ Rocky Linux quay.io/rockylinux/rockylinux 10 -Debian Bookworm debian bookworm +Debian Trixie debian trixie Ubuntu Noble ubuntu 24.04 ================== =============================== ================ diff --git a/docker/base/Dockerfile.j2 b/docker/base/Dockerfile.j2 index 5ba1d5a874..53ef731cc9 100644 --- a/docker/base/Dockerfile.j2 +++ b/docker/base/Dockerfile.j2 @@ -187,12 +187,12 @@ RUN cat /tmp/kolla_bashrc >> /etc/bash.bashrc \ && sed -i -e s/#*LAST_SYSTEM_UID=999/LAST_SYSTEM_UID=59999/g \ -e s/#*LAST_SYSTEM_GID=999/LAST_SYSTEM_GID=59999/g /etc/adduser.conf +{# NOTE(mnasiadka): Ubuntu arm64 uses ports.ubuntu.com #} {% block base_ubuntu_package_sources_list %} -{% if base_distro == 'debian' or ( base_distro == 'ubuntu' and base_arch == 'x86_64' ) %} -RUN rm -f /etc/apt/sources.list.d/{{ base_distro }}.sources -COPY sources.list.{{ base_distro }} /etc/apt/sources.list +{% if base_distro == "ubuntu" and base_arch == 'aarch64' %} +COPY {{ base_distro }}.sources.arm64 /etc/apt/sources.list.d/{{ base_distro }}.sources {% else %} -COPY sources.list.{{ base_distro }}.{{ base_arch }} /etc/apt/sources.list +COPY {{ base_distro }}.sources /etc/apt/sources.list.d/ {% endif %} COPY sources.list /etc/apt/sources.list.d/kolla-custom.list {% endblock %} diff --git a/docker/base/apt_preferences.debian b/docker/base/apt_preferences.debian index 5edb8814a4..08e21ff227 100644 --- a/docker/base/apt_preferences.debian +++ b/docker/base/apt_preferences.debian @@ -1,4 +1,4 @@ # NOTE(hrw): we do not want backports unless requested Package: * -Pin: release n=bookworm-backports +Pin: release n=trixie-backports Pin-Priority: -1000 diff --git a/docker/base/debian.sources b/docker/base/debian.sources new file mode 100644 index 0000000000..28c61c81d4 --- /dev/null +++ b/docker/base/debian.sources @@ -0,0 +1,13 @@ +Types: deb +# http://snapshot.debian.org/archive/debian/20251020T000000Z +URIs: http://deb.debian.org/debian +Suites: trixie trixie-updates trixie-backports +Components: main +Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg + +Types: deb +# http://snapshot.debian.org/archive/debian-security/20251020T000000Z +URIs: http://deb.debian.org/debian-security +Suites: trixie-security +Components: main +Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg diff --git a/docker/base/sources.list.debian b/docker/base/sources.list.debian deleted file mode 100644 index 89f7a1160b..0000000000 --- a/docker/base/sources.list.debian +++ /dev/null @@ -1,11 +0,0 @@ -# Default repos -deb http://deb.debian.org/debian bookworm main - -# debian security updates -deb http://deb.debian.org/debian-security bookworm-security main - -# debian updates -deb http://deb.debian.org/debian bookworm-updates main - -# debian backports -deb http://deb.debian.org/debian bookworm-backports main diff --git a/docker/base/sources.list.ubuntu b/docker/base/sources.list.ubuntu deleted file mode 100644 index 6542433e39..0000000000 --- a/docker/base/sources.list.ubuntu +++ /dev/null @@ -1,15 +0,0 @@ -# For non-x86 architectures we use sources.list.ubuntu. - -# Default repos -deb mirror://mirrors.ubuntu.com/mirrors.txt noble main universe -deb mirror://mirrors.ubuntu.com/mirrors.txt noble-updates main universe -deb mirror://mirrors.ubuntu.com/mirrors.txt noble-backports main universe -deb mirror://mirrors.ubuntu.com/mirrors.txt noble-security main universe - -# We need to add the repo for the updated packages they provide. The main ones -# are qemu, libvirt, and openvswitch. -deb http://ubuntu-cloud.archive.canonical.com/ubuntu noble-updates/flamingo main - -# NOTE(hrw): extra repositories are added into image when they are needed as -# separate files in /etc/apt/sources.list.d/ directory. For that purpose they -# are defined in kolla/template/repos.yaml file. diff --git a/docker/base/sources.list.ubuntu.aarch64 b/docker/base/sources.list.ubuntu.aarch64 deleted file mode 100644 index d4cfbe20f5..0000000000 --- a/docker/base/sources.list.ubuntu.aarch64 +++ /dev/null @@ -1,15 +0,0 @@ -# Default repos -deb http://ports.ubuntu.com/ noble main universe -deb http://ports.ubuntu.com/ noble-updates main universe -deb http://ports.ubuntu.com/ noble-security main universe - -# Backports have a lower priority and must be explicitly installed to be used -deb http://ports.ubuntu.com/ noble-backports main universe - -# We need to add the repo for the updated packages they provide. The main ones -# are qemu, libvirt, and openvswitch. -deb http://ubuntu-cloud.archive.canonical.com/ubuntu noble-updates/flamingo main - -# NOTE(hrw): extra repositories are added into image when they are needed as -# separate files in /etc/apt/sources.list.d/ directory. For that purpose they -# are defined in kolla/template/repos.yaml file. diff --git a/docker/base/ubuntu.sources b/docker/base/ubuntu.sources new file mode 100644 index 0000000000..6e12fb58ce --- /dev/null +++ b/docker/base/ubuntu.sources @@ -0,0 +1,24 @@ +Types: deb +URIs: http://archive.ubuntu.com/ubuntu/ +Suites: noble noble-updates noble-backports +Components: main universe +Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg + +## Ubuntu security updates. Aside from URIs and Suites, +## this should mirror your choices in the previous section. +Types: deb +URIs: http://security.ubuntu.com/ubuntu/ +Suites: noble-security +Components: main universe +Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg + +## Ubuntu Cloud Archive +Types: deb +URIs: http://ubuntu-cloud.archive.canonical.com/ubuntu +Suites: noble-updates/flamingo +Components: main +Signed-By: /usr/share/keyrings/ubuntu-cloud-keyring.gpg + +# NOTE(hrw): extra repositories are added into image when they are needed as +# separate files in /etc/apt/sources.list.d/ directory. For that purpose they +# are defined in kolla/template/repos.yaml file. diff --git a/docker/base/ubuntu.sources.arm64 b/docker/base/ubuntu.sources.arm64 new file mode 100644 index 0000000000..da3ecdfdab --- /dev/null +++ b/docker/base/ubuntu.sources.arm64 @@ -0,0 +1,24 @@ +Types: deb +URIs: http://ports.ubuntu.com/ubuntu-ports/ +Suites: noble noble-updates noble-backports +Components: main universe +Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg + +## Ubuntu security updates. Aside from URIs and Suites, +## this should mirror your choices in the previous section. +Types: deb +URIs: http://ports.ubuntu.com/ubuntu-ports/ +Suites: noble-security +Components: main universe +Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg + +## Ubuntu Cloud Archive +Types: deb +URIs: http://ubuntu-cloud.archive.canonical.com/ubuntu +Suites: noble-updates/flamingo +Components: main +Signed-By: /usr/share/keyrings/ubuntu-cloud-keyring.gpg + +# NOTE(hrw): extra repositories are added into image when they are needed as +# separate files in /etc/apt/sources.list.d/ directory. For that purpose they +# are defined in kolla/template/repos.yaml file. diff --git a/docker/httpd/Dockerfile.j2 b/docker/httpd/Dockerfile.j2 index 2b58e7b127..a414656611 100644 --- a/docker/httpd/Dockerfile.j2 +++ b/docker/httpd/Dockerfile.j2 @@ -22,8 +22,7 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build 'apache2', 'ca-certificates', 'libapache2-mod-auth-mellon', - 'libapache2-mod-auth-openidc', - 'libapache2-mod-proxy-uwsgi' + 'libapache2-mod-auth-openidc' ] %} {% endif %} diff --git a/docker/manila/manila-share/Dockerfile.j2 b/docker/manila/manila-share/Dockerfile.j2 index 35ff6b8f48..210d8b31c2 100644 --- a/docker/manila/manila-share/Dockerfile.j2 +++ b/docker/manila/manila-share/Dockerfile.j2 @@ -8,10 +8,6 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build {% import "macros.j2" as macros with context %} {% if base_package_type == 'rpm' %} - -{# NOTE(mnasiadka): glusterfs-fuse missing in CentOS 10 Stream - temporarily from Kolla COPR #} -{{ macros.enable_extra_repos(['ceph', 'epel', 'kolla_el10']) }} - {% set manila_share_packages = [ 'ceph-common', 'sqlite', diff --git a/docker/mariadb-server/Dockerfile.j2 b/docker/mariadb-server/Dockerfile.j2 index 8d17ff4ff9..af9297396a 100644 --- a/docker/mariadb-server/Dockerfile.j2 +++ b/docker/mariadb-server/Dockerfile.j2 @@ -9,19 +9,16 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build {{ macros.configure_user(name='mysql') }} -{# NOTE(mnasiadka): Use AppStream version of MariaDB for now in CentOS #} - {% if base_package_type == 'rpm' %} {# NOTE(mgoddard): EPEL required for pv package #} -{{ macros.enable_extra_repos(['epel']) }} +{{ macros.enable_extra_repos(['epel', 'mariadb']) }} {% set mariadb_packages = [ 'expect', 'mariadb', 'mariadb-backup', 'mariadb-server', - 'mariadb-server-galera', 'pv', 'rsync', 'tar' @@ -36,7 +33,10 @@ RUN ln -s /usr/lib64/galera-4 /usr/lib64/galera 'expect', 'mariadb-backup', 'mariadb-client', - 'mariadb-server' + 'mariadb-server', + 'pv', + 'rsync', + 'tar' ] %} {% endif %} diff --git a/docker/neutron/neutron-base/Dockerfile.j2 b/docker/neutron/neutron-base/Dockerfile.j2 index e3d19178d4..956551fbda 100644 --- a/docker/neutron/neutron-base/Dockerfile.j2 +++ b/docker/neutron/neutron-base/Dockerfile.j2 @@ -78,6 +78,7 @@ RUN chmod +x /usr/local/lib/neutron-wrappers/copy-wrappers \ && chmod +x /usr/local/lib/neutron-wrappers/delete-wrappers RUN ln -s neutron-base-source/* neutron \ + && {{ macros.upper_constraints_remove('networking-generic-switch') }} \ && {{ macros.install_pip(neutron_base_pip_packages | customizable("pip_packages")) }} \ && mkdir -p /etc/neutron \ && cp -r /neutron/etc/* /etc/neutron/ \ diff --git a/docker/nova/nova-compute-ironic/Dockerfile.j2 b/docker/nova/nova-compute-ironic/Dockerfile.j2 index b248025c8c..c849dc18fc 100644 --- a/docker/nova/nova-compute-ironic/Dockerfile.j2 +++ b/docker/nova/nova-compute-ironic/Dockerfile.j2 @@ -7,7 +7,11 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build {% import "macros.j2" as macros with context %} -{% set nova_compute_ironic_packages = ['xorriso', 'nvme-cli'] %} +{% set nova_compute_ironic_packages = [ + 'genisoimage', + 'nvme-cli', + 'xorriso' +] %} {{ macros.install_packages(nova_compute_ironic_packages | customizable("packages")) }} diff --git a/docker/openstack-base/Dockerfile.j2 b/docker/openstack-base/Dockerfile.j2 index fafd405d55..85b1f4b002 100644 --- a/docker/openstack-base/Dockerfile.j2 +++ b/docker/openstack-base/Dockerfile.j2 @@ -44,7 +44,7 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build 'git', 'libapache2-mod-wsgi-py3', 'libffi-dev', - 'libpcre3-dev', + 'libpcre2-dev', 'libpq-dev', 'libssl-dev', 'libxml2-dev', diff --git a/docker/redis/redis-base/Dockerfile.j2 b/docker/redis/redis-base/Dockerfile.j2 deleted file mode 100644 index 89dccd2580..0000000000 --- a/docker/redis/redis-base/Dockerfile.j2 +++ /dev/null @@ -1,17 +0,0 @@ -FROM {{ namespace }}/{{ image_prefix }}base:{{ tag }} -{% block labels %} -LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build_date }}" -{% endblock %} - -{% block redis_base_header %}{% endblock %} - -{% import "macros.j2" as macros with context %} - -{{ macros.configure_user(name='redis', homedir='/run/redis') }} - -COPY extend_start.sh /usr/local/bin/kolla_extend_start -RUN chmod 644 /usr/local/bin/kolla_extend_start - -{{ macros.kolla_patch_sources() }} - -{% block redis_base_footer %}{% endblock %} diff --git a/docker/redis/redis-base/extend_start.sh b/docker/redis/redis-base/extend_start.sh deleted file mode 100644 index f5f12ac70f..0000000000 --- a/docker/redis/redis-base/extend_start.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/bash - -if [[ ! -d "/var/log/kolla/redis" ]]; then - mkdir -p /var/log/kolla/redis -fi - -if [[ $(stat -c %a /var/log/kolla/redis) != "755" ]]; then - chmod 755 /var/log/kolla/redis -fi diff --git a/docker/redis/redis-sentinel/Dockerfile.j2 b/docker/redis/redis-sentinel/Dockerfile.j2 deleted file mode 100644 index 83fc60df05..0000000000 --- a/docker/redis/redis-sentinel/Dockerfile.j2 +++ /dev/null @@ -1,25 +0,0 @@ -FROM {{ namespace }}/{{ image_prefix }}redis-base:{{ tag }} -{% block labels %} -LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build_date }}" -{% endblock %} - -{% block redis_sentinel_header %}{% endblock %} - -{% import "macros.j2" as macros with context %} - -{% if base_package_type == 'rpm' %} - {% set redis_sentinel_packages = ['redis'] %} -{% elif base_package_type == 'deb' %} - {% set redis_sentinel_packages = ['redis-sentinel'] %} -{% endif %} -{{ macros.install_packages(redis_sentinel_packages | customizable("packages")) }} - -COPY extend_start.sh /usr/local/bin/kolla_extend_start -RUN chmod 644 /usr/local/bin/kolla_extend_start - -{{ macros.kolla_patch_sources() }} - -{% block redis_sentinel_footer %}{% endblock %} -{% block footer %}{% endblock %} - -USER redis diff --git a/docker/redis/redis-sentinel/extend_start.sh b/docker/redis/redis-sentinel/extend_start.sh deleted file mode 100644 index 9044f39908..0000000000 --- a/docker/redis/redis-sentinel/extend_start.sh +++ /dev/null @@ -1,32 +0,0 @@ -#!/bin/bash - -if [[ ! -d "/var/log/kolla/redis" ]]; then - mkdir -p /var/log/kolla/redis -fi - -if [[ $(stat -c %a /var/log/kolla/redis) != "755" ]]; then - chmod 755 /var/log/kolla/redis -fi - -# The CONFIG REWRITE command rewrites the redis.conf -# file the server was started with, applying the minimal -# changes needed to make it reflect the configuration -# currently used by the server, which may be different -# compared to the original one because of the use of -# the CONFIG SET command. -# -# https://redis.io/commands/config-rewrite/ -# -# Because of above behaviour it's needed to -# hack kolla's CMD. -# -# Without this hack -# /usr/local/bin/kolla_set_configs --check -# is always reporting changed. -# -# Therefore redis-sentinel is always restarted -# even if configuration is not changed from -# kolla-ansible side. -if [ ! -z "${REDIS_CONF}" ] && [ ! -z ${REDIS_GEN_CONF} ]; then - cp ${REDIS_CONF} ${REDIS_GEN_CONF} -fi diff --git a/docker/redis/redis/Dockerfile.j2 b/docker/redis/redis/Dockerfile.j2 deleted file mode 100644 index 7e5ce923b2..0000000000 --- a/docker/redis/redis/Dockerfile.j2 +++ /dev/null @@ -1,22 +0,0 @@ -FROM {{ namespace }}/{{ image_prefix }}redis-base:{{ tag }} -{% block labels %} -LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build_date }}" -{% endblock %} - -{% block redis_header %}{% endblock %} - -{% import "macros.j2" as macros with context %} - -{% if base_package_type == 'rpm' %} - {% set redis_packages = ['redis'] %} -{% elif base_package_type == 'deb' %} - {% set redis_packages = ['redis-server'] %} -{% endif %} -{{ macros.install_packages(redis_packages | customizable("packages")) }} - -{{ macros.kolla_patch_sources() }} - -{% block redis_footer %}{% endblock %} -{% block footer %}{% endblock %} - -USER redis diff --git a/docker/valkey/valkey-sentinel/Dockerfile.j2 b/docker/valkey/valkey-sentinel/Dockerfile.j2 index e3045d2fe9..9cdfac282f 100644 --- a/docker/valkey/valkey-sentinel/Dockerfile.j2 +++ b/docker/valkey/valkey-sentinel/Dockerfile.j2 @@ -11,11 +11,7 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build {{ macros.enable_extra_repos(['epel']) }} {% set valkey_sentinel_packages = ['valkey'] %} {% elif base_package_type == 'deb' %} - {% if base_distro == 'debian' %} - {% set valkey_sentinel_packages = ['valkey-sentinel/bookworm-backports'] %} - {% else %} - {% set valkey_sentinel_packages = ['valkey-sentinel'] %} - {% endif %} + {% set valkey_sentinel_packages = ['valkey-sentinel'] %} {% endif %} {{ macros.install_packages(valkey_sentinel_packages | customizable("packages")) }} diff --git a/docker/valkey/valkey-server/Dockerfile.j2 b/docker/valkey/valkey-server/Dockerfile.j2 index 7b989f66b4..9d187ffbe4 100644 --- a/docker/valkey/valkey-server/Dockerfile.j2 +++ b/docker/valkey/valkey-server/Dockerfile.j2 @@ -9,14 +9,10 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build {% if base_package_type == 'rpm' %} {{ macros.enable_extra_repos(['epel']) }} - {% set valkey_server_packages = ['valkey'] %} -{% elif base_package_type == 'deb' %} - {% if base_distro == 'debian' %} - {% set valkey_server_packages = ['valkey/bookworm-backports'] %} - {% else %} - {% set valkey_server_packages = ['valkey'] %} - {% endif %} {% endif %} + +{% set valkey_server_packages = ['valkey'] %} + {{ macros.install_packages(valkey_server_packages | customizable("packages")) }} {{ macros.kolla_patch_sources() }} diff --git a/kolla/common/config.py b/kolla/common/config.py index 2ec2194ac5..9999393010 100644 --- a/kolla/common/config.py +++ b/kolla/common/config.py @@ -26,22 +26,21 @@ DEBIAN_ARCH = ['amd64', 'arm64'] DEFAULT_BASE_TAGS = { 'centos': {'name': 'quay.io/centos/centos', 'tag': 'stream10'}, - 'debian': {'name': 'debian', 'tag': 'bookworm'}, + 'debian': {'name': 'debian', 'tag': 'trixie'}, 'rocky': {'name': 'quay.io/rockylinux/rockylinux', 'tag': '10'}, 'ubuntu': {'name': 'ubuntu', 'tag': '24.04'}, } # NOTE(hrw): has to match PRETTY_NAME in /etc/os-release DISTRO_PRETTY_NAME = { 'centos': 'CentOS Stream 10', - 'debian': 'Debian GNU/Linux 12 (bookworm)', + 'debian': 'Debian GNU/Linux 13 (trixie)', 'rocky': 'Rocky Linux 10.* (Red Quartz)', 'ubuntu': 'Ubuntu 24.04.* LTS', } -OPENSTACK_RELEASE = '2025.2' -# NOTE(mnasiadka): Using Epoxy here, since Debian OpenStack builds Flamingo -# only for Trixie -OPENSTACK_RELEASE_CODENAME = 'Epoxy' +OPENSTACK_RELEASE = 'master' +# NOTE(mnasiadka): Using Flamingo here until Gazpacho shows up in osbpo +OPENSTACK_RELEASE_CODENAME = 'Flamingo' # TODO(mandre) check for file integrity instead of downloading from an HTTPS # source @@ -64,9 +63,9 @@ 'openvswitch', 'proxysql', 'rabbitmq', - 'redis', 'storm', 'tgtd', + 'valkey', ], help='Infra images'), cfg.ListOpt('main', @@ -99,10 +98,10 @@ 'masakari', 'mistral', 'octavia', - 'redis', 'tacker', 'telegraf', 'trove', + 'valkey', 'zookeeper', 'zun', ], diff --git a/kolla/common/users.py b/kolla/common/users.py index de8fc315cd..ec21b06581 100644 --- a/kolla/common/users.py +++ b/kolla/common/users.py @@ -217,7 +217,7 @@ 'uid': 42459, 'gid': 42459, }, - 'redis-user': { + 'redis-user': { # unused user (redis dropped) 'uid': 42460, 'gid': 42460, }, diff --git a/kolla/image/unbuildable.py b/kolla/image/unbuildable.py index 997b4b86b3..06c1f51f99 100644 --- a/kolla/image/unbuildable.py +++ b/kolla/image/unbuildable.py @@ -26,14 +26,11 @@ "hacluster-pcs", # Missing crmsh package "nova-spicehtml5proxy", # Missing spicehtml5 package "ovsdpdk", # Not supported on CentOS - "redis-base", # Missing in CS10 "telegraf", # CS10 no opstools repo "tgtd", # Not supported on CentOS }, 'debian': { - "openvswitch-netcontrold", - # https://bugs.launchpad.net/kolla/+bug/2027668 }, 'rocky': { @@ -41,7 +38,6 @@ "hacluster-pcs", # Missing crmsh package "nova-spicehtml5proxy", # Missing spicehtml5 package "ovsdpdk", # Not supported on CentOS - "redis-base", # Missing in Rocky10 "telegraf", # CS10 no opstools repo "tgtd", # Not supported on CentOS }, diff --git a/kolla/template/repos.yaml b/kolla/template/repos.yaml index 7d9d7ec71a..efdb15376b 100644 --- a/kolla/template/repos.yaml +++ b/kolla/template/repos.yaml @@ -27,39 +27,40 @@ deb: debian: erlang: url: "https://ppa.launchpadcontent.net/rabbitmq/rabbitmq-erlang/ubuntu" - suite: "jammy" + suite: "noble" component: "main" gpg_key: "erlang-ppa.gpg" docker-ce: url: "https://download.docker.com/linux/debian" - suite: "bookworm" + suite: "trixie" component: "stable" gpg_key: "docker-ce.asc" fluentd: - url: "https://fluentd.cdn.cncf.io/lts/6/debian/bookworm" - suite: "bookworm" + url: "https://fluentd.cdn.cncf.io/lts/6/debian/trixie" + suite: "trixie" component: "contrib" gpg_key: "fluentd.asc" + # NOTE(mnasiadka): 11.4 does not have trixie builds yet mariadb: url: "https://dlm.mariadb.com/repo/mariadb-server/11.4/repo/debian" suite: "bookworm" component: "main" gpg_key: "mariadb.gpg" proxysql: - url: "https://repo.proxysql.com/ProxySQL/proxysql-3.0.x/bookworm/" + url: "https://repo.proxysql.com/ProxySQL/proxysql-3.0.x/trixie/" suite: "./" component: "" gpg_key: "proxysql.asc" rabbitmq: - url: "https://deb1.rabbitmq.com/rabbitmq-server/debian/bookworm" - suite: "bookworm" + url: "https://deb1.rabbitmq.com/rabbitmq-server/debian/trixie/" + suite: "trixie" component: "main" gpg_key: "rabbitmq.gpg" debian-aarch64: rabbitmq: - url: "https://deb1.rabbitmq.com/rabbitmq-server/debian/bookworm" - suite: "bookworm" + url: "https://deb1.rabbitmq.com/rabbitmq-server/debian/trixie" + suite: "trixie" component: "main" # NOTE(mnasiadka): Since rabbitmq is really noarch and community mirror is not # syncing binary-aarch64 - we're using amd64 here. diff --git a/kolla/tests/test_methods.py b/kolla/tests/test_methods.py index 2d2fdd3edc..f304623625 100644 --- a/kolla/tests/test_methods.py +++ b/kolla/tests/test_methods.py @@ -191,13 +191,13 @@ def test_enable_repos_debian_arch(self): } result = methods.handle_repos(template_vars, ["rabbitmq"], "enable") - expectCmd = "RUN echo 'Uris: https://deb1.rabbitmq.com/rabbitmq-server/debian/bookworm' " # noqa: E501 + expectCmd = "RUN echo 'Uris: https://deb1.rabbitmq.com/rabbitmq-server/debian/trixie' " # noqa: E501 expectCmd += ">/etc/apt/sources.list.d/rabbitmq.sources && " expectCmd += "echo 'Components: main' " expectCmd += ">>/etc/apt/sources.list.d/rabbitmq.sources && " expectCmd += "echo 'Types: deb' " expectCmd += ">>/etc/apt/sources.list.d/rabbitmq.sources && " - expectCmd += "echo 'Suites: bookworm' " + expectCmd += "echo 'Suites: trixie' " expectCmd += ">>/etc/apt/sources.list.d/rabbitmq.sources && " expectCmd += "echo 'Signed-By: /etc/kolla/apt-keys/rabbitmq.gpg' " expectCmd += ">>/etc/apt/sources.list.d/rabbitmq.sources && " @@ -236,13 +236,13 @@ def test_enable_repos_debian_multiple(self): expectCmd += ">>/etc/apt/sources.list.d/grafana.sources && " expectCmd += "echo 'Uris: " - expectCmd += "https://deb1.rabbitmq.com/rabbitmq-server/debian/bookworm' " # noqa: E501 + expectCmd += "https://deb1.rabbitmq.com/rabbitmq-server/debian/trixie/' " # noqa: E501 expectCmd += ">/etc/apt/sources.list.d/rabbitmq.sources && " expectCmd += "echo 'Components: main' " expectCmd += ">>/etc/apt/sources.list.d/rabbitmq.sources && " expectCmd += "echo 'Types: deb' " expectCmd += ">>/etc/apt/sources.list.d/rabbitmq.sources && " - expectCmd += "echo 'Suites: bookworm' " + expectCmd += "echo 'Suites: trixie' " expectCmd += ">>/etc/apt/sources.list.d/rabbitmq.sources && " expectCmd += "echo 'Signed-By: /etc/kolla/apt-keys/rabbitmq.gpg' " expectCmd += ">>/etc/apt/sources.list.d/rabbitmq.sources" diff --git a/releasenotes/notes/bug-2132960-genisoimage_package_nova-compute-ironic-28f4c262ec201f99.yaml b/releasenotes/notes/bug-2132960-genisoimage_package_nova-compute-ironic-28f4c262ec201f99.yaml new file mode 100644 index 0000000000..beffc2df00 --- /dev/null +++ b/releasenotes/notes/bug-2132960-genisoimage_package_nova-compute-ironic-28f4c262ec201f99.yaml @@ -0,0 +1,6 @@ +--- +fixes: + - | + Add missing genisoimage package to nova-compute-ironic + container to fix ironic baremetal provisioning error. + `LP#2132960 `__ diff --git a/releasenotes/notes/deb822-3f0435dfce6da841.yaml b/releasenotes/notes/deb822-3f0435dfce6da841.yaml new file mode 100644 index 0000000000..572248317f --- /dev/null +++ b/releasenotes/notes/deb822-3f0435dfce6da841.yaml @@ -0,0 +1,6 @@ +--- +features: + - | + ``base`` container image sources.list for Debian and Ubuntu have been + reworked to use ``deb822`` and now are called ``debian.sources`` and + ``ubuntu.sources``. diff --git a/releasenotes/notes/debian-trixie-23987480043dc662.yaml b/releasenotes/notes/debian-trixie-23987480043dc662.yaml new file mode 100644 index 0000000000..68555cfea9 --- /dev/null +++ b/releasenotes/notes/debian-trixie-23987480043dc662.yaml @@ -0,0 +1,5 @@ +--- +features: + - | + Debian ``trixie`` is now used instead of ``bookworm``. Trixie is the current + stable release of Debian. diff --git a/releasenotes/notes/drop-redis-d286ca1237747c48.yaml b/releasenotes/notes/drop-redis-d286ca1237747c48.yaml new file mode 100644 index 0000000000..9710a37a28 --- /dev/null +++ b/releasenotes/notes/drop-redis-d286ca1237747c48.yaml @@ -0,0 +1,4 @@ +--- +upgrade: + - | + ``redis`` container image has been dropped due to migration to ``valkey``. diff --git a/setup.cfg b/setup.cfg index 1ee28f601c..2634ee512e 100644 --- a/setup.cfg +++ b/setup.cfg @@ -6,7 +6,7 @@ description_file = author = OpenStack author_email = openstack-discuss@lists.openstack.org home_page = https://docs.openstack.org/kolla/latest/ -python_requires = >=3.8 +python_requires = >=3.10 license = Apache License, Version 2.0 classifier = Environment :: OpenStack @@ -18,11 +18,10 @@ classifier = Programming Language :: Python :: Implementation :: CPython Programming Language :: Python :: 3 :: Only Programming Language :: Python :: 3 - Programming Language :: Python :: 3.8 - Programming Language :: Python :: 3.9 Programming Language :: Python :: 3.10 Programming Language :: Python :: 3.11 Programming Language :: Python :: 3.12 + Programming Language :: Python :: 3.13 [files] packages = diff --git a/tests/templates/template_overrides.j2 b/tests/templates/template_overrides.j2 index d9d89b3e0e..481795cd65 100644 --- a/tests/templates/template_overrides.j2 +++ b/tests/templates/template_overrides.j2 @@ -34,16 +34,19 @@ RUN sed -i -e "s/^mirrorlist/#mirrorlist/g" -e "s/^#baseurl/baseurl/g" \ {% endraw %} {% if base_distro == "debian" %} -RUN sed -i -e "s|http://deb.debian.org|[trusted=yes] http://{{ nodepool_mirror_host }}|" \ - -e "s|http://security.debian.org|[trusted=yes] http://{{ nodepool_mirror_host }}|" \ - /etc/apt/sources.list +RUN cp /etc/apt/sources.list.d/debian.sources /tmp/ && \ + sed -i -e "s|^URIs: http://deb.debian.org/debian$|URIs: http://{{ nodepool_mirror_host }}/debian\nTrusted: yes|" \ + -e "s|^URIs: http://deb.debian.org/debian-security|URIs: http://{{ nodepool_mirror_host }}/debian-security\nTrusted: yes|" \ + /etc/apt/sources.list.d/debian.sources {% elif base_distro == "ubuntu" %} -RUN sed -i -e "s|mirror://mirrors.ubuntu.com/mirrors.txt|[trusted=yes] http://{{ nodepool_mirror_host }}/ubuntu/|" \ - -e "s|http://ports.ubuntu.com|[trusted=yes] http://{{ nodepool_mirror_host }}/ubuntu-ports|" \ - -e "s|http://ubuntu-cloud.archive.canonical.com/ubuntu|[trusted=yes] http://{{ nodepool_mirror_host }}/ubuntu-cloud-archive|" \ - /etc/apt/sources.list +RUN cp /etc/apt/sources.list.d/ubuntu.sources /tmp/ && \ + sed -i -e "s|^URIs: http://archive.ubuntu.com/ubuntu/$|URIs: http://{{ nodepool_mirror_host }}/ubuntu/\nTrusted: yes|" \ + -e "s|^URIs: http://security.ubuntu.com/ubuntu/$|URIs: http://{{ nodepool_mirror_host }}/ubuntu/\nTrusted: yes|" \ + -e "s|^URIs: http://ports.ubuntu.com/ubuntu-ports/$|URIs: http://{{ nodepool_mirror_host }}/ubuntu-ports/\nTrusted: yes|" \ + -e "s|^URIs: http://ubuntu-cloud.archive.canonical.com/ubuntu$|URIs: http://{{ nodepool_mirror_host }}/ubuntu-cloud-archive\nTrusted: yes|" \ + /etc/apt/sources.list.d/ubuntu.sources {% endif %} {% raw %} @@ -59,21 +62,19 @@ ENV PIP_TRUSTED_HOST= {% if use_infra_wheels_mirror | default(true) %} ENV PIP_EXTRA_INDEX_URL= {% endif %} - RUN if [ -f /usr/etc/npmrc ]; then \ unlink /usr/etc/npmrc; \ fi \ && rm -f /etc/npmrc {% if base_distro == "debian" %} -RUN sed -i -e "s|\[trusted=yes\] http://{{ nodepool_mirror_host }}|http://deb.debian.org|" \ - -e "s|\[trusted=yes\] http://{{ nodepool_mirror_host }}|http://security.debian.org|" \ - /etc/apt/sources.list +RUN if [ -f /tmp/debian.sources ]; then \ + mv -f /tmp/debian.sources /etc/apt/sources.list.d/debian.sources; \ + fi {% elif base_distro == "ubuntu" %} -RUN sed -i -e "s|\[trusted=yes\] http://{{ nodepool_mirror_host }}/ubuntu/|mirror://mirrors.ubuntu.com/mirrors.txt|" \ - -e "s|\[trusted=yes\] http://{{ nodepool_mirror_host }}/ubuntu-cloud-archive|http://ubuntu-cloud.archive.canonical.com/ubuntu|" \ - -e "s|\[trusted=yes\] http://{{ nodepool_mirror_host }}/ubuntu-ports|http://ports.ubuntu.com|" \ - /etc/apt/sources.list +RUN if [ -f /tmp/ubuntu.sources ]; then \ + mv -f /tmp/ubuntu.sources /etc/apt/sources.list.d/ubuntu.sources; \ + fi {% endif %} {% raw %} {% endblock %} diff --git a/zuul.d/debian.yaml b/zuul.d/debian.yaml index 847a0b4d17..d40f10fc08 100644 --- a/zuul.d/debian.yaml +++ b/zuul.d/debian.yaml @@ -1,23 +1,23 @@ --- - job: - name: kolla-build-debian-bookworm + name: kolla-build-debian-trixie parent: kolla-base - nodeset: kolla-debian-bookworm-8GB + nodeset: kolla-debian-trixie-8GB - job: - name: kolla-build-debian-bookworm-podman + name: kolla-build-debian-trixie-podman parent: kolla-base-podman - nodeset: kolla-debian-bookworm-8GB + nodeset: kolla-debian-trixie-8GB - job: - name: kolla-build-debian-bookworm-arm64 - parent: kolla-build-debian-bookworm - nodeset: kolla-debian-bookworm-arm64-8GB + name: kolla-build-debian-trixie-arm64 + parent: kolla-build-debian-trixie + nodeset: kolla-debian-trixie-arm64-8GB voting: false - job: - name: kolla-publish-debian-bookworm-quay - parent: kolla-build-debian-bookworm + name: kolla-publish-debian-trixie-quay + parent: kolla-build-debian-trixie post-run: tests/playbooks/publish.yml vars: publisher: true @@ -28,8 +28,8 @@ - kolla_quay_io_api_oct_2025 - job: - name: kolla-publish-debian-bookworm-arm64-quay - parent: kolla-build-debian-bookworm-arm64 + name: kolla-publish-debian-trixie-arm64-quay + parent: kolla-build-debian-trixie-arm64 post-run: tests/playbooks/publish.yml vars: publisher: true @@ -40,9 +40,9 @@ - kolla_quay_io_api_oct_2025 - job: - name: kolla-build-debian-bookworm-no-infra-wheels + name: kolla-build-debian-trixie-no-infra-wheels parent: kolla-build-no-infra-wheels-base - nodeset: kolla-debian-bookworm-8GB + nodeset: kolla-debian-trixie-8GB - project-template: name: kolla-build-debian @@ -50,19 +50,19 @@ Runs Kolla Debian build jobs. check: jobs: - - kolla-build-debian-bookworm - - kolla-build-debian-bookworm-podman + - kolla-build-debian-trixie + - kolla-build-debian-trixie-podman check-arm64: jobs: - - kolla-build-debian-bookworm-arm64 + - kolla-build-debian-trixie-arm64 gate: jobs: - - kolla-build-debian-bookworm - - kolla-build-debian-bookworm-podman + - kolla-build-debian-trixie + - kolla-build-debian-trixie-podman experimental: jobs: - - kolla-build-debian-bookworm-no-infra-wheels + - kolla-build-debian-trixie-no-infra-wheels periodic: jobs: - - kolla-publish-debian-bookworm-quay - - kolla-publish-debian-bookworm-arm64-quay + - kolla-publish-debian-trixie-quay + - kolla-publish-debian-trixie-arm64-quay diff --git a/zuul.d/nodesets.yaml b/zuul.d/nodesets.yaml index 5a069beb6e..1c85b45fba 100644 --- a/zuul.d/nodesets.yaml +++ b/zuul.d/nodesets.yaml @@ -16,13 +16,24 @@ nodes: - name: primary label: debian-bookworm-8GB - - nodeset: name: kolla-debian-bookworm-arm64-8GB nodes: - name: primary label: debian-bookworm-arm64-8GB +- nodeset: + name: kolla-debian-trixie-8GB + nodes: + - name: primary + label: debian-trixie-8GB + +- nodeset: + name: kolla-debian-trixie-arm64-8GB + nodes: + - name: primary + label: debian-trixie-arm64-8GB + - nodeset: name: kolla-rocky-10-8GB nodes: diff --git a/zuul.d/scenarios/aio.yaml b/zuul.d/scenarios/aio.yaml index ee58ed05da..392ea7b228 100644 --- a/zuul.d/scenarios/aio.yaml +++ b/zuul.d/scenarios/aio.yaml @@ -5,18 +5,37 @@ Runs Kolla-Ansible AIO jobs on all Kolla changes. check: jobs: - - kolla-ansible-centos-10s - - kolla-ansible-debian-bookworm - - kolla-ansible-debian-bookworm-upgrade - - kolla-ansible-ubuntu-noble - - kolla-ansible-ubuntu-noble-upgrade + - kolla-ansible-centos-10s: + files: ^docker/ + - kolla-ansible-debian-trixie: + files: ^docker/ + - kolla-ansible-debian-bookworm-upgrade: + files: ^docker/ + - kolla-ansible-rocky-10: + files: ^docker/ + - kolla-ansible-rocky-10-upgrade: + files: ^docker/ + - kolla-ansible-ubuntu-noble: + files: ^docker/ + - kolla-ansible-ubuntu-noble-upgrade: + files: ^docker/ check-arm64: jobs: - - kolla-ansible-centos-10s-aarch64 - - kolla-ansible-debian-bookworm-aarch64 + - kolla-ansible-centos-10s-aarch64: + files: ^docker/ + - kolla-ansible-debian-bookworm-aarch64: + files: ^docker/ gate: jobs: - - kolla-ansible-debian-bookworm - - kolla-ansible-debian-bookworm-upgrade - - kolla-ansible-ubuntu-noble - - kolla-ansible-ubuntu-noble-upgrade + - kolla-ansible-debian-trixie: + files: ^docker/ + - kolla-ansible-debian-bookworm-upgrade: + files: ^docker/ + - kolla-ansible-rocky-10: + files: ^docker/ + - kolla-ansible-rocky-10-upgrade: + files: ^docker/ + - kolla-ansible-ubuntu-noble: + files: ^docker/ + - kolla-ansible-ubuntu-noble-upgrade: + files: ^docker/ diff --git a/zuul.d/scenarios/bifrost.yaml b/zuul.d/scenarios/bifrost.yaml index 4c4dd54657..e72f5b4069 100644 --- a/zuul.d/scenarios/bifrost.yaml +++ b/zuul.d/scenarios/bifrost.yaml @@ -7,5 +7,7 @@ jobs: - kolla-ansible-debian-bookworm-bifrost: files: ^docker/bifrost/ + - kolla-ansible-rocky-10-bifrost: + files: ^docker/bifrost/ - kolla-ansible-ubuntu-noble-bifrost: files: ^docker/bifrost/ diff --git a/zuul.d/scenarios/cells.yaml b/zuul.d/scenarios/cells.yaml index 4105c48ed6..474bd3ec64 100644 --- a/zuul.d/scenarios/cells.yaml +++ b/zuul.d/scenarios/cells.yaml @@ -7,5 +7,7 @@ jobs: - kolla-ansible-debian-bookworm-cells: files: ^docker/proxysql/ + - kolla-ansible-rocky-10-cells: + files: ^docker/proxysql/ - kolla-ansible-ubuntu-noble-cells: files: ^docker/proxysql/ diff --git a/zuul.d/scenarios/cephadm.yaml b/zuul.d/scenarios/cephadm.yaml index 93578439ae..c41162ee8d 100644 --- a/zuul.d/scenarios/cephadm.yaml +++ b/zuul.d/scenarios/cephadm.yaml @@ -9,6 +9,10 @@ files: ^docker\/(base|cinder|glance|mariadb-server|openstack-base|rabbitmq)\/.* - kolla-ansible-debian-bookworm-cephadm-upgrade: files: ^docker\/(base|cinder|glance|mariadb-server|openstack-base|rabbitmq)\/.* + - kolla-ansible-rocky-10-cephadm: + files: ^docker\/(base|cinder|glance|mariadb-server|openstack-base|rabbitmq)\/.* + - kolla-ansible-rocky-10-cephadm-upgrade: + files: ^docker\/(base|cinder|glance|mariadb-server|openstack-base|rabbitmq)\/.* - kolla-ansible-ubuntu-noble-cephadm: files: ^docker\/(base|cinder|glance|mariadb-server|openstack-base|rabbitmq)\/.* - kolla-ansible-ubuntu-noble-cephadm-upgrade: diff --git a/zuul.d/scenarios/ironic.yaml b/zuul.d/scenarios/ironic.yaml index 4484ccd7f2..4c501ad324 100644 --- a/zuul.d/scenarios/ironic.yaml +++ b/zuul.d/scenarios/ironic.yaml @@ -7,5 +7,7 @@ jobs: - kolla-ansible-debian-bookworm-ironic: files: ^docker\/(base|dnsmasq|ironic|ironic-inspector|iscsid|openstack-base)\/.* + - kolla-ansible-rocky-10-ironic: + files: ^docker\/(base|dnsmasq|ironic|ironic-inspector|iscsid|openstack-base)\/.* - kolla-ansible-ubuntu-noble-ironic: files: ^docker\/(base|dnsmasq|ironic|ironic-inspector|iscsid|openstack-base)\/.* diff --git a/zuul.d/scenarios/mariadb.yaml b/zuul.d/scenarios/mariadb.yaml index 3627e11a4a..f89e8f087e 100644 --- a/zuul.d/scenarios/mariadb.yaml +++ b/zuul.d/scenarios/mariadb.yaml @@ -7,5 +7,7 @@ jobs: - kolla-ansible-debian-bookworm-mariadb: files: ^docker/(base|mariadb-server)/ + - kolla-ansible-rocky-10-mariadb: + files: ^docker/(base|mariadb-server)/ - kolla-ansible-ubuntu-noble-mariadb: files: ^docker/(base|mariadb-server)/ diff --git a/zuul.d/scenarios/masakari.yaml b/zuul.d/scenarios/masakari.yaml index 81c8e84dd9..0974a2affc 100644 --- a/zuul.d/scenarios/masakari.yaml +++ b/zuul.d/scenarios/masakari.yaml @@ -7,5 +7,7 @@ jobs: - kolla-ansible-debian-bookworm-masakari: files: ^docker/(base|masakari|openstack-base)/ + - kolla-ansible-rocky-10-masakari: + files: ^docker/(base|masakari|openstack-base)/ - kolla-ansible-ubuntu-noble-masakari: files: ^docker/(base|masakari|openstack-base)/ diff --git a/zuul.d/scenarios/ovn.yaml b/zuul.d/scenarios/ovn.yaml index 1ca2a1d226..a531a02b4b 100644 --- a/zuul.d/scenarios/ovn.yaml +++ b/zuul.d/scenarios/ovn.yaml @@ -7,5 +7,7 @@ jobs: - kolla-ansible-debian-bookworm-ovn: files: ^docker/(base|neutron|openstack-base|openvswitch|ovn)/ + - kolla-ansible-rocky-10-ovn: + files: ^docker/(base|neutron|openstack-base|openvswitch|ovn)/ - kolla-ansible-ubuntu-noble-ovn: files: ^docker/(base|neutron|openstack-base|openvswitch|ovn)/