diff --git a/ansible/group_vars/all/compute b/ansible/group_vars/all/compute new file mode 100644 index 000000000..0c3878052 --- /dev/null +++ b/ansible/group_vars/all/compute @@ -0,0 +1,115 @@ +--- +############################################################################### +# Compute node configuration. + +# User with which to access the computes via SSH during bootstrap, in order +# to setup the Kayobe user account. +compute_bootstrap_user: "{{ lookup('env', 'USER') }}" + +############################################################################### +# Compute network interface configuration. + +# List of networks to which compute nodes are attached. +compute_network_interfaces: > + {{ (compute_default_network_interfaces + + compute_extra_network_interfaces) | unique | list }} + +# List of default networks to which compute nodes are attached. +compute_default_network_interfaces: > + {{ [provision_oc_net_name, + internal_net_name, + storage_net_name] | 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 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 }}" + +# Additional list of compute volume groups. See mrlesmithjr.manage-lvm role +# for format. +compute_lvm_groups_extra: [] + +# 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 | join(',') }}" + 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 user configuration. + +# List of users to create. This should be in a format accepted by the +# singleplatform-eng.users role. +compute_users: "{{ users_default }}" diff --git a/ansible/group_vars/all/kolla b/ansible/group_vars/all/kolla index e1bacfe25..f60988934 100644 --- a/ansible/group_vars/all/kolla +++ b/ansible/group_vars/all/kolla @@ -213,6 +213,9 @@ kolla_overcloud_inventory_top_level_group_map: network: groups: - network + compute: + groups: + - compute # List of names of top level kolla-ansible groups. Any of these groups which # have no hosts mapped to them will be provided with an empty group definition. diff --git a/ansible/group_vars/compute/ansible-user b/ansible/group_vars/compute/ansible-user new file mode 100644 index 000000000..5f74de0c1 --- /dev/null +++ b/ansible/group_vars/compute/ansible-user @@ -0,0 +1,7 @@ +--- +# User with which to access the computes via SSH. +ansible_user: "{{ kayobe_ansible_user }}" + +# User with which to access the computes before the kayobe_ansible_user +# account has been created. +bootstrap_user: "{{ compute_bootstrap_user }}" diff --git a/ansible/group_vars/compute/bios b/ansible/group_vars/compute/bios new file mode 100644 index 000000000..b53bc641c --- /dev/null +++ b/ansible/group_vars/compute/bios @@ -0,0 +1,7 @@ +--- +############################################################################### +# Compute node BIOS configuration. + +# Dict of monitoring node BIOS options. Format is same as that used by +# stackhpc.drac role. +bios_config: "{{ compute_bios_config }}" diff --git a/ansible/group_vars/compute/lvm b/ansible/group_vars/compute/lvm new file mode 100644 index 000000000..5c6889ec5 --- /dev/null +++ b/ansible/group_vars/compute/lvm @@ -0,0 +1,6 @@ +--- +############################################################################### +# Compute node LVM configuration. + +# List of LVM volume groups. +lvm_groups: "{{ compute_lvm_groups }}" diff --git a/ansible/group_vars/compute/network b/ansible/group_vars/compute/network new file mode 100644 index 000000000..94810f07a --- /dev/null +++ b/ansible/group_vars/compute/network @@ -0,0 +1,6 @@ +--- +############################################################################### +# Network interface attachments. + +# List of networks to which these nodes are attached. +network_interfaces: "{{ compute_network_interfaces | unique | list }}" diff --git a/ansible/group_vars/compute/raid b/ansible/group_vars/compute/raid new file mode 100644 index 000000000..598d0b4bf --- /dev/null +++ b/ansible/group_vars/compute/raid @@ -0,0 +1,7 @@ +--- +############################################################################### +# Compute node RAID configuration. + +# List of compute node RAID volumes. Format is same as that used by +# stackhpc.drac role. +raid_config: "{{ compute_raid_config }}" diff --git a/ansible/group_vars/compute/sysctl b/ansible/group_vars/compute/sysctl new file mode 100644 index 000000000..16cf547d9 --- /dev/null +++ b/ansible/group_vars/compute/sysctl @@ -0,0 +1,3 @@ +--- +# Dict of sysctl parameters to set. +sysctl_parameters: "{{ compute_sysctl_parameters }}" diff --git a/ansible/group_vars/compute/users b/ansible/group_vars/compute/users new file mode 100644 index 000000000..5e0c81588 --- /dev/null +++ b/ansible/group_vars/compute/users @@ -0,0 +1,4 @@ +--- +# List of users to create. This should be in a format accepted by the +# singleplatform-eng.users role. +users: "{{ compute_users }}" diff --git a/etc/kayobe/compute.yml b/etc/kayobe/compute.yml new file mode 100644 index 000000000..18fa9a878 --- /dev/null +++ b/etc/kayobe/compute.yml @@ -0,0 +1,101 @@ +--- +############################################################################### +# Compute node configuration. + +# User with which to access the computes via SSH during bootstrap, in order +# to setup the Kayobe user account. +#compute_bootstrap_user: + +############################################################################### +# Network interface attachments. + +# List of networks to which compute nodes are attached. +#compute_network_interfaces: + +# List of default networks to which compute nodes are attached. +#compute_default_network_interfaces: + +# 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: + +# 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: + +# 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 LVM configuration. + +# List of compute volume groups. See mrlesmithjr.manage-lvm role for +# format. +#compute_lvm_groups: + +# Default list of compute volume groups. See mrlesmithjr.manage-lvm role for +# format. +#compute_lvm_groups_default: + +# Additional list of compute volume groups. See mrlesmithjr.manage-lvm role +# for format. +#compute_lvm_groups_extra: + +# Compute LVM volume group for data. See mrlesmithjr.manage-lvm role for +# format. +#compute_lvm_group_data: + +# List of disks for use by compute LVM data volume group. Default to an +# invalid value to require configuration. +#compute_lvm_group_data_disks: + +# List of LVM logical volumes for the data volume group. +#compute_lvm_group_data_lvs: + +# Docker volumes LVM backing volume. +#compute_lvm_group_data_lv_docker_volumes: + +# Size of docker volumes LVM backing volume. +#compute_lvm_group_data_lv_docker_volumes_size: + +# Filesystem for docker volumes LVM backing volume. ext4 allows for shrinking. +#compute_lvm_group_data_lv_docker_volumes_fs: + +############################################################################### +# Compute node sysctl configuration. + +# Dict of sysctl parameters to set. +#compute_sysctl_parameters: + +############################################################################### +# Compute node user configuration. + +# List of users to create. This should be in a format accepted by the +# singleplatform-eng.users role. +#compute_users: + +############################################################################### +# Dummy variable to allow Ansible to accept this file. +workaround_ansible_issue_8743: yes diff --git a/etc/kayobe/inventory/group_vars/compute/network-interfaces b/etc/kayobe/inventory/group_vars/compute/network-interfaces new file mode 100644 index 000000000..421f69d39 --- /dev/null +++ b/etc/kayobe/inventory/group_vars/compute/network-interfaces @@ -0,0 +1,27 @@ +--- +############################################################################### +# Network interface definitions for the compute group. + +# Overcloud provisioning network IP information. +# provision_oc_net_interface: +# provision_oc_net_bridge_ports: +# provision_oc_net_bond_slaves: + +# Internal network IP information. +# internal_net_interface: +# internal_net_bridge_ports: +# internal_net_bond_slaves: + +# External network IP information. +# external_net_interface: +# external_net_bridge_ports: +# external_net_bond_slaves: + +# Storage network IP information. +# storage_net_interface: +# storage_net_bridge_ports: +# storage_net_bond_slaves: + +############################################################################### +# Dummy variable to allow Ansible to accept this file. +workaround_ansible_issue_8743: yes diff --git a/etc/kayobe/inventory/groups b/etc/kayobe/inventory/groups index 02c5956d4..e7aef20e3 100644 --- a/etc/kayobe/inventory/groups +++ b/etc/kayobe/inventory/groups @@ -15,10 +15,14 @@ controllers [monitoring] # Empty group to provide declaration of monitoring group. +[compute] +# Empty group to provide declaration of compute group. + [overcloud:children] controllers network monitoring +compute [docker:children] # Hosts in this group will have Docker installed. @@ -26,6 +30,7 @@ seed controllers network monitoring +compute ############################################################################### # Networking groups.