---
###############################################################################
# Storage node configuration.

# User with which to access the storages via SSH during bootstrap, in order
# to setup the Kayobe user account. Default is {{ os_distribution }}.
storage_bootstrap_user: "{{ os_distribution }}"

###############################################################################
# Storage network interface configuration.

# List of networks to which storage nodes are attached.
storage_network_interfaces: >
  {{ (storage_default_network_interfaces +
      storage_extra_network_interfaces +
      ([swift_storage_net_name]
       if storage_needs_swift_network else []) +
      ([swift_storage_replication_net_name]
       if storage_needs_swift_replication_network else [])) | select | unique | list }}

# List of default networks to which storage nodes are attached.
storage_default_network_interfaces: >
  {{ [admin_oc_net_name,
      internal_net_name,
      storage_mgmt_net_name,
      storage_net_name] | select | unique | list }}

# List of extra networks to which storage nodes are attached.
storage_extra_network_interfaces: []

# Whether this host requires access to Swift networks.
storage_needs_swift_network: >-
  {{ kolla_enable_swift | bool and
     inventory_hostname in query('inventory_hostnames', swift_hosts) }}

storage_needs_swift_replication_network: >-
  {{ kolla_enable_swift | bool and
     inventory_hostname in query('inventory_hostnames', swift_hosts) }}

###############################################################################
# Storage node BIOS configuration.

# Dict of storage BIOS options. Format is same as that used by stackhpc.drac
# role.
storage_bios_config: "{{ storage_bios_config_default | combine(storage_bios_config_extra) }}"

# Dict of default storage BIOS options. Format is same as that used by
# stackhpc.drac role.
storage_bios_config_default: {}

# Dict of additional storage BIOS options. Format is same as that used by
# stackhpc.drac role.
storage_bios_config_extra: {}

###############################################################################
# Storage node RAID configuration.

# List of storage RAID volumes. Format is same as that used by stackhpc.drac
# role.
storage_raid_config: "{{ storage_raid_config_default + storage_raid_config_extra }}"

# List of default storage RAID volumes. Format is same as that used by
# stackhpc.drac role.
storage_raid_config_default: []

# List of additional storage RAID volumes. Format is same as that used by
# stackhpc.drac role.
storage_raid_config_extra: []

###############################################################################
# Storage node software RAID configuration.

# List of software RAID arrays. See mrlesmithjr.mdadm role for format.
storage_mdadm_arrays: []

###############################################################################
# Storage node encryption configuration.

# List of block devices to encrypt. See stackhpc.luks role for format.
storage_luks_devices: []

###############################################################################
# Storage node LVM configuration.

# List of storage volume groups. See mrlesmithjr.manage_lvm role for
# format.
storage_lvm_groups: "{{ storage_lvm_groups_default + storage_lvm_groups_extra }}"

# Default list of storage volume groups. See mrlesmithjr.manage_lvm role for
# format.
storage_lvm_groups_default: "{{ [storage_lvm_group_data] if storage_lvm_group_data_enabled | bool else [] }}"

# Additional list of storage volume groups. See mrlesmithjr.manage_lvm role
# for format.
storage_lvm_groups_extra: []

# Whether a 'data' LVM volume group should exist on storage hosts. By default
# this contains a 'docker-volumes' logical volume for Docker volume storage.
# Default is false.
storage_lvm_group_data_enabled: false

# Storage LVM volume group for data. See mrlesmithjr.manage_lvm role for
# format.
storage_lvm_group_data:
  vgname: data
  disks: "{{ storage_lvm_group_data_disks }}"
  create: True
  lvnames: "{{ storage_lvm_group_data_lvs }}"

# List of disks for use by storage LVM data volume group. Default to an
# invalid value to require configuration.
storage_lvm_group_data_disks:
  - changeme

# List of LVM logical volumes for the data volume group.
storage_lvm_group_data_lvs:
  - "{{ storage_lvm_group_data_lv_docker_volumes }}"

# Docker volumes LVM backing volume.
storage_lvm_group_data_lv_docker_volumes:
  lvname: docker-volumes
  size: "{{ storage_lvm_group_data_lv_docker_volumes_size }}"
  create: True
  filesystem: "{{ storage_lvm_group_data_lv_docker_volumes_fs }}"
  mount: True
  mntp: /var/lib/docker/volumes

# Size of docker volumes LVM backing volume.
storage_lvm_group_data_lv_docker_volumes_size: 75%VG

# Filesystem for docker volumes LVM backing volume. ext4 allows for shrinking.
storage_lvm_group_data_lv_docker_volumes_fs: ext4

###############################################################################
# Storage node sysctl configuration.

# Dict of sysctl parameters to set.
storage_sysctl_parameters: {}

###############################################################################
# Storage node tuned configuration.

# Builtin tuned profile to use. Format is same as that used by giovtorres.tuned
# role. Default is throughput-performance.
storage_tuned_active_builtin_profile: "throughput-performance"

###############################################################################
# Storage node user configuration.

# List of users to create. This should be in a format accepted by the
# singleplatform-eng.users role.
storage_users: "{{ users_default }}"

###############################################################################
# Storage node firewalld configuration.

# Whether to install and enable firewalld.
storage_firewalld_enabled: false

# A list of zones to create. Each item is a dict containing a 'zone' item.
storage_firewalld_zones: []

# A firewalld zone to set as the default. Default is unset, in which case the
# default zone will not be changed.
storage_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
storage_firewalld_rules: []

###############################################################################
# Storage node swap configuration.

# List of swap devices. Each item is a dict containing a 'device' item.
storage_swap: []
