From b57b94bbad4333020cc6906d124d6f01f75e1e2c Mon Sep 17 00:00:00 2001 From: Mark Goddard Date: Thu, 3 Feb 2022 13:57:46 +0000 Subject: [PATCH] CI: test ironic UEFI boot mode in overcloud TLS jobs Set the Ironic boot mode to legacy BIOS explicitly in Tenks config in anticipation of an upcoming change to the default boot mode. Override the boot mode to UEFI in the overcloud TLS job to improve coverage. This requires enabling iPXE booting. Depends-On: https://review.opendev.org/c/openstack/tenks/+/827479/ Change-Id: Id1b4e9775c834b8b97e086241ee8b247977225a2 --- dev/tenks-deploy-config-compute.yml | 2 ++ dev/tenks-deploy-config-overcloud.yml | 2 ++ playbooks/kayobe-overcloud-base/overrides.yml.j2 | 7 +++++++ playbooks/kayobe-overcloud-base/pre.yml | 7 +++++++ zuul.d/jobs.yaml | 2 ++ 5 files changed, 20 insertions(+) diff --git a/dev/tenks-deploy-config-compute.yml b/dev/tenks-deploy-config-compute.yml index c4008377b..0f859ccd9 100644 --- a/dev/tenks-deploy-config-compute.yml +++ b/dev/tenks-deploy-config-compute.yml @@ -34,6 +34,8 @@ physnet_mappings: deploy_kernel: ipa.kernel deploy_ramdisk: ipa.initramfs +default_boot_mode: "bios" + # Use the libvirt daemon deployed by Kolla Ansible in the nova_libvirt # container. Tenks will install libvirt client packages. libvirt_host_install_daemon: false diff --git a/dev/tenks-deploy-config-overcloud.yml b/dev/tenks-deploy-config-overcloud.yml index 7d54961db..521f7d03a 100644 --- a/dev/tenks-deploy-config-overcloud.yml +++ b/dev/tenks-deploy-config-overcloud.yml @@ -34,6 +34,8 @@ physnet_mappings: bridge_type: linuxbridge +default_boot_mode: "bios" + # No placement service. wait_for_placement: false diff --git a/playbooks/kayobe-overcloud-base/overrides.yml.j2 b/playbooks/kayobe-overcloud-base/overrides.yml.j2 index 1980c2bdb..ba970bc50 100644 --- a/playbooks/kayobe-overcloud-base/overrides.yml.j2 +++ b/playbooks/kayobe-overcloud-base/overrides.yml.j2 @@ -33,6 +33,13 @@ aio_bridge_ports: # Enable ironic for testing baremetal compute. kolla_enable_ironic: true +{% if ironic_boot_mode == 'uefi' %} +# iPXE is currently required for UEFI boot mode in Kolla Ansible. +kolla_enable_ironic_ipxe: true +kolla_ironic_enabled_boot_interfaces: [ipxe] +kolla_ironic_default_boot_interface: ipxe +{% endif %} + {% if tls_enabled %} kolla_enable_tls_external: "yes" kolla_enable_tls_internal: "yes" diff --git a/playbooks/kayobe-overcloud-base/pre.yml b/playbooks/kayobe-overcloud-base/pre.yml index 2694c7583..f696974ba 100644 --- a/playbooks/kayobe-overcloud-base/pre.yml +++ b/playbooks/kayobe-overcloud-base/pre.yml @@ -25,6 +25,13 @@ src: globals.yml.j2 dest: "{{ kayobe_config_src_dir }}/etc/kayobe/kolla/globals.yml" + - name: Configure Tenks to use UEFI boot mode + replace: + path: "{{ kayobe_src_dir }}/dev/tenks-deploy-config-compute.yml" + regexp: '^default_boot_mode: .*$' + replace: 'default_boot_mode: "uefi"' + when: ironic_boot_mode == 'uefi' + - name: Ensure kayobe is installed shell: cmd: dev/install.sh &> {{ logs_dir }}/ansible/install diff --git a/zuul.d/jobs.yaml b/zuul.d/jobs.yaml index 426a763f6..61905ed5a 100644 --- a/zuul.d/jobs.yaml +++ b/zuul.d/jobs.yaml @@ -83,6 +83,7 @@ tenks_src_dir: "{{ ansible_env.PWD ~ '/' ~ zuul.projects['opendev.org/openstack/tenks'].src_dir }}" is_upgrade: "{{ 'upgrade' in zuul.job }}" tls_enabled: false + ironic_boot_mode: "bios" - job: name: kayobe-overcloud-base @@ -110,6 +111,7 @@ parent: kayobe-overcloud-base vars: tls_enabled: true + ironic_boot_mode: "uefi" - job: name: kayobe-overcloud-tls-centos8s