Skip to content

Commit 9155a4d

Browse files
authored
Merge pull request #101 from stackhpc/upstream/master-2025-12-15
Synchronise master with upstream
2 parents 0c50782 + 6f1fa32 commit 9155a4d

File tree

9 files changed

+110
-112
lines changed

9 files changed

+110
-112
lines changed

bifrost/cli.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -183,7 +183,6 @@ def cmd_install(args):
183183
cleaning_disk_erase=args.cleaning_disk_erase,
184184
testing=args.testenv,
185185
download_custom_deploy_image=args.testenv,
186-
use_tinyipa=args.testenv,
187186
developer_mode=args.develop,
188187
enable_prometheus_exporter=args.enable_prometheus_exporter,
189188
default_boot_mode=args.boot_mode or 'uefi',

doc/source/user/architecture.rst

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,6 @@ journald
137137
$ sudo tar -xzf \
138138
/var/log/ironic/deploy/493aacf2-90ec-5e3d-9ce5-ea496f12e2a5_testvm3_2021-11-08-17-34-18.tar.gz
139139
$ less journal # for ramdisks that use systemd, e.g. DIB-built
140-
$ less var/log/ironic-python-agent.log # for tinyIPA and similar
141140
142141
``/var/log/nginx/``
143142
contains logs for serving files (iPXE scripts, images, virtual media ISOs).

doc/source/user/troubleshooting.rst

Lines changed: 1 addition & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -45,13 +45,10 @@ debugging which must be done in a custom image as there is no mechanism
4545
to enable debugging via the kernel command line at present.
4646

4747
Custom IPA images can be built a number of ways, the most generally useful
48-
mechanism is with diskimage-builder as the distributions typically have
49-
better hardware support than Tiny Core Linux.
48+
mechanism is with diskimage-builder.
5049

5150
DIB images:
5251
https://docs.openstack.org/ironic-python-agent-builder/latest/admin/dib.html
53-
TinyIPA:
54-
https://docs.openstack.org/ironic-python-agent-builder/latest/admin/tinyipa.html
5552

5653
For documentation on diskimage-builder, See::
5754
https://docs.openstack.org/diskimage-builder/latest/.
@@ -138,34 +135,6 @@ Example::
138135
NOTE: The matching private key will need to be utilized to login to the
139136
machine deployed.
140137

141-
******************************************
142-
Changing from TinyIPA to another IPA Image
143-
******************************************
144-
145-
With-in the Newton cycle, the default IPA image for Bifrost was changed
146-
to TinyIPA, which is based on Tiny Core Linux. This has a greatly reduced
147-
boot time for testing, however should be expected to have less hardware
148-
support. In the Yoga cycle, the default image was changed to one based
149-
on CentOS.
150-
151-
If on a fresh install, or a re-install, you wish to change to
152-
DIB-based or any other IPA image, you will need to take the following steps:
153-
154-
#. Remove the existing IPA image ipa.kernel and ipa.initramfs.
155-
#. Edit the ``playbooks/roles/bifrost-ironic-install/defaults/main.yml``
156-
file and update the ``ipa_kernel_upstream_url`` and
157-
``ipa_kernel_upstream_url`` settings to a new URL.
158-
For DIB-based images, these urls would be,
159-
``https://tarballs.opendev.org/openstack/ironic-python-agent/dib/files/ipa-centos9-master.kernel``
160-
and
161-
``https://tarballs.opendev.org/openstack/ironic-python-agent/dib/files/ipa-centos9-master.initramfs``
162-
respectively.
163-
#. Execute the installation playbook, and the set files will be automatically
164-
downloaded again. If the files are not removed prior to (re)installation,
165-
then they will not be replaced. Alternatively, the files can just be
166-
directly replaced on disk. The default where the kernel and ramdisk are
167-
located is in ``/httboot/``.
168-
169138
******************************************************
170139
Verifying Creation of Test Virtual Machines (VMs)
171140
******************************************************

playbooks/roles/bifrost-create-vm-nodes/defaults/main.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ test_vm_logdir: "/var/log/libvirt/baremetal_logs"
3636
test_vm_emulator: "/usr/bin/qemu-system-x86_64"
3737
test_vm_machine: "q35"
3838
# Forces machines to use secure boot. Only compatible with virtual media,
39-
# requires using a real ramdisk (not tinyIPA) matching the host distribution,
39+
# requires using a real ramdisk matching the host distribution,
4040
# as well as a real instance image (not cirros).
4141
test_vm_secure_boot: false
4242
default_boot_mode: "{{ 'uefi' if test_vm_secure_boot | bool else '' }}"

playbooks/roles/bifrost-ironic-install/defaults/main.yml

Lines changed: 2 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,6 @@ firewalld_internal_zone: bifrost
6666
ipa_file_protocol: "http"
6767

6868
ipa_upstream_release: "master"
69-
use_tinyipa: false
7069

7170
ipxe_efi_binary: snponly.efi
7271

@@ -76,21 +75,11 @@ ipa_kernel: "{{ http_boot_folder }}/ipa.kernel"
7675
ipa_ramdisk: "{{ http_boot_folder }}/ipa.initramfs"
7776
ipa_kernel_url: "{{ ipa_file_protocol }}://{{ internal_ip }}:{{ file_url_port }}/ipa.kernel"
7877
ipa_download_distro: centos9
79-
ipa_kernel_upstream_url: >-
80-
{%- if use_tinyipa | bool -%}
81-
{{ tarballs_base_url }}/tinyipa/files/tinyipa-{{ ipa_upstream_release }}.vmlinuz
82-
{%- else -%}
83-
{{ tarballs_base_url }}/dib/files/ipa-{{ ipa_download_distro }}-{{ ipa_upstream_release }}.kernel
84-
{%- endif -%}
78+
ipa_kernel_upstream_url: "{{ tarballs_base_url }}/dib/files/ipa-{{ ipa_download_distro }}-{{ ipa_upstream_release }}.kernel"
8579
ipa_kernel_upstream_checksum_algo: "sha256"
8680
ipa_kernel_upstream_checksum_url: "{{ ipa_kernel_upstream_url }}.{{ ipa_kernel_upstream_checksum_algo }}"
8781
ipa_ramdisk_url: "{{ ipa_file_protocol }}://{{ internal_ip }}:{{ file_url_port }}/ipa.initramfs"
88-
ipa_ramdisk_upstream_url: >-
89-
{%- if use_tinyipa | bool -%}
90-
{{ tarballs_base_url }}/tinyipa/files/tinyipa-{{ ipa_upstream_release }}.gz
91-
{%- else -%}
92-
{{ tarballs_base_url }}/dib/files/ipa-{{ ipa_download_distro }}-{{ ipa_upstream_release }}.initramfs
93-
{%- endif -%}
82+
ipa_ramdisk_upstream_url: "{{ tarballs_base_url }}/dib/files/ipa-{{ ipa_download_distro }}-{{ ipa_upstream_release }}.initramfs"
9483
ipa_ramdisk_upstream_checksum_algo: "sha256"
9584
ipa_ramdisk_upstream_checksum_url: "{{ ipa_ramdisk_upstream_url }}.{{ ipa_ramdisk_upstream_checksum_algo }}"
9685
deploy_image_filename: "deployment_image.qcow2"
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
---
2+
upgrade:
3+
- |
4+
Using tinyipa as ironic-python-agent ramdisk is not supported anymore.
5+
Bifrost has switched to using DIB (diskimage-builder) based IPA ramdisks
6+
for all CI jobs.
7+
All Bifrost CI jobs now use ``dibipa`` (DIB-based IPA) in their names
8+
to clearly indicate they use full-featured IPA ramdisks built with
9+
diskimage-builder.
10+
Test VM memory has been increased from 1024 MB to 4096 MB to accommodate
11+
the larger DIB-based IPA ramdisks (~500 MB vs ~80 MB for tinyipa).
12+
Three legacy job names with ``tinyipa`` in their names are kept for
13+
backward compatibility with other OpenStack projects (Ironic,
14+
openstacksdk, ansible-collections-openstack). These jobs now use
15+
DIB-based IPA despite their names. Projects using these legacy job
16+
names should migrate to the new ``dibipa`` job names when ready.

scripts/test-bifrost.sh

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,6 @@ if [ ${USE_DHCP} = "true" ]; then
106106
elif [ ${BUILD_IMAGE} = "true" ]; then
107107
DOWNLOAD_CUSTOM_DEPLOY_IMAGE=false
108108
TESTING_USER=root
109-
VM_MEMORY_SIZE="4096"
110109
INSPECT_NODES=false
111110
DOWNLOAD_IPA=false
112111
CREATE_IPA_IMAGE=true
@@ -159,7 +158,7 @@ done
159158
# Create the test VMs
160159
../bifrost-cli --debug testenv \
161160
--count ${TEST_VM_NUM_NODES} \
162-
--memory ${VM_MEMORY_SIZE:-1024} \
161+
--memory ${VM_MEMORY_SIZE:-4096} \
163162
--disk ${VM_DISK:-5} \
164163
--inventory "${BAREMETAL_DATA_FILE}" \
165164
--extra-vars git_url_root="${WORKSPACE:-https://opendev.org}" \
@@ -194,7 +193,6 @@ ${ANSIBLE} -vvvv \
194193
-i inventory/target \
195194
${TEST_PLAYBOOK} \
196195
-e download_custom_deploy_image=${DOWNLOAD_CUSTOM_DEPLOY_IMAGE} \
197-
-e use_tinyipa=true \
198196
-e testing_user=${TESTING_USER} \
199197
-e test_vm_num_nodes=${TEST_VM_NUM_NODES} \
200198
-e inventory_dhcp=${INVENTORY_DHCP} \

zuul.d/bifrost-jobs.yaml

Lines changed: 72 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,12 @@
44
- name: primary
55
label: centos-10-stream-8GB
66

7+
- nodeset:
8+
name: bifrost-ubuntu-noble-8GB
9+
nodes:
10+
- name: primary
11+
label: ubuntu-noble-8GB
12+
713
- job:
814
name: bifrost-base
915
parent: base
@@ -53,7 +59,7 @@
5359
nodeset: bifrost-centos-10-stream
5460

5561
- job:
56-
name: bifrost-integration-dibipa-debian
62+
name: bifrost-integration-debian-ipasrc
5763
parent: bifrost-integration
5864
timeout: 7200
5965
vars:
@@ -63,36 +69,64 @@
6369
test_driver: redfish
6470

6571
- job:
66-
name: bifrost-integration-dibipa-debian-ubuntu-jammy
67-
parent: bifrost-integration-dibipa-debian
72+
name: bifrost-integration-debian-ipasrc-on-ubuntu-jammy
73+
parent: bifrost-integration-debian-ipasrc
6874
nodeset: ubuntu-jammy
6975

7076
- job:
71-
name: bifrost-integration-dibipa-debian-centos-10
72-
parent: bifrost-integration-dibipa-debian
77+
name: bifrost-integration-debian-ipasrc-on-centos-10
78+
parent: bifrost-integration-debian-ipasrc
7379
nodeset: bifrost-centos-10-stream
7480

81+
#NOTE(rpittau): Currently used by openstacksdk and ansible-collections-openstack.
82+
#DO NOT REMOVE until these projects are updated to use the new job.
7583
- job:
76-
name: bifrost-integration-tinyipa
77-
parent: bifrost-base
78-
timeout: 3600
79-
vars:
80-
noauth_mode: false
84+
name: bifrost-integration-tinyipa-ubuntu-jammy
85+
parent: bifrost-integration
86+
nodeset: ubuntu-jammy
87+
timeout: 7200
8188

8289
- job:
83-
name: bifrost-integration-tinyipa-ubuntu-jammy
84-
parent: bifrost-integration-tinyipa
90+
name: bifrost-integration-on-ubuntu-jammy
91+
parent: bifrost-integration
8592
nodeset: ubuntu-jammy
93+
timeout: 7200
8694

95+
#NOTE(rpittau): Currently used by Ironic.
96+
#DO NOT REMOVE until Ironic is updated to use the new job.
8797
- job:
8898
name: bifrost-integration-tinyipa-ubuntu-noble
89-
parent: bifrost-integration-tinyipa
90-
nodeset: ubuntu-noble
99+
parent: bifrost-integration
100+
nodeset: bifrost-ubuntu-noble-8GB
101+
timeout: 7200
102+
103+
- job:
104+
name: bifrost-integration-on-ubuntu-noble
105+
parent: bifrost-integration
106+
nodeset: bifrost-ubuntu-noble-8GB
107+
timeout: 7200
91108

109+
#NOTE(rpittau): Currently used by ansible-collections-openstack.
110+
#DO NOT REMOVE until these projects are updated to use the new job.
92111
- job:
93112
name: bifrost-integration-tinyipa-keystone-ubuntu-jammy
94-
parent: bifrost-integration-tinyipa
113+
parent: bifrost-integration
114+
nodeset: ubuntu-jammy
115+
timeout: 7200
116+
required-projects:
117+
- openstack/keystone
118+
- openstack/ironic-prometheus-exporter
119+
vars:
120+
enable_keystone: true
121+
enable_tls: true
122+
test_driver: redfish
123+
enable_prometheus_exporter: true
124+
125+
- job:
126+
name: bifrost-integration-keystone-on-ubuntu-jammy
127+
parent: bifrost-integration
95128
nodeset: ubuntu-jammy
129+
timeout: 7200
96130
required-projects:
97131
- openstack/keystone
98132
- openstack/ironic-prometheus-exporter
@@ -103,62 +137,57 @@
103137
enable_prometheus_exporter: true
104138

105139
- job:
106-
name: bifrost-integration-tinyipa-keystone-ubuntu-noble
107-
parent: bifrost-integration-tinyipa-keystone-ubuntu-jammy
108-
nodeset: ubuntu-noble
140+
name: bifrost-integration-keystone-on-ubuntu-noble
141+
parent: bifrost-integration-keystone-on-ubuntu-jammy
142+
nodeset: bifrost-ubuntu-noble-8GB
143+
timeout: 7200
109144

110145
- job:
111146
name: bifrost-integration-redfish-vmedia-uefi-ubuntu-noble
112-
parent: bifrost-integration-tinyipa-ubuntu-noble
147+
parent: bifrost-integration-on-ubuntu-noble
148+
nodeset: bifrost-ubuntu-noble-8GB
113149
vars:
114150
enable_tls: true
115151
test_driver: redfish
116152
use_vmedia: true
117153

118154
- job:
119155
name: bifrost-integration-redfish-vmedia-uefi-ubuntu-jammy
120-
parent: bifrost-integration-tinyipa-ubuntu-jammy
156+
parent: bifrost-integration-on-ubuntu-jammy
121157
vars:
122158
enable_tls: true
123159
test_driver: redfish
124160
use_vmedia: true
125161

126162
- job:
127163
name: bifrost-cli-ubuntu-jammy
128-
parent: bifrost-integration-tinyipa-ubuntu-jammy
164+
parent: bifrost-integration-on-ubuntu-jammy
129165
vars:
130166
cli_test: true
131167

132168
- job:
133169
name: bifrost-integration-redfish-vmedia-uefi-centos-10
134-
parent: bifrost-integration-tinyipa-centos-10
135-
vars:
136-
test_driver: redfish
137-
use_vmedia: true
138-
139-
# FIXME(dtantsur): remove when this job is no longer used on Ironic
140-
- job:
141-
name: bifrost-integration-redfish-vmedia-uefi-centos-9
142-
parent: bifrost-integration-tinyipa-centos-9
170+
parent: bifrost-integration-on-centos-10
143171
vars:
144172
test_driver: redfish
145173
use_vmedia: true
146174

147175
- job:
148176
name: bifrost-integration-redfish-pxe-uefi-ubuntu-noble
149-
parent: bifrost-integration-tinyipa-ubuntu-noble
177+
parent: bifrost-integration-on-ubuntu-noble
150178
vars:
151179
enable_grub_network_boot: true
152180
test_driver: redfish
153181

154182
- job:
155-
name: bifrost-integration-tinyipa-centos-10
156-
parent: bifrost-integration-tinyipa
183+
name: bifrost-integration-on-centos-10
184+
parent: bifrost-integration
157185
nodeset: bifrost-centos-10-stream
186+
timeout: 7200
158187

159188
- job:
160-
name: bifrost-integration-tinyipa-keystone-centos-10
161-
parent: bifrost-integration-tinyipa-centos-10
189+
name: bifrost-integration-keystone-on-centos-10
190+
parent: bifrost-integration-on-centos-10
162191
required-projects:
163192
- openstack/keystone
164193
- openstack/ironic-prometheus-exporter
@@ -169,22 +198,20 @@
169198
enable_prometheus_exporter: true
170199

171200
- job:
172-
name: bifrost-integration-tinyipa-debian-bullseye
173-
parent: bifrost-integration-tinyipa
174-
nodeset: debian-bullseye
175-
176-
- job:
177-
name: bifrost-integration-tinyipa-debian-bookworm
178-
parent: bifrost-integration-tinyipa
201+
name: bifrost-integration-on-debian-bookworm
202+
parent: bifrost-integration
179203
nodeset: debian-bookworm
204+
timeout: 7200
180205

181206
- job:
182207
name: bifrost-integration-redfish-vmedia-uefi-debian-bookworm
183-
parent: bifrost-integration-tinyipa-debian-bookworm
208+
parent: bifrost-integration-on-debian-bookworm
184209
vars:
185210
enable_tls: true
186211
test_driver: redfish
187212
use_vmedia: true
213+
# Use Debian-based IPA which is smaller and compatible with GRUB 2.06
214+
ipa_download_distro: "debian"
188215

189216
- job:
190217
name: bifrost-tox-linters
@@ -220,7 +247,8 @@
220247
- job:
221248
name: bifrost-upgrade-keystone-ubuntu-noble
222249
parent: bifrost-upgrade
223-
nodeset: ubuntu-noble
250+
nodeset: bifrost-ubuntu-noble-8GB
251+
timeout: 7200
224252
required-projects:
225253
- openstack/keystone
226254
vars:

0 commit comments

Comments
 (0)