Mark Goddard c4b74f4801 libvirt: deploy libvirt on the host
In some cases it may be desirable to run libvirt daemon on the host. For
example, when mixing host and container OS distributions.

This change makes it possible to disable the nova_libvirt container, by
setting kolla_enable_nova_libvirt_container to false.

The stackhpc.libvirt-host role is used in order to install and configure
a libvirt daemon on compute hosts when
kolla_enable_nova_libvirt_container is false.

Depends-On: https://review.opendev.org/c/openstack/kolla-ansible/+/825357
Depends-On: https://review.opendev.org/c/openstack/kayobe-config-dev/+/829225
Depends-On: https://github.com/stackhpc/ansible-role-libvirt-host/pull/51

Story: 2009858
Task: 44495

Change-Id: I73fef63fb886a9d543d2f4231fb009523495edb3
2022-03-24 13:44:48 +00:00

215 lines
7.9 KiB
Plaintext

---
###############################################################################
# Compute node configuration.
# User with which to access the computes via SSH during bootstrap, in order
# to setup the Kayobe user account. Default is {{ os_distribution }}.
compute_bootstrap_user: "{{ os_distribution }}"
###############################################################################
# Compute network interface configuration.
# List of networks to which compute nodes are attached.
compute_network_interfaces: >
{{ (compute_default_network_interfaces +
compute_extra_network_interfaces) | select | unique | list }}
# List of default networks to which compute nodes are attached.
compute_default_network_interfaces: >
{{ ([admin_oc_net_name,
internal_net_name,
storage_net_name,
tunnel_net_name] +
(external_net_names if kolla_enable_neutron_provider_networks | bool else [])) | select | unique | list }}
# List of extra networks to which compute nodes are attached.
compute_extra_network_interfaces: []
###############################################################################
# Compute node BIOS configuration.
# Dict of compute BIOS options. Format is same as that used by stackhpc.drac
# role.
compute_bios_config: "{{ compute_bios_config_default | combine(compute_bios_config_extra) }}"
# Dict of default compute BIOS options. Format is same as that used by
# stackhpc.drac role.
compute_bios_config_default: {}
# Dict of additional compute BIOS options. Format is same as that used by
# stackhpc.drac role.
compute_bios_config_extra: {}
###############################################################################
# Compute node RAID configuration.
# List of compute RAID volumes. Format is same as that used by stackhpc.drac
# role.
compute_raid_config: "{{ compute_raid_config_default + compute_raid_config_extra }}"
# List of default compute RAID volumes. Format is same as that used by
# stackhpc.drac role.
compute_raid_config_default: []
# List of additional compute RAID volumes. Format is same as that used by
# stackhpc.drac role.
compute_raid_config_extra: []
###############################################################################
# Compute node software RAID configuration.
# List of software RAID arrays. See mrlesmithjr.mdadm role for format.
compute_mdadm_arrays: []
###############################################################################
# Compute node encryption configuration.
# List of block devices to encrypt. See stackhpc.luks role for format.
compute_luks_devices: []
###############################################################################
# Compute node LVM configuration.
# List of compute volume groups. See mrlesmithjr.manage-lvm role for
# format.
compute_lvm_groups: "{{ compute_lvm_groups_default + compute_lvm_groups_extra }}"
# Default list of compute volume groups. See mrlesmithjr.manage-lvm role for
# format.
compute_lvm_groups_default: "{{ [compute_lvm_group_data] if compute_lvm_group_data_enabled | bool else [] }}"
# Additional list of compute volume groups. See mrlesmithjr.manage-lvm role
# for format.
compute_lvm_groups_extra: []
# Whether a 'data' LVM volume group should exist on compute hosts. By default
# this contains a 'docker-volumes' logical volume for Docker volume storage. It
# will also be used for Docker container and image storage if
# 'docker_storage_driver' is set to 'devicemapper'. Default is true if
# 'docker_storage_driver' is set to 'devicemapper', or false otherwise.
compute_lvm_group_data_enabled: "{{ docker_storage_driver == 'devicemapper' }}"
# Compute LVM volume group for data. See mrlesmithjr.manage-lvm role for
# format.
compute_lvm_group_data:
vgname: data
disks: "{{ compute_lvm_group_data_disks }}"
create: True
lvnames: "{{ compute_lvm_group_data_lvs }}"
# List of disks for use by compute LVM data volume group. Default to an
# invalid value to require configuration.
compute_lvm_group_data_disks:
- changeme
# List of LVM logical volumes for the data volume group.
compute_lvm_group_data_lvs:
- "{{ compute_lvm_group_data_lv_docker_volumes }}"
# Docker volumes LVM backing volume.
compute_lvm_group_data_lv_docker_volumes:
lvname: docker-volumes
size: "{{ compute_lvm_group_data_lv_docker_volumes_size }}"
create: True
filesystem: "{{ compute_lvm_group_data_lv_docker_volumes_fs }}"
mount: True
mntp: /var/lib/docker/volumes
# Size of docker volumes LVM backing volume.
compute_lvm_group_data_lv_docker_volumes_size: 75%VG
# Filesystem for docker volumes LVM backing volume. ext4 allows for shrinking.
compute_lvm_group_data_lv_docker_volumes_fs: ext4
###############################################################################
# Compute node sysctl configuration.
# Dict of sysctl parameters to set.
compute_sysctl_parameters: {}
###############################################################################
# Compute node tuned configuration.
# Builtin tuned profile to use. Format is same as that used by giovtorres.tuned
# role. Default is virtual-host.
compute_tuned_active_builtin_profile: "virtual-host"
###############################################################################
# Compute node user configuration.
# List of users to create. This should be in a format accepted by the
# singleplatform-eng.users role.
compute_users: "{{ users_default }}"
###############################################################################
# Compute node firewalld configuration.
# Whether to install and enable firewalld.
compute_firewalld_enabled: false
# A list of zones to create. Each item is a dict containing a 'zone' item.
compute_firewalld_zones: []
# A firewalld zone to set as the default. Default is unset, in which case the
# default zone will not be changed.
compute_firewalld_default_zone:
# A list of firewall rules to apply. Each item is a dict containing arguments
# to pass to the firewalld module. Arguments are omitted if not provided, with
# the following exceptions:
# - offline: true
# - permanent: true
# - state: enabled
compute_firewalld_rules: []
###############################################################################
# Compute node host libvirt configuration.
# Whether to enable a host libvirt daemon. Default is true if kolla_enable_nova
# is true and kolla_enable_nova_libvirt_container is false.
compute_libvirt_enabled: "{{ kolla_enable_nova | bool and not kolla_enable_nova_libvirt_container | bool }}"
# A dict of default configuration options to write to
# /etc/libvirt/libvirtd.conf.
compute_libvirt_conf_default:
auth_tcp: "none"
log_level: "{{ compute_libvirtd_log_level }}"
# A dict of additional configuration options to write to
# /etc/libvirt/libvirtd.conf.
compute_libvirt_conf_extra: {}
# A dict of configuration options to write to /etc/libvirt/libvirtd.conf.
# Default is a combination of compute_libvirt_conf_default and
# compute_libvirt_conf_extra.
compute_libvirt_conf: "{{ compute_libvirt_conf_default | combine(compute_libvirt_conf_extra) }}"
# Numerical log level for libvirtd. Default is 3.
compute_libvirtd_log_level: 3
# A dict of default configuration options to write to
# /etc/libvirt/qemu.conf.
compute_qemu_conf_default:
max_files: 32768
max_processes: 131072
# A dict of additional configuration options to write to
# /etc/libvirt/qemu.conf.
compute_qemu_conf_extra: {}
# A dict of configuration options to write to /etc/libvirt/qemu.conf.
# Default is a combination of compute_qemu_conf_default and
# compute_qemu_conf_extra.
compute_qemu_conf: "{{ compute_qemu_conf_default | combine(compute_qemu_conf_extra) }}"
# Whether to enable a libvirt TLS listener. Default is false.
compute_libvirt_enable_tls: false
# Whether to install a Ceph package repository on CentOS and Rocky hosts.
# Default is true.
compute_libvirt_ceph_repo_install: true
# Ceph package repository release to install on CentOS and Rocky hosts when
# compute_libvirt_ceph_repo_install is true. Default is 'pacific'.
compute_libvirt_ceph_repo_release: pacific