tenks/ansible/host_vars/localhost
Mark Goddard fc1b42c60d Support UEFI boot mode
Adds support for using UEFI boot mode for nodes. This is done via node
capabilities, as it is in Ironic.

The default boot mode is now configurable via the default_boot_mode
variable. The default boot mode remains legacy BIOS for now, although
this may change.

Updates the existing CI jobs, with the OVS jobs using BIOS boot mode,
and the linuxbridge jobs using UEFI boot mode.

Depends-On: https://github.com/stackhpc/ansible-role-libvirt-vm/pull/83
Depends-On: https://github.com/stackhpc/ansible-role-libvirt-host/pull/50
Depends-On: https://review.opendev.org/c/openstack/kayobe/+/827486

Change-Id: Ifaf95ecfd4f6e925d3c69d4b324fdf2cd6b0ca52
2022-02-08 10:52:28 +00:00

133 lines
4.9 KiB
Plaintext

---
# The Tenks command to perform. 'deploy' will spin up a cluster to the given
# specification; 'teardown' will tear it down.
cmd: deploy
# node_types is a dict that defines different sets of node specifications,
# keyed by a 'node type name' to associate with each set of specifications. An
# example of the format of this variable is below:
#
# node_types:
# # The type name.
# type0:
# # The amount of RAM, in mebibytes.
# memory_mb: 1024
# # The number of virtual CPUs.
# vcpus: 2
# # A list of volumes, each with a capacity.
# volumes:
# - capacity: 2GB
# # A list of physical network names to connect to. These physical network
# # names should be keyed in `physnet_mappings` in each hypervisor's host
# # vars.
# physical_networks:
# - physnet1
# # The Ironic driver for nodes of this type. If not set,
# # `default_ironic_driver` will be used.
# ironic_driver: ipmi
# # If true, log the nodes' console output to files in `log_directory`,
# # instead of to a PTY. If false, direct terminal output to a PTY at
# # serial port 0. If not set, the stackhpc.libvirt-vm role will handle the
# # default behaviour.
# console_log_enabled: false
node_types: {}
# specs is a list of configurations of nodes to be created. Each configuration
# can specify the number of nodes to be created, the type (from `node_types`)
# of these nodes, and optionally configuration for the Ironic nodes to be
# enroled from these nodes. If `ironic_config` is not set, Ironic enrolment
# will be skipped for that spec.
# For example:
#
# specs:
# # The type in `node_types` that this spec refers to. Required.
# - type: type0
# # The number of nodes to create of this spec. Required.
# count: 4
# # Node name prefix for this spec. Optional. If unspecified the global
# 'node_name_prefix' variable will be used instead (default 'tk').
# node_name_prefix: bm
# # Volume name prefix. Optional. If unspecified the global
# 'vol_name_prefix' variable will be used instead (default 'vol').
# vol_name_prefix: volly
# # The Ironic configuration for nodes of this spec. Optional.
# ironic_config:
# # The resource class that nodes of this spec should use in Ironic.
# # Required if `ironic_config` has been specified.
# resource_class: my_rc
# # Traits that nodes of this spec should have in Ironic. Optional -
# # defaults to [].
# traits: []
# # A dict of key-value pairs to be set as properties on the Ironic
# # nodes. Can be used to set capabilities. Optional - defaults to {}.
# properties: {}
# # The following variables are all optional; if not set, Ironic's
# # default value will be used.
# bios_interface: no-bios
# boot_interface: pxe
# console_interface: ipmitool-socat
# deploy_interface: iscsi
# inspect_interface: inspector
# management_interface: ipmitool
# network_interface: neutron
# power_interface: ipmitool
# raid_interface: no-raid
# storage_interface: noop
# vendor_interface: ipmitool
specs: []
# nova_flavors is a list of Nova flavors to be created. Each flavor must
# specify the resource class it is associated with, as well as the Tenks node
# type whose hardware specs should be used.
# For example:
#
# nova_flavors:
# # Required.
# - resource_class: my_rc
# # Required.
# node_type: type0
# # Defaults to `resource_class`.
# name: my_flavor
# # Optional, defaults to [].
# required_traits: []
# # Optional, defaults to [].
# forbidden_traits: []
# # Extra key-value pairs to add to the flavor's specs. Optional, defaults
# # to {}.
# custom_specs: {}
nova_flavors: []
# The Glance name or UUID of the image to use for the deployment kernel.
deploy_kernel:
# The Glance name or UUID of the image to use for the deployment ramdisk.
deploy_ramdisk:
# The path to the file which contains the state of the current Tenks cluster
# that is deployed. This includes details such as allocations of nodes to
# hypervisors, and unique indices of physical networks.
state_file_path: >-
{{ '/'.join([(playbook_dir | dirname), 'state.yml']) }}
# The default Ironic driver of a node. Can be overridden per-node.
default_ironic_driver: ipmi
# The default boot mode of a node. One of 'bios' or 'uefi'. Can be
# overridden per-node via properties.capabilities.boot_mode.
default_boot_mode: bios
# Maps Ironic drivers to the BMC emulation tool they support.
bmc_emulators:
agent_ipmitool: virtualbmc
agent_ipmitool_socat: virtualbmc
ipmi: virtualbmc
pxe_ipmitool: virtualbmc
pxe_ipmitool_socat: virtualbmc
pxe_snmp: virtualpdu
redfish: sushy-tools
snmp: virtualpdu
# Whether to wait for nodes' resources to be registered in the Placement
# service. If the Placement service is not in use, for example in standalone
# ironic installations, this flag should be set to 'false'.
wait_for_placement: true