seed-vm/infra-vms: Add support for EFI and q35

Bump stackhpc.libvirt-vm to v1.16.1.

Change-Id: I88f20112ab4740fe114a6484f88f4fbfb66863e5
This commit is contained in:
Michal Nasiadka 2024-06-10 14:16:02 +02:00 committed by Pierre Riteau
parent 882f1f7679
commit 9702736b3e
13 changed files with 83 additions and 8 deletions

View File

@ -76,6 +76,12 @@ infra_vm_wait_connection_ssh_extra_args: '-o StrictHostKeyChecking=no'
# OS family. Needed for config drive generation.
infra_vm_os_family: "{{ 'RedHat' if os_distribution in ['centos', 'rocky'] else 'Debian' }}"
# Boot firmware. Possible values are 'bios' or 'efi'. Default is 'bios'.
infra_vm_boot_firmware: "bios"
# Machine type. Libvirt default configuration is used.
infra_vm_machine:
###############################################################################
# Infrastructure VM node configuration.

View File

@ -65,3 +65,9 @@ seed_vm_data_format: qcow2
# List of network interfaces to attach to the seed VM.
seed_vm_interfaces: "{{ network_interfaces | sort | map('net_libvirt_vm_network') | list }}"
# Boot firmware. Possible values are 'bios' or 'efi'. Default is 'bios'.
seed_vm_boot_firmware: "bios"
# Machine type. Libvirt default configuration is used.
seed_vm_machine:

View File

@ -85,6 +85,8 @@
libvirt_vm_image_cache_path: "{{ image_cache_path }}"
libvirt_vms:
- name: "{{ vm_name }}"
boot_firmware: "{{ vm_hostvars.infra_vm_boot_firmware | default }}"
machine: "{{ vm_hostvars.infra_vm_machine | default }}"
memory_mb: "{{ vm_hostvars.infra_vm_memory_mb }}"
vcpus: "{{ vm_hostvars.infra_vm_vcpus }}"
volumes: "{{ vm_hostvars.infra_vm_volumes + [vm_configdrive_volume] }}"

View File

@ -9,6 +9,7 @@
pool: "{{ hostvars[vm_hostvars.infra_vm_hypervisor].infra_vm_pool }}"
libvirt_vms:
- name: "{{ vm_name }}"
boot_firmware: "{{ vm_hostvars.infra_vm_boot_firmware | default }}"
memory_mb: "{{ vm_hostvars.infra_vm_memory_mb }}"
vcpus: "{{ vm_hostvars.infra_vm_vcpus }}"
volumes: "{{ vm_hostvars.infra_vm_volumes + [infra_vm_configdrive_volume] }}"

View File

@ -8,9 +8,14 @@
seed_vm_configdrive_volume:
name: "{{ hostvars[seed_host].seed_vm_name }}-configdrive"
pool: "{{ hostvars[seed_host].seed_vm_pool }}"
libvirt_vm_name: "{{ hostvars[seed_host].seed_vm_name }}"
libvirt_vm_memory_mb: "{{ hostvars[seed_host].seed_vm_memory_mb }}"
libvirt_vm_vcpus: "{{ hostvars[seed_host].seed_vm_vcpus }}"
libvirt_vm_volumes: "{{ hostvars[seed_host].seed_vm_volumes + [seed_vm_configdrive_volume] }}"
libvirt_vm_state: "absent"
libvirt_vms:
- name: "{{ hostvars[seed_host].seed_vm_name }}"
boot_firmware: "{{ hostvars[seed_host].seed_vm_boot_firmware | default }}"
machine: "{{ hostvars[seed_host].seed_vm_machine | default }}"
memory_mb: "{{ hostvars[seed_host].seed_vm_memory_mb }}"
vcpus: "{{ hostvars[seed_host].seed_vm_vcpus }}"
volumes: "{{ hostvars[seed_host].seed_vm_volumes + [seed_vm_configdrive_volume] }}"
interfaces: "{{ hostvars[seed_host].seed_vm_interfaces }}"
console_log_enabled: true
state: absent
become: True

View File

@ -115,12 +115,13 @@
libvirt_vm_image_cache_path: "{{ image_cache_path }}"
libvirt_vms:
- name: "{{ hostvars[seed_host].seed_vm_name }}"
boot_firmware: "{{ hostvars[seed_host].seed_vm_boot_firmware | default }}"
machine: "{{ hostvars[seed_host].seed_vm_machine | default }}"
memory_mb: "{{ hostvars[seed_host].seed_vm_memory_mb }}"
vcpus: "{{ hostvars[seed_host].seed_vm_vcpus }}"
volumes: "{{ hostvars[seed_host].seed_vm_volumes + [seed_vm_configdrive_volume] }}"
interfaces: "{{ hostvars[seed_host].seed_vm_interfaces }}"
console_log_enabled: true
tasks:
- name: Wait for SSH access to the seed VM
local_action:

View File

@ -58,6 +58,12 @@
# OS family. Needed for config drive generation.
#infra_vm_os_family:
# Boot firmware. Possible values are 'bios' or 'efi'. Default is 'bios'.
#infra_vm_boot_firmware:
# Machine type. Libvirt default configuration is used.
#infra_vm_machine:
###############################################################################
# Infrastructure VM node configuration.

View File

@ -61,6 +61,12 @@
#
#seed_vm_interfaces:
# Boot firmware. Possible values are 'bios' or 'efi'. Default is 'bios'.
#seed_vm_boot_firmware:
# Machine type. Libvirt default configuration is used.
#seed_vm_machine:
###############################################################################
# Dummy variable to allow Ansible to accept this file.
workaround_ansible_issue_8743: yes

View File

@ -33,6 +33,13 @@ seed_vm_memory_mb: "{{ 1 * 1024 }}"
seed_bootstrap_user: cirros
seed_vm_root_image: /opt/cache/files/cirros-0.5.3-x86_64-disk.img
{% if seed_vm_boot_firmware is defined %}
seed_vm_boot_firmware: "{{ seed_vm_boot_firmware }}"
{% endif %}
{% if seed_vm_machine is defined %}
seed_vm_machine: "{{ seed_vm_machine }}"
{% endif %}
# Cirros doesn't load cdom drivers by default.
seed_vm_configdrive_device: disk

View File

@ -0,0 +1,8 @@
---
features:
- |
Adds support for specifying ``boot_firmware`` and ``machine`` variables to
seed and infra VMs. This can be used to launch VMs in UEFI boot mode with
Q35 machine type.
- |
Bumps stackhpc.libvirt-vm Ansible role to ``v1.16.1``.

View File

@ -40,8 +40,8 @@ roles:
version: 1.0.0
- src: stackhpc.libvirt-host
version: v1.12.1
- src: stackhpc.libvirt-vm
version: v1.14.2
- name: stackhpc.libvirt-vm
version: v1.16.1
- src: stackhpc.luks
version: 0.4.2
- src: stackhpc.os-ironic-state

View File

@ -337,6 +337,31 @@
parent: kayobe-seed-vm-base
nodeset: kayobe-ubuntu-jammy
- job:
name: kayobe-seed-vm-efi-base
parent: kayobe-seed-vm-base
description: |
Base job for testing seed VM provisioning with EFI and q35
vars:
seed_vm_boot_firmware: efi
seed_vm_machine: q35
- job:
name: kayobe-seed-vm-centos9s-efi
parent: kayobe-seed-vm-efi-base
nodeset: kayobe-centos9s
voting: false
- job:
name: kayobe-seed-vm-rocky9-efi
parent: kayobe-seed-vm-efi-base
nodeset: kayobe-rocky9
- job:
name: kayobe-seed-vm-ubuntu-jammy-efi
parent: kayobe-seed-vm-efi-base
nodeset: kayobe-ubuntu-jammy
- job:
name: kayobe-infra-vm-base
parent: kayobe-base

View File

@ -26,7 +26,9 @@
- kayobe-seed-upgrade-rocky9
- kayobe-seed-upgrade-ubuntu-jammy
- kayobe-seed-vm-rocky9
- kayobe-seed-vm-rocky9-efi
- kayobe-seed-vm-ubuntu-jammy
- kayobe-seed-vm-ubuntu-jammy-efi
- kayobe-infra-vm-rocky9
- kayobe-infra-vm-ubuntu-jammy
gate: