Remove tinyipa support and switch to DIB-based IPA
We stop supporting tinyipa entirely and switch all jobs to use DIB-based (diskimage-builder) IPA images. Renamed all CI jobs as we use DIB-based IPA ramdisks only now. Increased test VM memory from 1024 MB to 4096 MB to accommodate larger DIB-based IPA ramdisks (~500 MB vs ~80 MB for tinyipa). Kept 3 jobs with their legacy name despite they use DIB-based IPA ramdisks now as other projects still use them. Change-Id: I569a766826405513f7beab5d45a52a8bbf42ddfd Signed-off-by: Riccardo Pittau <elfosardo@gmail.com>
This commit is contained in:
@@ -183,7 +183,6 @@ def cmd_install(args):
|
||||
cleaning_disk_erase=args.cleaning_disk_erase,
|
||||
testing=args.testenv,
|
||||
download_custom_deploy_image=args.testenv,
|
||||
use_tinyipa=args.testenv,
|
||||
developer_mode=args.develop,
|
||||
enable_prometheus_exporter=args.enable_prometheus_exporter,
|
||||
default_boot_mode=args.boot_mode or 'uefi',
|
||||
|
||||
@@ -137,7 +137,6 @@ journald
|
||||
$ sudo tar -xzf \
|
||||
/var/log/ironic/deploy/493aacf2-90ec-5e3d-9ce5-ea496f12e2a5_testvm3_2021-11-08-17-34-18.tar.gz
|
||||
$ less journal # for ramdisks that use systemd, e.g. DIB-built
|
||||
$ less var/log/ironic-python-agent.log # for tinyIPA and similar
|
||||
|
||||
``/var/log/nginx/``
|
||||
contains logs for serving files (iPXE scripts, images, virtual media ISOs).
|
||||
|
||||
@@ -45,13 +45,10 @@ debugging which must be done in a custom image as there is no mechanism
|
||||
to enable debugging via the kernel command line at present.
|
||||
|
||||
Custom IPA images can be built a number of ways, the most generally useful
|
||||
mechanism is with diskimage-builder as the distributions typically have
|
||||
better hardware support than Tiny Core Linux.
|
||||
mechanism is with diskimage-builder.
|
||||
|
||||
DIB images:
|
||||
https://docs.openstack.org/ironic-python-agent-builder/latest/admin/dib.html
|
||||
TinyIPA:
|
||||
https://docs.openstack.org/ironic-python-agent-builder/latest/admin/tinyipa.html
|
||||
|
||||
For documentation on diskimage-builder, See::
|
||||
https://docs.openstack.org/diskimage-builder/latest/.
|
||||
@@ -138,34 +135,6 @@ Example::
|
||||
NOTE: The matching private key will need to be utilized to login to the
|
||||
machine deployed.
|
||||
|
||||
******************************************
|
||||
Changing from TinyIPA to another IPA Image
|
||||
******************************************
|
||||
|
||||
With-in the Newton cycle, the default IPA image for Bifrost was changed
|
||||
to TinyIPA, which is based on Tiny Core Linux. This has a greatly reduced
|
||||
boot time for testing, however should be expected to have less hardware
|
||||
support. In the Yoga cycle, the default image was changed to one based
|
||||
on CentOS.
|
||||
|
||||
If on a fresh install, or a re-install, you wish to change to
|
||||
DIB-based or any other IPA image, you will need to take the following steps:
|
||||
|
||||
#. Remove the existing IPA image ipa.kernel and ipa.initramfs.
|
||||
#. Edit the ``playbooks/roles/bifrost-ironic-install/defaults/main.yml``
|
||||
file and update the ``ipa_kernel_upstream_url`` and
|
||||
``ipa_kernel_upstream_url`` settings to a new URL.
|
||||
For DIB-based images, these urls would be,
|
||||
``https://tarballs.opendev.org/openstack/ironic-python-agent/dib/files/ipa-centos9-master.kernel``
|
||||
and
|
||||
``https://tarballs.opendev.org/openstack/ironic-python-agent/dib/files/ipa-centos9-master.initramfs``
|
||||
respectively.
|
||||
#. Execute the installation playbook, and the set files will be automatically
|
||||
downloaded again. If the files are not removed prior to (re)installation,
|
||||
then they will not be replaced. Alternatively, the files can just be
|
||||
directly replaced on disk. The default where the kernel and ramdisk are
|
||||
located is in ``/httboot/``.
|
||||
|
||||
******************************************************
|
||||
Verifying Creation of Test Virtual Machines (VMs)
|
||||
******************************************************
|
||||
|
||||
@@ -36,7 +36,7 @@ test_vm_logdir: "/var/log/libvirt/baremetal_logs"
|
||||
test_vm_emulator: "/usr/bin/qemu-system-x86_64"
|
||||
test_vm_machine: "q35"
|
||||
# Forces machines to use secure boot. Only compatible with virtual media,
|
||||
# requires using a real ramdisk (not tinyIPA) matching the host distribution,
|
||||
# requires using a real ramdisk matching the host distribution,
|
||||
# as well as a real instance image (not cirros).
|
||||
test_vm_secure_boot: false
|
||||
default_boot_mode: "{{ 'uefi' if test_vm_secure_boot | bool else '' }}"
|
||||
|
||||
@@ -66,7 +66,6 @@ firewalld_internal_zone: bifrost
|
||||
ipa_file_protocol: "http"
|
||||
|
||||
ipa_upstream_release: "master"
|
||||
use_tinyipa: false
|
||||
|
||||
ipxe_efi_binary: snponly.efi
|
||||
|
||||
@@ -76,21 +75,11 @@ ipa_kernel: "{{ http_boot_folder }}/ipa.kernel"
|
||||
ipa_ramdisk: "{{ http_boot_folder }}/ipa.initramfs"
|
||||
ipa_kernel_url: "{{ ipa_file_protocol }}://{{ internal_ip }}:{{ file_url_port }}/ipa.kernel"
|
||||
ipa_download_distro: centos9
|
||||
ipa_kernel_upstream_url: >-
|
||||
{%- if use_tinyipa | bool -%}
|
||||
{{ tarballs_base_url }}/tinyipa/files/tinyipa-{{ ipa_upstream_release }}.vmlinuz
|
||||
{%- else -%}
|
||||
{{ tarballs_base_url }}/dib/files/ipa-{{ ipa_download_distro }}-{{ ipa_upstream_release }}.kernel
|
||||
{%- endif -%}
|
||||
ipa_kernel_upstream_url: "{{ tarballs_base_url }}/dib/files/ipa-{{ ipa_download_distro }}-{{ ipa_upstream_release }}.kernel"
|
||||
ipa_kernel_upstream_checksum_algo: "sha256"
|
||||
ipa_kernel_upstream_checksum_url: "{{ ipa_kernel_upstream_url }}.{{ ipa_kernel_upstream_checksum_algo }}"
|
||||
ipa_ramdisk_url: "{{ ipa_file_protocol }}://{{ internal_ip }}:{{ file_url_port }}/ipa.initramfs"
|
||||
ipa_ramdisk_upstream_url: >-
|
||||
{%- if use_tinyipa | bool -%}
|
||||
{{ tarballs_base_url }}/tinyipa/files/tinyipa-{{ ipa_upstream_release }}.gz
|
||||
{%- else -%}
|
||||
{{ tarballs_base_url }}/dib/files/ipa-{{ ipa_download_distro }}-{{ ipa_upstream_release }}.initramfs
|
||||
{%- endif -%}
|
||||
ipa_ramdisk_upstream_url: "{{ tarballs_base_url }}/dib/files/ipa-{{ ipa_download_distro }}-{{ ipa_upstream_release }}.initramfs"
|
||||
ipa_ramdisk_upstream_checksum_algo: "sha256"
|
||||
ipa_ramdisk_upstream_checksum_url: "{{ ipa_ramdisk_upstream_url }}.{{ ipa_ramdisk_upstream_checksum_algo }}"
|
||||
deploy_image_filename: "deployment_image.qcow2"
|
||||
|
||||
16
releasenotes/notes/goodbye-tinyipa-a5efe0e972647616.yaml
Normal file
16
releasenotes/notes/goodbye-tinyipa-a5efe0e972647616.yaml
Normal file
@@ -0,0 +1,16 @@
|
||||
---
|
||||
upgrade:
|
||||
- |
|
||||
Using tinyipa as ironic-python-agent ramdisk is not supported anymore.
|
||||
Bifrost has switched to using DIB (diskimage-builder) based IPA ramdisks
|
||||
for all CI jobs.
|
||||
All Bifrost CI jobs now use ``dibipa`` (DIB-based IPA) in their names
|
||||
to clearly indicate they use full-featured IPA ramdisks built with
|
||||
diskimage-builder.
|
||||
Test VM memory has been increased from 1024 MB to 4096 MB to accommodate
|
||||
the larger DIB-based IPA ramdisks (~500 MB vs ~80 MB for tinyipa).
|
||||
Three legacy job names with ``tinyipa`` in their names are kept for
|
||||
backward compatibility with other OpenStack projects (Ironic,
|
||||
openstacksdk, ansible-collections-openstack). These jobs now use
|
||||
DIB-based IPA despite their names. Projects using these legacy job
|
||||
names should migrate to the new ``dibipa`` job names when ready.
|
||||
@@ -106,7 +106,6 @@ if [ ${USE_DHCP} = "true" ]; then
|
||||
elif [ ${BUILD_IMAGE} = "true" ]; then
|
||||
DOWNLOAD_CUSTOM_DEPLOY_IMAGE=false
|
||||
TESTING_USER=root
|
||||
VM_MEMORY_SIZE="4096"
|
||||
INSPECT_NODES=false
|
||||
DOWNLOAD_IPA=false
|
||||
CREATE_IPA_IMAGE=true
|
||||
@@ -159,7 +158,7 @@ done
|
||||
# Create the test VMs
|
||||
../bifrost-cli --debug testenv \
|
||||
--count ${TEST_VM_NUM_NODES} \
|
||||
--memory ${VM_MEMORY_SIZE:-1024} \
|
||||
--memory ${VM_MEMORY_SIZE:-4096} \
|
||||
--disk ${VM_DISK:-5} \
|
||||
--inventory "${BAREMETAL_DATA_FILE}" \
|
||||
--extra-vars git_url_root="${WORKSPACE:-https://opendev.org}" \
|
||||
@@ -194,7 +193,6 @@ ${ANSIBLE} -vvvv \
|
||||
-i inventory/target \
|
||||
${TEST_PLAYBOOK} \
|
||||
-e download_custom_deploy_image=${DOWNLOAD_CUSTOM_DEPLOY_IMAGE} \
|
||||
-e use_tinyipa=true \
|
||||
-e testing_user=${TESTING_USER} \
|
||||
-e test_vm_num_nodes=${TEST_VM_NUM_NODES} \
|
||||
-e inventory_dhcp=${INVENTORY_DHCP} \
|
||||
|
||||
@@ -4,6 +4,12 @@
|
||||
- name: primary
|
||||
label: centos-10-stream-8GB
|
||||
|
||||
- nodeset:
|
||||
name: bifrost-ubuntu-noble-8GB
|
||||
nodes:
|
||||
- name: primary
|
||||
label: ubuntu-noble-8GB
|
||||
|
||||
- job:
|
||||
name: bifrost-base
|
||||
parent: base
|
||||
@@ -53,7 +59,7 @@
|
||||
nodeset: bifrost-centos-10-stream
|
||||
|
||||
- job:
|
||||
name: bifrost-integration-dibipa-debian
|
||||
name: bifrost-integration-debian-ipasrc
|
||||
parent: bifrost-integration
|
||||
timeout: 7200
|
||||
vars:
|
||||
@@ -63,36 +69,50 @@
|
||||
test_driver: redfish
|
||||
|
||||
- job:
|
||||
name: bifrost-integration-dibipa-debian-ubuntu-jammy
|
||||
parent: bifrost-integration-dibipa-debian
|
||||
name: bifrost-integration-debian-ipasrc-on-ubuntu-jammy
|
||||
parent: bifrost-integration-debian-ipasrc
|
||||
nodeset: ubuntu-jammy
|
||||
|
||||
- job:
|
||||
name: bifrost-integration-dibipa-debian-centos-10
|
||||
parent: bifrost-integration-dibipa-debian
|
||||
name: bifrost-integration-debian-ipasrc-on-centos-10
|
||||
parent: bifrost-integration-debian-ipasrc
|
||||
nodeset: bifrost-centos-10-stream
|
||||
|
||||
- job:
|
||||
name: bifrost-integration-tinyipa
|
||||
parent: bifrost-base
|
||||
timeout: 3600
|
||||
vars:
|
||||
noauth_mode: false
|
||||
|
||||
#NOTE(rpittau): Currently used by openstacksdk and ansible-collections-openstack.
|
||||
#DO NOT REMOVE until these projects are updated to use the new job.
|
||||
- job:
|
||||
name: bifrost-integration-tinyipa-ubuntu-jammy
|
||||
parent: bifrost-integration-tinyipa
|
||||
parent: bifrost-integration
|
||||
nodeset: ubuntu-jammy
|
||||
timeout: 7200
|
||||
|
||||
- job:
|
||||
name: bifrost-integration-on-ubuntu-jammy
|
||||
parent: bifrost-integration
|
||||
nodeset: ubuntu-jammy
|
||||
timeout: 7200
|
||||
|
||||
#NOTE(rpittau): Currently used by Ironic.
|
||||
#DO NOT REMOVE until Ironic is updated to use the new job.
|
||||
- job:
|
||||
name: bifrost-integration-tinyipa-ubuntu-noble
|
||||
parent: bifrost-integration-tinyipa
|
||||
nodeset: ubuntu-noble
|
||||
parent: bifrost-integration
|
||||
nodeset: bifrost-ubuntu-noble-8GB
|
||||
timeout: 7200
|
||||
|
||||
- job:
|
||||
name: bifrost-integration-on-ubuntu-noble
|
||||
parent: bifrost-integration
|
||||
nodeset: bifrost-ubuntu-noble-8GB
|
||||
timeout: 7200
|
||||
|
||||
#NOTE(rpittau): Currently used by ansible-collections-openstack.
|
||||
#DO NOT REMOVE until these projects are updated to use the new job.
|
||||
- job:
|
||||
name: bifrost-integration-tinyipa-keystone-ubuntu-jammy
|
||||
parent: bifrost-integration-tinyipa
|
||||
parent: bifrost-integration
|
||||
nodeset: ubuntu-jammy
|
||||
timeout: 7200
|
||||
required-projects:
|
||||
- openstack/keystone
|
||||
- openstack/ironic-prometheus-exporter
|
||||
@@ -103,13 +123,29 @@
|
||||
enable_prometheus_exporter: true
|
||||
|
||||
- job:
|
||||
name: bifrost-integration-tinyipa-keystone-ubuntu-noble
|
||||
parent: bifrost-integration-tinyipa-keystone-ubuntu-jammy
|
||||
nodeset: ubuntu-noble
|
||||
name: bifrost-integration-keystone-on-ubuntu-jammy
|
||||
parent: bifrost-integration
|
||||
nodeset: ubuntu-jammy
|
||||
timeout: 7200
|
||||
required-projects:
|
||||
- openstack/keystone
|
||||
- openstack/ironic-prometheus-exporter
|
||||
vars:
|
||||
enable_keystone: true
|
||||
enable_tls: true
|
||||
test_driver: redfish
|
||||
enable_prometheus_exporter: true
|
||||
|
||||
- job:
|
||||
name: bifrost-integration-keystone-on-ubuntu-noble
|
||||
parent: bifrost-integration-keystone-on-ubuntu-jammy
|
||||
nodeset: bifrost-ubuntu-noble-8GB
|
||||
timeout: 7200
|
||||
|
||||
- job:
|
||||
name: bifrost-integration-redfish-vmedia-uefi-ubuntu-noble
|
||||
parent: bifrost-integration-tinyipa-ubuntu-noble
|
||||
parent: bifrost-integration-on-ubuntu-noble
|
||||
nodeset: bifrost-ubuntu-noble-8GB
|
||||
vars:
|
||||
enable_tls: true
|
||||
test_driver: redfish
|
||||
@@ -117,7 +153,7 @@
|
||||
|
||||
- job:
|
||||
name: bifrost-integration-redfish-vmedia-uefi-ubuntu-jammy
|
||||
parent: bifrost-integration-tinyipa-ubuntu-jammy
|
||||
parent: bifrost-integration-on-ubuntu-jammy
|
||||
vars:
|
||||
enable_tls: true
|
||||
test_driver: redfish
|
||||
@@ -125,40 +161,33 @@
|
||||
|
||||
- job:
|
||||
name: bifrost-cli-ubuntu-jammy
|
||||
parent: bifrost-integration-tinyipa-ubuntu-jammy
|
||||
parent: bifrost-integration-on-ubuntu-jammy
|
||||
vars:
|
||||
cli_test: true
|
||||
|
||||
- job:
|
||||
name: bifrost-integration-redfish-vmedia-uefi-centos-10
|
||||
parent: bifrost-integration-tinyipa-centos-10
|
||||
vars:
|
||||
test_driver: redfish
|
||||
use_vmedia: true
|
||||
|
||||
# FIXME(dtantsur): remove when this job is no longer used on Ironic
|
||||
- job:
|
||||
name: bifrost-integration-redfish-vmedia-uefi-centos-9
|
||||
parent: bifrost-integration-tinyipa-centos-9
|
||||
parent: bifrost-integration-on-centos-10
|
||||
vars:
|
||||
test_driver: redfish
|
||||
use_vmedia: true
|
||||
|
||||
- job:
|
||||
name: bifrost-integration-redfish-pxe-uefi-ubuntu-noble
|
||||
parent: bifrost-integration-tinyipa-ubuntu-noble
|
||||
parent: bifrost-integration-on-ubuntu-noble
|
||||
vars:
|
||||
enable_grub_network_boot: true
|
||||
test_driver: redfish
|
||||
|
||||
- job:
|
||||
name: bifrost-integration-tinyipa-centos-10
|
||||
parent: bifrost-integration-tinyipa
|
||||
name: bifrost-integration-on-centos-10
|
||||
parent: bifrost-integration
|
||||
nodeset: bifrost-centos-10-stream
|
||||
timeout: 7200
|
||||
|
||||
- job:
|
||||
name: bifrost-integration-tinyipa-keystone-centos-10
|
||||
parent: bifrost-integration-tinyipa-centos-10
|
||||
name: bifrost-integration-keystone-on-centos-10
|
||||
parent: bifrost-integration-on-centos-10
|
||||
required-projects:
|
||||
- openstack/keystone
|
||||
- openstack/ironic-prometheus-exporter
|
||||
@@ -169,22 +198,20 @@
|
||||
enable_prometheus_exporter: true
|
||||
|
||||
- job:
|
||||
name: bifrost-integration-tinyipa-debian-bullseye
|
||||
parent: bifrost-integration-tinyipa
|
||||
nodeset: debian-bullseye
|
||||
|
||||
- job:
|
||||
name: bifrost-integration-tinyipa-debian-bookworm
|
||||
parent: bifrost-integration-tinyipa
|
||||
name: bifrost-integration-on-debian-bookworm
|
||||
parent: bifrost-integration
|
||||
nodeset: debian-bookworm
|
||||
timeout: 7200
|
||||
|
||||
- job:
|
||||
name: bifrost-integration-redfish-vmedia-uefi-debian-bookworm
|
||||
parent: bifrost-integration-tinyipa-debian-bookworm
|
||||
parent: bifrost-integration-on-debian-bookworm
|
||||
vars:
|
||||
enable_tls: true
|
||||
test_driver: redfish
|
||||
use_vmedia: true
|
||||
# Use Debian-based IPA which is smaller and compatible with GRUB 2.06
|
||||
ipa_download_distro: "debian"
|
||||
|
||||
- job:
|
||||
name: bifrost-tox-linters
|
||||
@@ -220,7 +247,8 @@
|
||||
- job:
|
||||
name: bifrost-upgrade-keystone-ubuntu-noble
|
||||
parent: bifrost-upgrade
|
||||
nodeset: ubuntu-noble
|
||||
nodeset: bifrost-ubuntu-noble-8GB
|
||||
timeout: 7200
|
||||
required-projects:
|
||||
- openstack/keystone
|
||||
vars:
|
||||
|
||||
@@ -8,14 +8,14 @@
|
||||
jobs:
|
||||
- bifrost-tox-linters
|
||||
- bifrost-integration-dhcp-centos-10
|
||||
- bifrost-integration-dibipa-debian-centos-10
|
||||
- bifrost-integration-tinyipa-centos-10
|
||||
- bifrost-integration-tinyipa-ubuntu-noble
|
||||
- bifrost-integration-tinyipa-ubuntu-jammy
|
||||
- bifrost-integration-tinyipa-debian-bookworm
|
||||
- bifrost-integration-tinyipa-keystone-centos-10
|
||||
- bifrost-integration-tinyipa-keystone-ubuntu-noble
|
||||
- bifrost-integration-tinyipa-keystone-ubuntu-jammy
|
||||
- bifrost-integration-debian-ipasrc-on-centos-10
|
||||
- bifrost-integration-on-centos-10
|
||||
- bifrost-integration-on-ubuntu-noble
|
||||
- bifrost-integration-on-ubuntu-jammy
|
||||
- bifrost-integration-on-debian-bookworm
|
||||
- bifrost-integration-keystone-on-centos-10
|
||||
- bifrost-integration-keystone-on-ubuntu-noble
|
||||
- bifrost-integration-keystone-on-ubuntu-jammy
|
||||
- bifrost-integration-redfish-vmedia-uefi-centos-10
|
||||
- bifrost-integration-redfish-vmedia-uefi-ubuntu-noble
|
||||
- bifrost-integration-redfish-vmedia-uefi-ubuntu-jammy
|
||||
@@ -30,7 +30,7 @@
|
||||
voting: false
|
||||
- bifrost-integration-dhcp-ubuntu-jammy:
|
||||
voting: false
|
||||
- bifrost-integration-dibipa-debian-ubuntu-jammy:
|
||||
- bifrost-integration-debian-ipasrc-on-ubuntu-jammy:
|
||||
voting: false
|
||||
- bifrost-cli-ubuntu-jammy:
|
||||
voting: false
|
||||
@@ -62,14 +62,14 @@
|
||||
jobs:
|
||||
- bifrost-tox-linters
|
||||
- bifrost-integration-dhcp-centos-10
|
||||
- bifrost-integration-dibipa-debian-centos-10
|
||||
- bifrost-integration-tinyipa-centos-10
|
||||
- bifrost-integration-tinyipa-ubuntu-noble
|
||||
- bifrost-integration-tinyipa-ubuntu-jammy
|
||||
- bifrost-integration-tinyipa-debian-bookworm
|
||||
- bifrost-integration-tinyipa-keystone-centos-10
|
||||
- bifrost-integration-tinyipa-keystone-ubuntu-noble
|
||||
- bifrost-integration-tinyipa-keystone-ubuntu-jammy
|
||||
- bifrost-integration-debian-ipasrc-on-centos-10
|
||||
- bifrost-integration-on-centos-10
|
||||
- bifrost-integration-on-ubuntu-noble
|
||||
- bifrost-integration-on-ubuntu-jammy
|
||||
- bifrost-integration-on-debian-bookworm
|
||||
- bifrost-integration-keystone-on-centos-10
|
||||
- bifrost-integration-keystone-on-ubuntu-noble
|
||||
- bifrost-integration-keystone-on-ubuntu-jammy
|
||||
- bifrost-integration-redfish-vmedia-uefi-centos-10
|
||||
- bifrost-integration-redfish-vmedia-uefi-ubuntu-noble
|
||||
- bifrost-integration-redfish-vmedia-uefi-ubuntu-jammy
|
||||
|
||||
Reference in New Issue
Block a user