Mark Goddard 1d8b4e2500 Enable 'data' LVM group only for Docker devicemapper
This change is a precursor to switching the default Docker storage
driver to overlay2.

Previously, Kayobe's default configuration included a 'data' LVM volume
group, with a 'docker-volumes' logical volume mounted at
/var/lib/docker/volumes. Additionally, if the Docker devicemapper
storage driver was used, the data volume group would contain the
docker-thinpool and docker-thinpoolmeta volumes.

This LVM setup was really included for devicemapper, and while in some
cases it may be useful to have docker volumes as a separate logical
volume, this doesn't really make sense as a default. Often in
environments using other Docker storage drivers, the data volume group
would be removed from configuration.

This change modifies the default LVM configuration to only create a
'data' volume group if the Docker storage driver is devicemapper.
Additionally, new flags are added to make this choice independent from
the storage driver, to support cases where the data volume group is
required without devicemapper.

Change-Id: Ia3c1f6423c32fa2580b57db32512a34ce35d7acc
Story: 2005667
Task: 30973
2020-04-23 14:20:59 +01:00

96 lines
3.5 KiB
Plaintext

---
###############################################################################
# Seed node configuration.
# User with which to access the seed via SSH during bootstrap, in order to
# setup the Kayobe user account.
seed_bootstrap_user: "{{ lookup('env', 'USER') }}"
###############################################################################
# Seed network interface configuration.
# List of networks to which seed nodes are attached.
seed_network_interfaces: >
{{ (seed_default_network_interfaces +
seed_extra_network_interfaces) | reject('none') | unique | list }}
# List of default networks to which seed nodes are attached.
seed_default_network_interfaces: >
{{ [admin_oc_net_name,
oob_oc_net_name,
provision_oc_net_name] | reject('none') | unique | list }}
# List of extra networks to which seed nodes are attached.
seed_extra_network_interfaces: []
###############################################################################
# Seed node software RAID configuration.
# List of software RAID arrays. See mrlesmithjr.mdadm role for format.
seed_mdadm_arrays: []
###############################################################################
# Seed node LVM configuration.
# List of seed volume groups. See mrlesmithjr.manage-lvm role for format.
seed_lvm_groups: "{{ seed_lvm_groups_default + seed_lvm_groups_extra }}"
# Default list of seed volume groups. See mrlesmithjr.manage-lvm role for
# format.
seed_lvm_groups_default: "{{ [seed_lvm_group_data] if seed_lvm_group_data_enabled | bool else [] }}"
# Additional list of seed volume groups. See mrlesmithjr.manage-lvm role for
# format.
seed_lvm_groups_extra: []
# Whether a 'data' LVM volume group should exist on the seed. 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.
seed_lvm_group_data_enabled: "{{ docker_storage_driver == 'devicemapper' }}"
# Seed LVM volume group for data. See mrlesmithjr.manage-lvm role for format.
seed_lvm_group_data:
vgname: data
disks: "{{ seed_lvm_group_data_disks }}"
create: True
lvnames: "{{ seed_lvm_group_data_lvs }}"
# List of disks for use by seed LVM data volume group. Default to an invalid
# value to require configuration.
seed_lvm_group_data_disks:
- changeme
# List of LVM logical volumes for the data volume group.
seed_lvm_group_data_lvs:
- "{{ seed_lvm_group_data_lv_docker_volumes }}"
# Docker volumes LVM backing volume.
seed_lvm_group_data_lv_docker_volumes:
lvname: docker-volumes
size: "{{ seed_lvm_group_data_lv_docker_volumes_size }}"
create: True
filesystem: "{{ seed_lvm_group_data_lv_docker_volumes_fs }}"
mount: True
mntp: /var/lib/docker/volumes
# Size of docker volumes LVM backing volume.
seed_lvm_group_data_lv_docker_volumes_size: 75%VG
# Filesystem for docker volumes LVM backing volume. ext4 allows for shrinking.
seed_lvm_group_data_lv_docker_volumes_fs: ext4
###############################################################################
# Seed node sysctl configuration.
# Dict of sysctl parameters to set.
seed_sysctl_parameters: {}
###############################################################################
# Seed node user configuration.
# List of users to create. This should be in a format accepted by the
# singleplatform-eng.users role.
seed_users: "{{ users_default }}"