Pierre Riteau 37da40cfb6 docs: fix typos
Change-Id: Ic99f2ac8f8052e6e0eaaa75650f465ff079f69cb
2024-10-07 09:00:49 +02:00

3.3 KiB

Infrastructure VMs

Kayobe can deploy infrastructure VMs to the seed-hypervisor. These can be used to provide supplementary services that do not run well within a containerised environment or are dependencies of the control plane.

Configuration

To deploy an infrastructure VM, add a new host to the infra-vms group in the inventory:

[infra-vms]
an-example-vm

The configuration of the virtual machine should be done using host_vars. These override the group_vars defined for the infra-vms group. Most variables have sensible defaults defined, but there are a few variables which must be set.

Mandatory variables

All networks must have an interface defined, as described in configuration-network-per-host. By default the VMs are attached to the admin overcloud network. If, for example, admin_oc_net_name was set to example_net, you would need to define example_net_interface. It is possible to change the list of networks that a VM is attached to by modifying infra_vm_network_interfaces. Additional interfaces can be added by setting infra_vm_network_interfaces_extra.

List of Kayobe applied defaults to required docker_container variables. Any of these variables can be overridden with a host_var.

../../../../ansible/inventory/group_vars/all/infra-vms

Customisations

Examples of common customisations are shown below.

By default the Ansible inventory name is used as the name of the VM. This may be overridden via infra_vm_name:

# Name of the infra VM.
infra_vm_name: "the-special-one"

By default the VM has 16G of RAM. This may be changed via infra_vm_memory_mb:

# Memory in MB. Defaults to 16GB.
infra_vm_memory_mb: "{{ 8 * 1024 }}"

The default network configuration attaches infra VMs to the admin network. If this is not appropriate, modify infra_vm_network_interfaces. At a minimum the network interface name for the network should be defined.

# Network interfaces that the VM is attached to.
infra_vm_network_interfaces:
  - aio

# Mandatory: All networks must have an interface defined.
aio_interface: eth0

# By default kayobe will connect to a host via ``admin_oc_net``.
# As we have not attached this VM to this network, we must override
# ansible_host.
ansible_host: "{{ 'aio' | net_ip }}"

Configuration for all VMs can be set using extra_vars defined in $KAYOBE_CONFIG_PATH/infra-vms.yml. Note that normal Ansible precedence rules apply and the variables will override any host_vars. If you need to override the defaults, but still maintain per-host settings, use group_vars instead.

Deploying the virtual machine

Once the initial configuration has been done follow the steps in deployment-infrastructure-vms.