---
###############################################################################
# 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,
      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 }}"
