This change allows you to define additional VMs to deploy on the seed-hypervisor. Co-authored-by: Piotr Parczewski <piotr@stackhpc.com> Co-authored-by: Will Szumski <will@stackhpc.com> Co-authored-by: Mark Goddard <mark@stackhpc.com> Story: 2008741 Task: 42095 Change-Id: I8055fc5eb0a9edadcb35767303c659922f2d07ca
98 lines
3.2 KiB
ReStructuredText
98 lines
3.2 KiB
ReStructuredText
.. _configuration-infra-vms:
|
|
|
|
==================
|
|
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 the ``infra-vms`` group
|
|
in the inventory:
|
|
|
|
.. code-block:: ini
|
|
:caption: ``$KAYOBE_CONFIG_PATH/inventory/infra-vms``
|
|
|
|
[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
|
|
:ref:`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``.
|
|
|
|
.. literalinclude:: ../../../../ansible/group_vars/all/infra-vms
|
|
:language: yaml
|
|
|
|
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``:
|
|
|
|
.. code-block:: yaml
|
|
:caption: ``$KAYOBE_CONFIG_PATH/inventory/host_vars/an-example-vm``
|
|
|
|
# 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``:
|
|
|
|
.. code-block:: yaml
|
|
:caption: ``$KAYOBE_CONFIG_PATH/inventory/host_vars/an-example-vm``
|
|
|
|
# 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.
|
|
|
|
.. code-block:: yaml
|
|
:caption: ``$KAYOBE_CONFIG_PATH/inventory/host_vars/an-example-vm``
|
|
|
|
# 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
|
|
:ref:`deployment-infrastructure-vms`.
|