Skip to content

Commit ce5b656

Browse files
mnasiadkadarmach
andcommitted
Add support for Ubuntu 24.04 LTS
Add setuptools because Python3.12 dropped distutils taskflow needs to be bumped to 5.8.0 because that's the first version that supports python3.12 Needed-By: https://review.opendev.org/c/openstack/kolla-ansible/+/932539 Co-Authored-By: Jakub Darmach <[email protected]> Change-Id: Ie12c43dc1de122c203edc28181366457ccd67834 (cherry picked from commit 5f9850c)
1 parent 0d3cec1 commit ce5b656

File tree

18 files changed

+262
-29
lines changed

18 files changed

+262
-29
lines changed

.zuul.d/base.yaml

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,12 @@
8787
- name: primary
8888
label: ubuntu-jammy
8989

90+
- nodeset:
91+
name: kolla-ubuntu-noble
92+
nodes:
93+
- name: primary
94+
label: ubuntu-noble
95+
9096
- nodeset:
9197
name: kolla-debian-bookworm
9298
nodes:
@@ -117,6 +123,12 @@
117123
- name: primary
118124
label: ubuntu-jammy-arm64
119125

126+
- nodeset:
127+
name: kolla-ubuntu-noble-aarch64
128+
nodes:
129+
- name: primary
130+
label: ubuntu-noble-arm64
131+
120132
- job:
121133
name: kolla-base
122134
parent: base

.zuul.d/project.yaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,10 @@
1111
check:
1212
jobs:
1313
- kolla-tox-genconfig
14+
- openstack-tox-py312
15+
check-arm64:
16+
jobs:
17+
- openstack-tox-py312-arm64
1418
gate:
1519
jobs:
1620
- kolla-tox-genconfig

.zuul.d/ubuntu.yaml

Lines changed: 56 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,10 @@
22
- project:
33
check:
44
jobs:
5-
- kolla-build-ubuntu
6-
- kolla-build-ubuntu-podman
5+
- kolla-build-ubuntu-jammy
6+
- kolla-build-ubuntu-noble
7+
- kolla-build-ubuntu-jammy-podman
8+
- kolla-build-ubuntu-noble-podman
79
- kolla-ansible-ubuntu
810
- kolla-ansible-ubuntu-upgrade
911
# Test rabbitmq and mariadb in multinode ceph jobs.
@@ -33,45 +35,72 @@
3335
files: ^docker/bifrost/
3436
gate:
3537
jobs:
36-
- kolla-build-ubuntu
37-
- kolla-build-ubuntu-podman
38+
- kolla-build-ubuntu-jammy
39+
- kolla-build-ubuntu-noble
40+
- kolla-build-ubuntu-jammy-podman
41+
- kolla-build-ubuntu-noble-podman
3842
- kolla-ansible-ubuntu
3943
- kolla-ansible-ubuntu-upgrade
4044
periodic:
4145
jobs:
42-
- kolla-publish-ubuntu-quay
46+
- kolla-publish-ubuntu-jammy-quay
47+
- kolla-publish-ubuntu-noble-quay
4348
periodic-weekly:
4449
jobs:
45-
- kolla-publish-ubuntu-dockerhub
50+
- kolla-publish-ubuntu-jammy-dockerhub
4651
experimental:
4752
jobs:
4853
- kolla-build-no-infra-wheels-ubuntu
4954

5055
- job:
51-
name: kolla-build-ubuntu
56+
name: kolla-build-ubuntu-jammy
5257
parent: kolla-base
5358
nodeset: kolla-ubuntu-jammy
5459
vars:
5560
base_distro: ubuntu
5661
base_distro_version: jammy
5762

5863
- job:
59-
name: kolla-build-ubuntu-podman
64+
name: kolla-build-ubuntu-noble
65+
parent: kolla-base
66+
nodeset: kolla-ubuntu-noble
67+
vars:
68+
base_distro: ubuntu
69+
base_distro_version: noble
70+
base_distro_tag: '24.04'
71+
72+
- job:
73+
name: kolla-build-ubuntu-jammy-podman
6074
parent: kolla-base-podman
6175
nodeset: kolla-ubuntu-jammy
6276
vars:
6377
base_distro: ubuntu
6478
base_distro_version: jammy
6579

6680
- job:
67-
name: kolla-build-ubuntu-aarch64
68-
parent: kolla-build-ubuntu
81+
name: kolla-build-ubuntu-noble-podman
82+
parent: kolla-base-podman
83+
nodeset: kolla-ubuntu-noble
84+
vars:
85+
base_distro: ubuntu
86+
base_distro_version: noble
87+
base_distro_tag: '24.04'
88+
89+
- job:
90+
name: kolla-build-ubuntu-jammy-aarch64
91+
parent: kolla-build-ubuntu-jammy
6992
nodeset: kolla-ubuntu-jammy-aarch64
7093
voting: false
7194

7295
- job:
73-
name: kolla-publish-ubuntu-dockerhub
74-
parent: kolla-build-ubuntu
96+
name: kolla-build-ubuntu-noble-aarch64
97+
parent: kolla-build-ubuntu-noble
98+
nodeset: kolla-ubuntu-noble-aarch64
99+
voting: false
100+
101+
- job:
102+
name: kolla-publish-ubuntu-jammy-dockerhub
103+
parent: kolla-build-ubuntu-jammy
75104
post-run: tests/playbooks/publish.yml
76105
vars:
77106
publisher: true
@@ -81,8 +110,20 @@
81110
- kolla_dockerhub_credentials
82111

83112
- job:
84-
name: kolla-publish-ubuntu-quay
85-
parent: kolla-build-ubuntu
113+
name: kolla-publish-ubuntu-jammy-quay
114+
parent: kolla-build-ubuntu-jammy
115+
post-run: tests/playbooks/publish.yml
116+
vars:
117+
publisher: true
118+
kolla_registry: quay.io
119+
kolla_namespace: openstack.kolla
120+
secrets:
121+
- kolla_quay_io_creds
122+
- kolla_quay_io_api
123+
124+
- job:
125+
name: kolla-publish-ubuntu-noble-quay
126+
parent: kolla-build-ubuntu-noble
86127
post-run: tests/playbooks/publish.yml
87128
vars:
88129
publisher: true
@@ -95,6 +136,6 @@
95136
- job:
96137
name: kolla-build-no-infra-wheels-ubuntu
97138
parent: kolla-build-no-infra-wheels-base
98-
nodeset: kolla-ubuntu-jammy
139+
nodeset: kolla-ubuntu-noble
99140
vars:
100141
base_distro: ubuntu

doc/source/support_matrix.rst

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,14 @@ Distribution Default base Default base tag
2020
Rocky Linux quay.io/rockylinux/rockylinux 9
2121
Debian Bullseye debian bullseye
2222
Ubuntu Jammy ubuntu 22.04
23+
Ubuntu Noble ubuntu 24.04
2324
================== =============================== ================
2425

26+
.. note::
27+
In order to build Ubuntu Noble based images ``base_tag`` needs to be set
28+
to ``24.04`` (if using a local image from your own registry - the tag needs
29+
to at least start with 24.04, e.g. '24.04-my-version')
30+
2531
The remainder of this document outlines which images are supported on which of
2632
these distribution.
2733

docker/base/Dockerfile.j2

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -237,11 +237,21 @@ RUN cat /tmp/kolla_bashrc >> /etc/bash.bashrc \
237237
-e s/#*LAST_SYSTEM_GID=999/LAST_SYSTEM_GID=59999/g /etc/adduser.conf
238238

239239
{% block base_ubuntu_package_sources_list %}
240-
{% if base_distro == 'debian' or ( base_distro == 'ubuntu' and base_arch == 'x86_64' ) %}
240+
{% if base_distro == 'debian' %}
241241
RUN rm -f /etc/apt/sources.list.d/debian.sources
242242
COPY sources.list.{{ base_distro }} /etc/apt/sources.list
243+
{% elif ( base_distro == 'ubuntu' and base_arch == 'x86_64' ) %}
244+
{% if base_distro_tag.startswith('22.04') %}
245+
COPY sources.list.{{ base_distro }}.jammy /etc/apt/sources.list
246+
{% elif base_distro_tag.startswith('24.04') %}
247+
COPY sources.list.{{ base_distro }}.noble /etc/apt/sources.list
248+
{% endif %}
243249
{% else %}
244-
COPY sources.list.{{ base_distro }}.{{ base_arch }} /etc/apt/sources.list
250+
{% if base_distro_tag.startswith('22.04') %}
251+
COPY sources.list.{{ base_distro }}.jammy.{{ base_arch }} /etc/apt/sources.list
252+
{% elif base_distro_tag.startswith('24.04') %}
253+
COPY sources.list.{{ base_distro }}.noble.{{ base_arch }} /etc/apt/sources.list
254+
{% endif %}
245255
{% endif %}
246256
COPY sources.list /etc/apt/sources.list.d/kolla-custom.list
247257
{% endblock %}
File renamed without changes.
File renamed without changes.
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
# For non-x86 architectures we use sources.list.ubuntu.<arch>
2+
3+
# Default repos
4+
deb mirror://mirrors.ubuntu.com/mirrors.txt noble main universe
5+
deb mirror://mirrors.ubuntu.com/mirrors.txt noble-updates main universe
6+
deb mirror://mirrors.ubuntu.com/mirrors.txt noble-security main universe
7+
8+
# Backports have a lower priority and must be explicitly installed to be used
9+
deb http://archive.ubuntu.com/ubuntu/ noble-backports main universe
10+
11+
# NOTE: In Caracal we don't need to add the repo for the updated packages like qemu,
12+
# libvirt, and openvswitch.
13+
14+
# NOTE(hrw): extra repositories are added into image when they are needed as
15+
# separate files in /etc/apt/sources.list.d/ directory. For that purpose they
16+
# are defined in kolla/template/repos.yaml file.
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
# Default repos
2+
deb http://ports.ubuntu.com/ noble main universe
3+
deb http://ports.ubuntu.com/ noble-updates main universe
4+
deb http://ports.ubuntu.com/ noble-security main universe
5+
6+
# Backports have a lower priority and must be explicitly installed to be used
7+
deb http://ports.ubuntu.com/ noble-backports main universe
8+
9+
# We need to add the repo for the updated packages they provide. The main ones
10+
# are qemu, libvirt, and openvswitch.
11+
deb http://ubuntu-cloud.archive.canonical.com/ubuntu noble-updates/dalmatian main
12+
13+
# NOTE(hrw): extra repositories are added into image when they are needed as
14+
# separate files in /etc/apt/sources.list.d/ directory. For that purpose they
15+
# are defined in kolla/template/repos.yaml file.

docker/bifrost/bifrost-base/Dockerfile.j2

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,11 +37,18 @@ ENV ANSIBLE_GATHER_TIMEOUT=30
3737
{% block bifrost_ansible_install %}
3838
{%- if base_package_type == 'deb' %}
3939
RUN apt-get --error-on=any update && \
40+
{%- if base_distro_tag.startswith('24.04') %}
41+
bash -c 'export VENV=/var/lib/kolla/venv && \
42+
{# NOTE(darmach): Bumped to ansible-core 2.16 to match Python 3.12 #}
43+
$VENV/bin/pip install "ansible>=9,<10" && \
44+
{%- else %}
45+
bash -c '$VENV/bin/pip install "ansible>=6,<7" && \
46+
{%- endif %}
4047
{%- else %}
4148
RUN echo " " && \
49+
bash -c 'export VENV=/var/lib/kolla/venv && \
50+
$VENV/bin/pip install "ansible>=6,<7" && \
4251
{%- endif %}
43-
bash -c 'export VENV=/var/lib/kolla/venv && \
44-
$VENV/bin/pip install "ansible>=6,<7" && \
4552
$VENV/bin/ansible-galaxy collection install -r /bifrost/ansible-collections-requirements.yml && \
4653
ansible-playbook -vvvv -i /bifrost/playbooks/inventory/target \
4754
/bifrost/playbooks/install.yaml \

0 commit comments

Comments
 (0)