Ross Martyn d8ee0fa027 Multiple updates for Kayobe
---

1. Gather facts for localhost in kolla-ansible.yml
2. Don't include unconfigured networks in network_interfaces
3. Added Keystone configuration extra config merge

---

1. Facts are necessary for the kolla-ansible role,
which references the ansible_user_uid fact

2. It is possible to skip configuring a network,
by setting its name to None

This is done in networks.yml as follows:

admin_oc_net_name:

Currently, these networks may still be included in the 'network_interfaces'
list for each host, despite the fact that they are not in use.

A classic example is when ironic is not enabled, it is currently still
necessary to define provisioning and cleaning networks.

This change avoids including any networks that have their name set to None
in network_interfaces.

3. Added support for Keystone custom configuration

Added tests and documentation to add support for keystone extra configuration

Co-Authored-By: Mark Goddard <mark@stackhpc.com

Change-Id: Iaa304221b8093ac71f9cdbb23edc84d1517578da
2019-05-20 15:30:07 +01:00

147 lines
5.2 KiB
Plaintext

---
###############################################################################
# Controller node configuration.
# User with which to access the controllers via SSH during bootstrap, in order
# to setup the Kayobe user account.
controller_bootstrap_user: "{{ lookup('env', 'USER') }}"
###############################################################################
# Controller network interface configuration.
# List of networks to which controller nodes are attached.
controller_network_interfaces: >
{{ (controller_default_network_interfaces +
controller_extra_network_interfaces +
(controller_network_host_network_interfaces
if inventory_hostname in groups['network'] else [])) | reject('none') | unique | list }}
# List of default networks to which controller nodes are attached.
controller_default_network_interfaces: >
{{ [admin_oc_net_name,
oob_wl_net_name,
provision_wl_net_name,
inspection_net_name,
internal_net_name,
storage_net_name,
storage_mgmt_net_name,
ceph_storage_net_name,
swift_storage_net_name,
cleaning_net_name] | reject('none') | unique | list }}
# List of extra networks to which controller nodes are attached.
controller_extra_network_interfaces: []
# List of network interfaces to which network nodes are attached.
controller_network_host_network_interfaces: >
{{ ([public_net_name,
tunnel_net_name] +
external_net_names) | reject('none') | unique | list }}
###############################################################################
# Controller node BIOS configuration.
# Dict of controller BIOS options. Format is same as that used by stackhpc.drac
# role.
controller_bios_config: "{{ controller_bios_config_default | combine(controller_bios_config_extra) }}"
# Dict of default controller BIOS options. Format is same as that used by
# stackhpc.drac role.
controller_bios_config_default: {}
# Dict of additional controller BIOS options. Format is same as that used by
# stackhpc.drac role.
controller_bios_config_extra: {}
###############################################################################
# Controller node RAID configuration.
# List of controller RAID volumes. Format is same as that used by stackhpc.drac
# role.
controller_raid_config: "{{ controller_raid_config_default + controller_raid_config_extra }}"
# List of default controller RAID volumes. Format is same as that used by
# stackhpc.drac role.
controller_raid_config_default: []
# List of additional controller RAID volumes. Format is same as that used by
# stackhpc.drac role.
controller_raid_config_extra: []
###############################################################################
# Controller node software RAID configuration.
# List of software RAID arrays. See mrlesmithjr.mdadm role for format.
controller_mdadm_arrays: []
###############################################################################
# Controller node LVM configuration.
# List of controller volume groups. See mrlesmithjr.manage-lvm role for
# format.
controller_lvm_groups: "{{ controller_lvm_groups_default + controller_lvm_groups_extra }}"
# Default list of controller volume groups. See mrlesmithjr.manage-lvm role for
# format.
controller_lvm_groups_default:
- "{{ controller_lvm_group_data }}"
# Additional list of controller volume groups. See mrlesmithjr.manage-lvm role
# for format.
controller_lvm_groups_extra: []
# Controller LVM volume group for data. See mrlesmithjr.manage-lvm role for
# format.
controller_lvm_group_data:
vgname: data
disks: "{{ controller_lvm_group_data_disks }}"
create: True
lvnames: "{{ controller_lvm_group_data_lvs }}"
# List of disks for use by controller LVM data volume group. Default to an
# invalid value to require configuration.
controller_lvm_group_data_disks:
- changeme
# List of LVM logical volumes for the data volume group.
controller_lvm_group_data_lvs:
- "{{ controller_lvm_group_data_lv_docker_volumes }}"
# Docker volumes LVM backing volume.
controller_lvm_group_data_lv_docker_volumes:
lvname: docker-volumes
size: "{{ controller_lvm_group_data_lv_docker_volumes_size }}"
create: True
filesystem: "{{ controller_lvm_group_data_lv_docker_volumes_fs }}"
mount: True
mntp: /var/lib/docker/volumes
# Size of docker volumes LVM backing volume.
controller_lvm_group_data_lv_docker_volumes_size: 75%VG
# Filesystem for docker volumes LVM backing volume. ext4 allows for shrinking.
controller_lvm_group_data_lv_docker_volumes_fs: ext4
###############################################################################
# Controller node Ceph configuration.
# List of Ceph disks.
# The format is a list of dict like :
# - { osd: "/dev/sdb", journal: "/dev/sdc" }
# - { osd: "/dev/sdd" }
# Journal variable is not mandatory.
controller_ceph_disks: []
###############################################################################
# Controller node sysctl configuration.
# Dict of sysctl parameters to set.
controller_sysctl_parameters: {}
###############################################################################
# Controller node user configuration.
# List of users to create. This should be in a format accepted by the
# singleplatform-eng.users role.
controller_users: "{{ users_default }}"