Skip to content

Commit 1b0a2cb

Browse files
authored
Merge pull request #1328 from rackerlabs/bump-2025.2
feat: upgrade to OpenStack 2025.2
2 parents 0c78f34 + 16a0435 commit 1b0a2cb

File tree

31 files changed

+309
-1151
lines changed

31 files changed

+309
-1151
lines changed

.github/workflows/containers.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ on:
2323
types: [checks_requested]
2424

2525
env:
26-
OPENSTACK_VERSION: 2025.1
26+
OPENSTACK_VERSION: 2025.2
2727

2828
jobs:
2929
openstack:

apps/openstack/ironic.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
---
22
component: ironic
33
repoURL: https://tarballs.opendev.org/openstack/openstack-helm
4-
chartVersion: 2025.1.3+344314dd3
4+
chartVersion: 2025.2.0+f6be959ce

apps/openstack/octavia.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
---
22
component: octavia
33
repoURL: https://tarballs.opendev.org/openstack/openstack-helm
4-
chartVersion: 2025.1.12+80041dfbb
4+
chartVersion: 2025.2.3+f6be959ce

components/images-openstack.yaml

Lines changed: 66 additions & 67 deletions
Original file line numberDiff line numberDiff line change
@@ -5,67 +5,67 @@ images:
55

66
tags:
77
# these are common across all these OpenStack Helm installations
8-
bootstrap: "quay.io/airshipit/heat:2025.1-ubuntu_jammy"
9-
db_init: "quay.io/airshipit/heat:2025.1-ubuntu_jammy"
10-
db_drop: "quay.io/airshipit/heat:2025.1-ubuntu_jammy"
11-
ks_user: "quay.io/airshipit/heat:2025.1-ubuntu_jammy"
12-
ks_service: "quay.io/airshipit/heat:2025.1-ubuntu_jammy"
13-
ks_endpoints: "quay.io/airshipit/heat:2025.1-ubuntu_jammy"
8+
bootstrap: "quay.io/airshipit/heat:2025.2-ubuntu_jammy"
9+
db_init: "quay.io/airshipit/heat:2025.2-ubuntu_jammy"
10+
db_drop: "quay.io/airshipit/heat:2025.2-ubuntu_jammy"
11+
ks_user: "quay.io/airshipit/heat:2025.2-ubuntu_jammy"
12+
ks_service: "quay.io/airshipit/heat:2025.2-ubuntu_jammy"
13+
ks_endpoints: "quay.io/airshipit/heat:2025.2-ubuntu_jammy"
1414

1515
# keystone
16-
keystone_api: "ghcr.io/rackerlabs/understack/keystone:2025.1-ubuntu_jammy"
17-
keystone_credential_rotate: "ghcr.io/rackerlabs/understack/keystone:2025.1-ubuntu_jammy"
18-
keystone_credential_setup: "ghcr.io/rackerlabs/understack/keystone:2025.1-ubuntu_jammy"
19-
keystone_db_sync: "ghcr.io/rackerlabs/understack/keystone:2025.1-ubuntu_jammy"
20-
keystone_domain_manage: "ghcr.io/rackerlabs/understack/keystone:2025.1-ubuntu_jammy"
21-
keystone_fernet_rotate: "ghcr.io/rackerlabs/understack/keystone:2025.1-ubuntu_jammy"
22-
keystone_fernet_setup: "ghcr.io/rackerlabs/understack/keystone:2025.1-ubuntu_jammy"
16+
keystone_api: "ghcr.io/rackerlabs/understack/keystone:2025.2-ubuntu_jammy"
17+
keystone_credential_rotate: "ghcr.io/rackerlabs/understack/keystone:2025.2-ubuntu_jammy"
18+
keystone_credential_setup: "ghcr.io/rackerlabs/understack/keystone:2025.2-ubuntu_jammy"
19+
keystone_db_sync: "ghcr.io/rackerlabs/understack/keystone:2025.2-ubuntu_jammy"
20+
keystone_domain_manage: "ghcr.io/rackerlabs/understack/keystone:2025.2-ubuntu_jammy"
21+
keystone_fernet_rotate: "ghcr.io/rackerlabs/understack/keystone:2025.2-ubuntu_jammy"
22+
keystone_fernet_setup: "ghcr.io/rackerlabs/understack/keystone:2025.2-ubuntu_jammy"
2323

2424
# ironic
25-
ironic_api: "ghcr.io/rackerlabs/understack/ironic:2025.1-ubuntu_jammy"
26-
ironic_conductor: "ghcr.io/rackerlabs/understack/ironic:2025.1-ubuntu_jammy"
27-
ironic_pxe: "ghcr.io/rackerlabs/understack/ironic:2025.1-ubuntu_jammy"
28-
ironic_pxe_init: "ghcr.io/rackerlabs/understack/ironic:2025.1-ubuntu_jammy"
25+
ironic_api: "ghcr.io/rackerlabs/understack/ironic:2025.2-ubuntu_jammy"
26+
ironic_conductor: "ghcr.io/rackerlabs/understack/ironic:2025.2-ubuntu_jammy"
27+
ironic_pxe: "ghcr.io/rackerlabs/understack/ironic:2025.2-ubuntu_jammy"
28+
ironic_pxe_init: "ghcr.io/rackerlabs/understack/ironic:2025.2-ubuntu_jammy"
2929
ironic_pxe_http: "docker.io/nginx:1.13.3"
30-
ironic_db_sync: "ghcr.io/rackerlabs/understack/ironic:2025.1-ubuntu_jammy"
30+
ironic_db_sync: "ghcr.io/rackerlabs/understack/ironic:2025.2-ubuntu_jammy"
3131
# these want curl which apparently is in the heat image
32-
ironic_manage_cleaning_network: "quay.io/airshipit/heat:2025.1-ubuntu_jammy"
33-
ironic_retrive_cleaning_network: "quay.io/airshipit/heat:2025.1-ubuntu_jammy"
34-
ironic_retrive_swift_config: "quay.io/airshipit/heat:2025.1-ubuntu_jammy"
32+
ironic_manage_cleaning_network: "quay.io/airshipit/heat:2025.2-ubuntu_jammy"
33+
ironic_retrive_cleaning_network: "quay.io/airshipit/heat:2025.2-ubuntu_jammy"
34+
ironic_retrive_swift_config: "quay.io/airshipit/heat:2025.2-ubuntu_jammy"
3535

3636
# neutron
37-
neutron_db_sync: "ghcr.io/rackerlabs/understack/neutron:2025.1-ubuntu_jammy"
38-
neutron_dhcp: "ghcr.io/rackerlabs/understack/neutron:2025.1-ubuntu_jammy"
39-
neutron_l3: "ghcr.io/rackerlabs/understack/neutron:2025.1-ubuntu_jammy"
40-
neutron_l2gw: "ghcr.io/rackerlabs/understack/neutron:2025.1-ubuntu_jammy"
41-
neutron_linuxbridge_agent: "ghcr.io/rackerlabs/understack/neutron:2025.1-ubuntu_jammy"
42-
neutron_metadata: "ghcr.io/rackerlabs/understack/neutron:2025.1-ubuntu_jammy"
43-
neutron_ovn_metadata: "ghcr.io/rackerlabs/understack/neutron:2025.1-ubuntu_jammy"
44-
neutron_openvswitch_agent: "ghcr.io/rackerlabs/understack/neutron:2025.1-ubuntu_jammy"
45-
neutron_server: "ghcr.io/rackerlabs/understack/neutron:2025.1-ubuntu_jammy"
46-
neutron_rpc_server: "ghcr.io/rackerlabs/understack/neutron:2025.1-ubuntu_jammy"
47-
neutron_bagpipe_bgp: "ghcr.io/rackerlabs/understack/neutron:2025.1-ubuntu_jammy"
48-
neutron_netns_cleanup_cron: "ghcr.io/rackerlabs/understack/neutron:2025.1-ubuntu_jammy"
37+
neutron_db_sync: "ghcr.io/rackerlabs/understack/neutron:2025.2-ubuntu_jammy"
38+
neutron_dhcp: "ghcr.io/rackerlabs/understack/neutron:2025.2-ubuntu_jammy"
39+
neutron_l3: "ghcr.io/rackerlabs/understack/neutron:2025.2-ubuntu_jammy"
40+
neutron_l2gw: "ghcr.io/rackerlabs/understack/neutron:2025.2-ubuntu_jammy"
41+
neutron_linuxbridge_agent: "ghcr.io/rackerlabs/understack/neutron:2025.2-ubuntu_jammy"
42+
neutron_metadata: "ghcr.io/rackerlabs/understack/neutron:2025.2-ubuntu_jammy"
43+
neutron_ovn_metadata: "ghcr.io/rackerlabs/understack/neutron:2025.2-ubuntu_jammy"
44+
neutron_openvswitch_agent: "ghcr.io/rackerlabs/understack/neutron:2025.2-ubuntu_jammy"
45+
neutron_server: "ghcr.io/rackerlabs/understack/neutron:2025.2-ubuntu_jammy"
46+
neutron_rpc_server: "ghcr.io/rackerlabs/understack/neutron:2025.2-ubuntu_jammy"
47+
neutron_bagpipe_bgp: "ghcr.io/rackerlabs/understack/neutron:2025.2-ubuntu_jammy"
48+
neutron_netns_cleanup_cron: "ghcr.io/rackerlabs/understack/neutron:2025.2-ubuntu_jammy"
4949

5050
# nova
51-
nova_api: "ghcr.io/rackerlabs/understack/nova:2025.1-ubuntu_jammy"
52-
nova_cell_setup: "ghcr.io/rackerlabs/understack/nova:2025.1-ubuntu_jammy"
53-
nova_cell_setup_init: "quay.io/airshipit/heat:2025.1-ubuntu_jammy"
54-
nova_compute: "ghcr.io/rackerlabs/understack/nova:2025.1-ubuntu_jammy"
55-
nova_compute_ironic: "ghcr.io/rackerlabs/understack/nova:2025.1-ubuntu_jammy"
56-
nova_compute_ssh: "ghcr.io/rackerlabs/understack/nova:2025.1-ubuntu_jammy"
57-
nova_conductor: "ghcr.io/rackerlabs/understack/nova:2025.1-ubuntu_jammy"
58-
nova_db_sync: "ghcr.io/rackerlabs/understack/nova:2025.1-ubuntu_jammy"
59-
nova_novncproxy: "ghcr.io/rackerlabs/understack/nova:2025.1-ubuntu_jammy"
60-
nova_novncproxy_assets: "ghcr.io/rackerlabs/understack/nova:2025.1-ubuntu_jammy"
61-
nova_scheduler: "ghcr.io/rackerlabs/understack/nova:2025.1-ubuntu_jammy"
62-
nova_spiceproxy: "ghcr.io/rackerlabs/understack/nova:2025.1-ubuntu_jammy"
63-
nova_spiceproxy_assets: "ghcr.io/rackerlabs/understack/nova:2025.1-ubuntu_jammy"
51+
nova_api: "ghcr.io/rackerlabs/understack/nova:2025.2-ubuntu_jammy"
52+
nova_cell_setup: "ghcr.io/rackerlabs/understack/nova:2025.2-ubuntu_jammy"
53+
nova_cell_setup_init: "quay.io/airshipit/heat:2025.2-ubuntu_jammy"
54+
nova_compute: "ghcr.io/rackerlabs/understack/nova:2025.2-ubuntu_jammy"
55+
nova_compute_ironic: "ghcr.io/rackerlabs/understack/nova:2025.2-ubuntu_jammy"
56+
nova_compute_ssh: "ghcr.io/rackerlabs/understack/nova:2025.2-ubuntu_jammy"
57+
nova_conductor: "ghcr.io/rackerlabs/understack/nova:2025.2-ubuntu_jammy"
58+
nova_db_sync: "ghcr.io/rackerlabs/understack/nova:2025.2-ubuntu_jammy"
59+
nova_novncproxy: "ghcr.io/rackerlabs/understack/nova:2025.2-ubuntu_jammy"
60+
nova_novncproxy_assets: "ghcr.io/rackerlabs/understack/nova:2025.2-ubuntu_jammy"
61+
nova_scheduler: "ghcr.io/rackerlabs/understack/nova:2025.2-ubuntu_jammy"
62+
nova_spiceproxy: "ghcr.io/rackerlabs/understack/nova:2025.2-ubuntu_jammy"
63+
nova_spiceproxy_assets: "ghcr.io/rackerlabs/understack/nova:2025.2-ubuntu_jammy"
6464
nova_service_cleaner: "docker.io/openstackhelm/ceph-config-helper:latest-ubuntu_jammy"
6565

6666
# placement
67-
placement: "quay.io/airshipit/placement:2025.1-ubuntu_jammy"
68-
placement_db_sync: "quay.io/airshipit/placement:2025.1-ubuntu_jammy"
67+
placement: "quay.io/airshipit/placement:2025.2-ubuntu_jammy"
68+
placement_db_sync: "quay.io/airshipit/placement:2025.2-ubuntu_jammy"
6969

7070
# openvswitch
7171
openvswitch_db_server: "docker.io/openstackhelm/openvswitch:ubuntu_jammy-dpdk-20250127"
@@ -78,36 +78,35 @@ images:
7878
ovn_controller: "docker.io/openstackhelm/ovn:ubuntu_jammy-20250111"
7979

8080
# horizon
81-
horizon: "quay.io/airshipit/horizon:2025.1-ubuntu_jammy"
82-
horizon_db_sync: "quay.io/airshipit/horizon:2025.1-ubuntu_jammy"
81+
horizon: "quay.io/airshipit/horizon:2025.2-ubuntu_jammy"
82+
horizon_db_sync: "quay.io/airshipit/horizon:2025.2-ubuntu_jammy"
8383

8484
# glance
85-
glance_api: "quay.io/airshipit/glance:2025.1-ubuntu_jammy"
86-
glance_db_sync: "quay.io/airshipit/glance:2025.1-ubuntu_jammy"
87-
glance_metadefs_load: "quay.io/airshipit/glance:2025.1-ubuntu_jammy"
85+
glance_api: "quay.io/airshipit/glance:2025.2-ubuntu_jammy"
86+
glance_db_sync: "quay.io/airshipit/glance:2025.2-ubuntu_jammy"
87+
glance_metadefs_load: "quay.io/airshipit/glance:2025.2-ubuntu_jammy"
8888
glance_storage_init: "docker.io/openstackhelm/ceph-config-helper:latest-ubuntu_jammy"
8989

9090
# skyline
9191
skyline: "quay.io/airshipit/skyline:latest"
9292
skyline_db_sync: "quay.io/airshipit/skyline:latest"
9393

9494
# cinder
95-
cinder_api: "ghcr.io/rackerlabs/understack/cinder:2025.1-ubuntu_jammy"
96-
cinder_db_sync: "ghcr.io/rackerlabs/understack/cinder:2025.1-ubuntu_jammy"
97-
cinder_scheduler: "ghcr.io/rackerlabs/understack/cinder:2025.1-ubuntu_jammy"
98-
cinder_volume: "ghcr.io/rackerlabs/understack/cinder:2025.1-ubuntu_jammy"
99-
cinder_volume_usage_audit: "ghcr.io/rackerlabs/understack/cinder:2025.1-ubuntu_jammy"
100-
cinder_db_purge: "ghcr.io/rackerlabs/understack/cinder:2025.1-ubuntu_jammy"
101-
cinder_backup: "ghcr.io/rackerlabs/understack/cinder:2025.1-ubuntu_jammy"
95+
cinder_api: "ghcr.io/rackerlabs/understack/cinder:2025.2-ubuntu_jammy"
96+
cinder_db_sync: "ghcr.io/rackerlabs/understack/cinder:2025.2-ubuntu_jammy"
97+
cinder_scheduler: "ghcr.io/rackerlabs/understack/cinder:2025.2-ubuntu_jammy"
98+
cinder_volume: "ghcr.io/rackerlabs/understack/cinder:2025.2-ubuntu_jammy"
99+
cinder_volume_usage_audit: "ghcr.io/rackerlabs/understack/cinder:2025.2-ubuntu_jammy"
100+
cinder_db_purge: "ghcr.io/rackerlabs/understack/cinder:2025.2-ubuntu_jammy"
101+
cinder_backup: "ghcr.io/rackerlabs/understack/cinder:2025.2-ubuntu_jammy"
102102
cinder_storage_init: "docker.io/openstackhelm/ceph-config-helper:latest-ubuntu_jammy"
103103
cinder_backup_storage_init: "docker.io/openstackhelm/ceph-config-helper:latest-ubuntu_jammy"
104104

105105
# octavia
106-
octavia_api: "ghcr.io/rackerlabs/understack/octavia:2025.1-ubuntu_jammy"
107-
octavia_db_sync: "ghcr.io/rackerlabs/understack/octavia:2025.1-ubuntu_jammy"
108-
octavia_driver_agent: "ghcr.io/rackerlabs/understack/octavia:2025.1-ubuntu_jammy"
109-
octavia_worker: "ghcr.io/rackerlabs/understack/octavia:2025.1-ubuntu_jammy"
110-
octavia_housekeeping: "ghcr.io/rackerlabs/understack/octavia:2025.1-ubuntu_jammy"
111-
octavia_health_manager: "ghcr.io/rackerlabs/understack/octavia:2025.1-ubuntu_jammy"
112-
octavia_health_manager_init: "quay.io/airshipit/heat:2025.1-ubuntu_jammy"
106+
octavia_api: "ghcr.io/rackerlabs/understack/octavia:2025.2-ubuntu_jammy"
107+
octavia_db_sync: "ghcr.io/rackerlabs/understack/octavia:2025.2-ubuntu_jammy"
108+
octavia_worker: "ghcr.io/rackerlabs/understack/octavia:2025.2-ubuntu_jammy"
109+
octavia_housekeeping: "ghcr.io/rackerlabs/understack/octavia:2025.2-ubuntu_jammy"
110+
octavia_health_manager: "ghcr.io/rackerlabs/understack/octavia:2025.2-ubuntu_jammy"
111+
octavia_health_manager_init: "quay.io/airshipit/heat:2025.2-ubuntu_jammy"
113112
...

components/ironic/configmap-ironic-bin.yaml

Lines changed: 21 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -302,11 +302,28 @@ data:
302302
set -ex
303303
COMMAND="${@:-start}"
304304
305+
cat <<'EOF' > /etc/ironic/ironic-api-uwsgi.ini
306+
[uwsgi]
307+
add-header = Connection: close
308+
buffer-size = 65535
309+
die-on-term = true
310+
enable-threads = true
311+
exit-on-reload = false
312+
hook-master-start = unix_signal:15 gracefully_kill_them_all
313+
http-socket = 0.0.0.0:6385
314+
lazy-apps = true
315+
log-x-forwarded-for = true
316+
master = true
317+
processes = 4
318+
procname-prefix-spaced = ironic-api:
319+
route-user-agent = ^kube-probe.* donotlog:
320+
thunder-lock = true
321+
worker-reload-mercy = 80
322+
module = ironic.wsgi:application
323+
EOF
324+
305325
function start () {
306-
exec ironic-api \
307-
--config-file /etc/ironic/ironic.conf \
308-
--config-dir /etc/ironic/ironic.conf.d \
309-
${OPTIONS}
326+
exec uwsgi --ini /etc/ironic/ironic-api-uwsgi.ini
310327
}
311328
312329
function stop () {

components/ironic/ironic-ks-user-baremetal.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ spec:
3838
restartPolicy: OnFailure
3939
containers:
4040
- name: ks-user-baremetal
41-
image: ghcr.io/rackerlabs/understack/openstack-client:2025.1-ubuntu_jammy
41+
image: ghcr.io/rackerlabs/understack/openstack-client:2025.2-ubuntu_jammy
4242
imagePullPolicy: Always
4343
command:
4444
- /bin/bash

components/ironic/values.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ conductor:
2222
# it is only necessary because the above pxe is disabled, its init
2323
# creates this path
2424
- name: create-tftpboot
25-
image: quay.io/airshipit/heat:2025.1-ubuntu_jammy
25+
image: quay.io/airshipit/heat:2025.2-ubuntu_jammy
2626
imagePullPolicy: IfNotPresent
2727
command: [bash]
2828
args:

components/keystone/values.yaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -143,6 +143,10 @@ pod:
143143
- name: oidc-secret
144144
mountPath: /etc/oidc-secret
145145
readOnly: true
146+
- name: keystone-bin
147+
mountPath: /var/www/cgi-bin/keystone/keystone-wsgi-public
148+
readOnly: true
149+
subPath: wsgi.py
146150
volumes:
147151
- name: keystone-sso
148152
secret:

components/neutron/configmap-neutron-bin.yaml

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1655,18 +1655,12 @@ data:
16551655
COMMAND="${@:-start}"
16561656
16571657
function start () {
1658-
# (ricolin): Currently ovn have issue with uWSGI,
1659-
# let's keep using non-uWSGI way until this bug fixed:
1660-
# https://bugs.launchpad.net/neutron/+bug/1912359
1661-
start_ovn
1662-
}
1658+
confs="--config-file /etc/neutron/neutron.conf"
1659+
confs+=" --config-file /tmp/pod-shared/ovn.ini"
1660+
confs+=" --config-file /etc/neutron/plugins/ml2/ml2_conf.ini"
1661+
confs+=" --config-dir /etc/neutron/neutron.conf.d"
16631662
1664-
function start_ovn () {
1665-
exec neutron-server \
1666-
--config-file /etc/neutron/neutron.conf \
1667-
--config-file /tmp/pod-shared/ovn.ini \
1668-
--config-file /etc/neutron/plugins/ml2/ml2_conf.ini \
1669-
--config-dir /etc/neutron/neutron.conf.d
1663+
exec uwsgi --ini /etc/neutron/neutron-api-uwsgi.ini --pyargv " $confs "
16701664
}
16711665
16721666
function stop () {

components/neutron/values.yaml

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,10 @@ conf:
6060
vni_ranges: ""
6161
neutron:
6262
DEFAULT:
63+
# https://docs.openstack.org/neutron/latest/admin/config-wsgi.html
64+
# the api_workers set the number of uWSGI processes as well
65+
api_workers: 4
66+
rpc_workers: 2
6367
# We enable the following plugins:
6468
# - 'ovn-router' enables OVN to be our L3 router.
6569
# - 'trunk' allows for us to create and configure trunk ports to allow
@@ -96,6 +100,9 @@ conf:
96100
quotas:
97101
# https://github.com/openstack/neutron/blob/master/neutron/conf/quota.py#L101-L105
98102
quota_rbac_policy: 100
103+
neutron_api_uwsgi:
104+
uwsgi:
105+
start-time: "%t"
99106

100107
# disable the neutron-ironic-agent from loading a non-existent config
101108
pod:
@@ -164,6 +171,13 @@ pod:
164171
cpu: "200m"
165172
limits:
166173
memory: "4096Mi"
174+
probes:
175+
server:
176+
server:
177+
readiness:
178+
initialDelaySeconds: 30
179+
timeoutSeconds: 20
180+
167181

168182
# (nicholas.kuechler) updating the jobs list to remove the 'neutron-rabbit-init' job.
169183
dependencies:

0 commit comments

Comments
 (0)