diff --git a/bifrost/cli.py b/bifrost/cli.py index 4f2c1128..cd7677ee 100644 --- a/bifrost/cli.py +++ b/bifrost/cli.py @@ -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', diff --git a/doc/source/user/architecture.rst b/doc/source/user/architecture.rst index 3d8ed662..15766706 100644 --- a/doc/source/user/architecture.rst +++ b/doc/source/user/architecture.rst @@ -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). diff --git a/doc/source/user/troubleshooting.rst b/doc/source/user/troubleshooting.rst index 1d461719..88102aa7 100644 --- a/doc/source/user/troubleshooting.rst +++ b/doc/source/user/troubleshooting.rst @@ -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) ****************************************************** diff --git a/playbooks/roles/bifrost-create-vm-nodes/defaults/main.yml b/playbooks/roles/bifrost-create-vm-nodes/defaults/main.yml index d2021fc5..bed2e336 100644 --- a/playbooks/roles/bifrost-create-vm-nodes/defaults/main.yml +++ b/playbooks/roles/bifrost-create-vm-nodes/defaults/main.yml @@ -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 '' }}" diff --git a/playbooks/roles/bifrost-ironic-install/defaults/main.yml b/playbooks/roles/bifrost-ironic-install/defaults/main.yml index 975d6915..ef047e8a 100644 --- a/playbooks/roles/bifrost-ironic-install/defaults/main.yml +++ b/playbooks/roles/bifrost-ironic-install/defaults/main.yml @@ -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" diff --git a/releasenotes/notes/goodbye-tinyipa-a5efe0e972647616.yaml b/releasenotes/notes/goodbye-tinyipa-a5efe0e972647616.yaml new file mode 100644 index 00000000..5aa4c780 --- /dev/null +++ b/releasenotes/notes/goodbye-tinyipa-a5efe0e972647616.yaml @@ -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. diff --git a/scripts/test-bifrost.sh b/scripts/test-bifrost.sh index e8991b93..68e82ee5 100755 --- a/scripts/test-bifrost.sh +++ b/scripts/test-bifrost.sh @@ -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} \ diff --git a/zuul.d/bifrost-jobs.yaml b/zuul.d/bifrost-jobs.yaml index 40675d7f..9691aab0 100644 --- a/zuul.d/bifrost-jobs.yaml +++ b/zuul.d/bifrost-jobs.yaml @@ -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,64 @@ 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 +#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 - parent: bifrost-base - timeout: 3600 - vars: - noauth_mode: false + name: bifrost-integration-tinyipa-ubuntu-jammy + parent: bifrost-integration + nodeset: ubuntu-jammy + timeout: 7200 - job: - name: bifrost-integration-tinyipa-ubuntu-jammy - parent: bifrost-integration-tinyipa + 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 + vars: + enable_keystone: true + enable_tls: true + test_driver: redfish + enable_prometheus_exporter: true + +- job: + name: bifrost-integration-keystone-on-ubuntu-jammy + parent: bifrost-integration nodeset: ubuntu-jammy + timeout: 7200 required-projects: - openstack/keystone - openstack/ironic-prometheus-exporter @@ -103,13 +137,15 @@ 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-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: diff --git a/zuul.d/project.yaml b/zuul.d/project.yaml index f324edfc..fe33dd71 100644 --- a/zuul.d/project.yaml +++ b/zuul.d/project.yaml @@ -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