From cec52ed9d833f15898b01b605a641eb9c2c3c06b Mon Sep 17 00:00:00 2001 From: Mark Goddard Date: Mon, 27 Nov 2017 14:08:31 +0000 Subject: [PATCH 01/10] Synchronise configuration with kayobe @ 610c8a9566e73524f59cf781c09108fb90a0c3bd --- etc/kayobe/compute.yml | 101 +++++++++++++++++++++++++++++ etc/kayobe/docker.yml | 6 ++ etc/kayobe/inventory/groups | 27 ++++++++ etc/kayobe/inventory/hosts.example | 3 + etc/kayobe/kolla.yml | 22 +++++-- etc/kayobe/networks.yml | 7 ++ etc/kayobe/neutron.yml | 12 +++- etc/kayobe/node-exporter.yml | 10 +++ etc/kayobe/nova.yml | 12 ++++ etc/kayobe/seed-vm.yml | 6 ++ etc/kayobe/yum-cron.yml | 10 +++ etc/kayobe/yum.yml | 16 +++++ 12 files changed, 226 insertions(+), 6 deletions(-) create mode 100644 etc/kayobe/compute.yml create mode 100644 etc/kayobe/node-exporter.yml create mode 100644 etc/kayobe/nova.yml create mode 100644 etc/kayobe/yum-cron.yml create mode 100644 etc/kayobe/yum.yml diff --git a/etc/kayobe/compute.yml b/etc/kayobe/compute.yml new file mode 100644 index 0000000..18fa9a8 --- /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/docker.yml b/etc/kayobe/docker.yml index abc07a7..6f92d01 100644 --- a/etc/kayobe/docker.yml +++ b/etc/kayobe/docker.yml @@ -22,6 +22,12 @@ # argument). #docker_storage_volume_thinpool_meta_size: +# URL of docker registry +#docker_registry: + +# CA of docker registry +#docker_registry_ca: + ############################################################################### # 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 02c5956..e505054 100644 --- a/etc/kayobe/inventory/groups +++ b/etc/kayobe/inventory/groups @@ -1,9 +1,22 @@ # Kayobe groups inventory file. This file should generally not be modified. # If declares the top-level groups and sub-groups. +############################################################################### +# Seed groups. + [seed] # Empty group to provide declaration of seed group. +[seed-hypervisor] +# Empty group to provide declaration of seed-hypervisor group. + +[container-image-builders:children] +# Build container images on the seed by default. +seed + +############################################################################### +# Overcloud groups. + [controllers] # Empty group to provide declaration of controllers group. @@ -15,10 +28,17 @@ 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 groups. [docker:children] # Hosts in this group will have Docker installed. @@ -26,6 +46,13 @@ seed controllers network monitoring +compute + +############################################################################### +# Baremetal compute node groups. + +[baremetal-compute] +# Empty group to provide declaration of baremetal-compute group. ############################################################################### # Networking groups. diff --git a/etc/kayobe/inventory/hosts.example b/etc/kayobe/inventory/hosts.example index b3dc7a3..1cce1ce 100644 --- a/etc/kayobe/inventory/hosts.example +++ b/etc/kayobe/inventory/hosts.example @@ -18,6 +18,9 @@ localhost ansible_connection=local # Add controller nodes here if required. These hosts will provide the # OpenStack overcloud. +[baremetal-compute] +# Add baremetal compute nodes here if required. + [mgmt-switches] # Add management network switches here if required. diff --git a/etc/kayobe/kolla.yml b/etc/kayobe/kolla.yml index e678f05..c27a199 100644 --- a/etc/kayobe/kolla.yml +++ b/etc/kayobe/kolla.yml @@ -20,6 +20,9 @@ # Path to virtualenv in which to install kolla. #kolla_venv: +# Path in which to generate kolla configuration. +#kolla_build_config_path: + ############################################################################### # Kolla-ansible installation. @@ -39,24 +42,33 @@ # Path to virtualenv in which to install kolla-ansible. #kolla_ansible_venv: -############################################################################### -# Kolla & kolla-ansible configuration. - -# Path to Kolla configuration directory. +# Path to Kolla-ansible configuration directory. #kolla_config_path: -# Path to Kolla node custom configuration directory. +# Path to Kolla-ansible node custom configuration directory. #kolla_node_custom_config_path: +############################################################################### +# Kolla configuration. + # Kolla base container image distribution. #kolla_base_distro: # Kolla installation type: binary or source. #kolla_install_type: +# URL of docker registry to use for Kolla images. +#kolla_docker_registry: + # Docker namespace to use for Kolla images. #kolla_docker_namespace: +# Username to use to access a docker registry. +#kolla_docker_registry_username: + +# Password to use to access a docker registry. +#kolla_docker_registry_password: + # Kolla OpenStack release version. This should be a Docker image tag. #kolla_openstack_release: diff --git a/etc/kayobe/networks.yml b/etc/kayobe/networks.yml index 0d43d5e..cc5ec3b 100644 --- a/etc/kayobe/networks.yml +++ b/etc/kayobe/networks.yml @@ -150,6 +150,13 @@ # OVS bridge. #network_patch_suffix_ovs: +############################################################################### +# Network routing table configuration. + +# List of IP routing tables. Each item should be a dict containing 'id' and +# 'name' items. These tables will be added to /etc/iproute2/rt_tables. +#network_route_tables: + ############################################################################### # Dummy variable to allow Ansible to accept this file. workaround_ansible_issue_8743: yes diff --git a/etc/kayobe/neutron.yml b/etc/kayobe/neutron.yml index 190bc63..489ee8f 100644 --- a/etc/kayobe/neutron.yml +++ b/etc/kayobe/neutron.yml @@ -2,7 +2,8 @@ ############################################################################### # Neutron configuration. -# List of Neutron ML2 mechanism drivers to use. +# List of Neutron ML2 mechanism drivers to use. If unset the kolla-ansible +# defaults will be used. #kolla_neutron_ml2_mechanism_drivers: # List of Neutron ML2 type drivers to use. @@ -21,6 +22,9 @@ # List of Neutron ML2 extention drivers to use. #kolla_neutron_ml2_extension_drivers: +############################################################################### +# Neutron ML2 generic switch driver configuration. + # List of switches to configure for use by genericswitch ML2 mechanism driver. # Each item should be a dict containing the following items: # name: Hostname of the switch @@ -43,6 +47,12 @@ # secret: not currently supported #kolla_neutron_ml2_generic_switch_hosts: +# Dict containing additional configuration for switches managed by the +# genericswitch ML2 mechanism driver. For per-switch configuration of switches +# in kolla_neutron_ml2_generic_switch_hosts, this may be set as a group or +# host variable for the switch host. +#kolla_neutron_ml2_generic_switch_extra: + ############################################################################### # Dummy variable to allow Ansible to accept this file. workaround_ansible_issue_8743: yes diff --git a/etc/kayobe/node-exporter.yml b/etc/kayobe/node-exporter.yml new file mode 100644 index 0000000..ea1c6b2 --- /dev/null +++ b/etc/kayobe/node-exporter.yml @@ -0,0 +1,10 @@ +--- +############################################################################### +# Prometheus node exporter configuration. + +# Whether Prometheus node exporter is enabled. +#nodeexporter_enabled: + +############################################################################### +# Dummy variable to allow Ansible to accept this file. +workaround_ansible_issue_8743: yes diff --git a/etc/kayobe/nova.yml b/etc/kayobe/nova.yml new file mode 100644 index 0000000..6abf145 --- /dev/null +++ b/etc/kayobe/nova.yml @@ -0,0 +1,12 @@ +--- +############################################################################### +# Nova configuration. + +# Which host to use to deploy the nova-compute services for ironic. By default +# this is none and all hosts in the nova group are used instead - typically the +# controllers. +#kolla_nova_compute_ironic_host: + +############################################################################### +# Dummy variable to allow Ansible to accept this file. +workaround_ansible_issue_8743: yes diff --git a/etc/kayobe/seed-vm.yml b/etc/kayobe/seed-vm.yml index 710464f..897fe49 100644 --- a/etc/kayobe/seed-vm.yml +++ b/etc/kayobe/seed-vm.yml @@ -26,6 +26,12 @@ # Base image for the seed VM root volume. #seed_vm_root_image: +# Capacity of the seed VM data volume. +#seed_vm_data_capacity: + +# Format of the seed VM data volume. +#seed_vm_data_format: + ############################################################################### # Dummy variable to allow Ansible to accept this file. workaround_ansible_issue_8743: yes diff --git a/etc/kayobe/yum-cron.yml b/etc/kayobe/yum-cron.yml new file mode 100644 index 0000000..7ac502e --- /dev/null +++ b/etc/kayobe/yum-cron.yml @@ -0,0 +1,10 @@ +--- + +# Whether to enable Yum automatic updates. +#yum_cron_enabled: false +# Command to use for Yum automatic updates. +#yum_cron_update_cmd: 'security' + +############################################################################### +# Dummy variable to allow Ansible to accept this file. +workaround_ansible_issue_8743: yes diff --git a/etc/kayobe/yum.yml b/etc/kayobe/yum.yml new file mode 100644 index 0000000..5d0af6d --- /dev/null +++ b/etc/kayobe/yum.yml @@ -0,0 +1,16 @@ +--- + +# Whether or not to use a local Yum mirror. +#yum_use_local_mirror: false +# Mirror FQDN for Yum repos. +#yum_centos_mirror_host: 'mirror.centos.org' +# Mirror directory for Yum CentOS repos. +#yum_centos_mirror_directory: 'centos' +# Mirror FQDN for Yum EPEL repos. +#yum_epel_mirror_host: 'download.fedoraproject.org' +# Mirror directory for Yum EPEL repos. +#yum_epel_mirror_directory: 'pub/epel' + +############################################################################### +# Dummy variable to allow Ansible to accept this file. +workaround_ansible_issue_8743: yes From 663bf95e4c10eb92bbb4d0db5e5146d4999ac5f5 Mon Sep 17 00:00:00 2001 From: Mark Goddard Date: Fri, 1 Dec 2017 12:03:23 +0000 Subject: [PATCH 02/10] Synchronise with kayobe @ bb22c94067b281ceec362061dd72c20d18342ab5 --- etc/kayobe/inspector.yml | 5 ++++- etc/kayobe/networks.yml | 9 ++++++--- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/etc/kayobe/inspector.yml b/etc/kayobe/inspector.yml index 12ab7e5..dc41218 100644 --- a/etc/kayobe/inspector.yml +++ b/etc/kayobe/inspector.yml @@ -28,7 +28,10 @@ # Which MAC addresses to add as ports during introspection. One of 'all', # 'active' or 'pxe'. -#inspector_port_addition: +#inspector_add_ports: + +# Which ports to keep after introspection. One of 'all', 'present', or 'added'. +#inspector_keep_ports: # Whether to enable discovery of nodes not managed by Ironic. #inspector_enable_discovery: diff --git a/etc/kayobe/networks.yml b/etc/kayobe/networks.yml index cc5ec3b..5f61b2f 100644 --- a/etc/kayobe/networks.yml +++ b/etc/kayobe/networks.yml @@ -23,9 +23,12 @@ # Name of the network used to expose the internal OpenStack API endpoints. #internal_net_name: -# Name of the network used to expose the external OpenStack API endpoints and -# to provide external network access via Neutron. -#external_net_name: +# List of names of networks used to provide external network access via +# Neutron. +# Deprecated name: external_net_name +# If external_net_name is defined, external_net_names will default to a list +# containing one item, external_net_name. +#external_net_names: # Name of the network used to expose the public OpenStack API endpoints. #public_net_name: From d3c1c01b6f0bfc01dc2ecd8df3b594d78bd1e1fb Mon Sep 17 00:00:00 2001 From: Mark Goddard Date: Thu, 1 Mar 2018 18:30:27 +0000 Subject: [PATCH 03/10] Synchronise configuration with kayobe 3.1.0 --- etc/kayobe/cadvisor.yml | 10 +++ etc/kayobe/compute.yml | 10 +++ etc/kayobe/controllers.yml | 10 +++ etc/kayobe/grafana.yml | 47 ++++++++++++ etc/kayobe/inventory/hosts.example | 1 - etc/kayobe/ironic.yml | 7 ++ etc/kayobe/kolla.yml | 5 ++ etc/kayobe/overcloud.yml | 15 ++++ etc/kayobe/seed-hypervisor.yml | 7 ++ etc/kayobe/storage.yml | 111 +++++++++++++++++++++++++++++ 10 files changed, 222 insertions(+), 1 deletion(-) create mode 100644 etc/kayobe/cadvisor.yml create mode 100644 etc/kayobe/grafana.yml create mode 100644 etc/kayobe/storage.yml diff --git a/etc/kayobe/cadvisor.yml b/etc/kayobe/cadvisor.yml new file mode 100644 index 0000000..25e1db4 --- /dev/null +++ b/etc/kayobe/cadvisor.yml @@ -0,0 +1,10 @@ +--- +############################################################################### +# cAdvisor configuration. + +# Whether cAdvisor is enabled. +#cadvisor_enabled: + +############################################################################### +# Dummy variable to allow Ansible to accept this file. +workaround_ansible_issue_8743: yes diff --git a/etc/kayobe/compute.yml b/etc/kayobe/compute.yml index 18fa9a8..8d97cec 100644 --- a/etc/kayobe/compute.yml +++ b/etc/kayobe/compute.yml @@ -83,6 +83,16 @@ # Filesystem for docker volumes LVM backing volume. ext4 allows for shrinking. #compute_lvm_group_data_lv_docker_volumes_fs: +############################################################################### +# Compute 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. +#compute_ceph_disks: + ############################################################################### # Compute node sysctl configuration. diff --git a/etc/kayobe/controllers.yml b/etc/kayobe/controllers.yml index ed41272..0af11eb 100644 --- a/etc/kayobe/controllers.yml +++ b/etc/kayobe/controllers.yml @@ -86,6 +86,16 @@ # Filesystem for docker volumes LVM backing volume. ext4 allows for shrinking. #controller_lvm_group_data_lv_docker_volumes_fs: +############################################################################### +# 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. diff --git a/etc/kayobe/grafana.yml b/etc/kayobe/grafana.yml new file mode 100644 index 0000000..c86a26a --- /dev/null +++ b/etc/kayobe/grafana.yml @@ -0,0 +1,47 @@ +--- +############################################################################### +# Grafana configuration. + +# Grafana local admin user name. If you are deploying Monasca Grafana this +# should not conflict with an OpenStack user name. +#grafana_local_admin_user_name: + +# Path to git repo containing Grafana dashboards. Eg. +# https://github.com/stackhpc/grafana-reference-dashboards.git +#grafana_monitoring_node_dashboard_repo: + +# Dashboard repo version. Optional, defaults to 'HEAD'. +#grafana_monitoring_node_dashboard_repo_version: + +# Path to which Grafana dashboards will be cloned to a monitoring node +#grafana_monitoring_node_dashboard_repo_checkout_path: + +# The path, relative to the grafana_monitoring_node_dashboard_repo_checkout_path +# containing the dashboards. Eg. /prometheus/control_plane +#grafana_monitoring_node_dashboard_repo_path: + +# The Grafana organisation for the control plane. Note that for Monasca +# Grafana with domain support the format is: +# organisation_name@openstack_domain +#grafana_control_plane_organisation: + +# A dict of datasources to configure. See the stackhpc.grafana-conf role +# for all supported datasources. Example: +# +# grafana_datasources: +# monasca_api: +# port: 8082 +# host: monasca-api +# monasca_log_api: +# port: 5607 +# host: monasca-log-api +# elasticsearch: +# port: 9200 +# host: monasca-elasticsearch +# project_id: "some_id" +# +#grafana_datasources: + +############################################################################### +# Dummy variable to allow Ansible to accept this file. +workaround_ansible_issue_8743: yes diff --git a/etc/kayobe/inventory/hosts.example b/etc/kayobe/inventory/hosts.example index 1cce1ce..9d107ec 100644 --- a/etc/kayobe/inventory/hosts.example +++ b/etc/kayobe/inventory/hosts.example @@ -1,7 +1,6 @@ # Kayobe hosts inventory file. This file should be modified to define the hosts # and their top-level group membership. -[config-mgmt] # This host acts as the configuration management control host. This must be # localhost. localhost ansible_connection=local diff --git a/etc/kayobe/ironic.yml b/etc/kayobe/ironic.yml index 59f1d3e..0ee05b6 100644 --- a/etc/kayobe/ironic.yml +++ b/etc/kayobe/ironic.yml @@ -65,6 +65,13 @@ # raid_interface field set. #kolla_ironic_default_raid_interface: +# Specify the list of rescue interfaces to load during service initialization. +#kolla_ironic_enabled_rescue_interfaces: + +# Default rescue interface to be used for nodes that do not have +# rescue_interface field set. +#kolla_ironic_default_rescue_interface: + # Specify the list of storage interfaces to load during # service initialization. #kolla_ironic_enabled_storage_interfaces: diff --git a/etc/kayobe/kolla.yml b/etc/kayobe/kolla.yml index c27a199..1af896d 100644 --- a/etc/kayobe/kolla.yml +++ b/etc/kayobe/kolla.yml @@ -131,6 +131,10 @@ ############################################################################### # Kolla-ansible configuration. +# Virtualenv directory where Kolla-ansible's ansible modules will execute +# remotely on the target nodes. If None, no virtualenv will be used. +#kolla_ansible_target_venv: + # Whether TLS is enabled for the external API endpoints. #kolla_enable_tls_external: @@ -176,6 +180,7 @@ #kolla_enable_manila_backend_generic: #kolla_enable_manila_backend_hnas: #kolla_enable_mistral: +#kolla_enable_monasca: #kolla_enable_mongodb: #kolla_enable_multipathd: #kolla_enable_murano: diff --git a/etc/kayobe/overcloud.yml b/etc/kayobe/overcloud.yml index 0d54d0c..5c4828a 100644 --- a/etc/kayobe/overcloud.yml +++ b/etc/kayobe/overcloud.yml @@ -13,6 +13,21 @@ # should not be added to the inventory. #overcloud_group_hosts_map: +# To prevent some network issues you can choose to disable cloud-init +#disable_cloud_init: + +############################################################################### +# Overcloud host image configuration. + +# The CentOS cloud images from 7.2 (1511) onwards have a bogus name server +# entry in /etc/resolv.conf, 10.0.2.3. Cloud-init only appends name server +# entries to this file, and will not remove this bogus entry. Typically this +# leads to a delay of around 30 seconds when connecting via SSH, due to a +# timeout in NSS. The workaround employed here is to remove this bogus entry +# from the image using virt-customize, if it exists. See +# https://bugs.centos.org/view.php?id=14369. +#overcloud_host_image_workaround_resolv_enabled: + ############################################################################### # Dummy variable to allow Ansible to accept this file. workaround_ansible_issue_8743: yes diff --git a/etc/kayobe/seed-hypervisor.yml b/etc/kayobe/seed-hypervisor.yml index 968cec9..93ccd5d 100644 --- a/etc/kayobe/seed-hypervisor.yml +++ b/etc/kayobe/seed-hypervisor.yml @@ -1,4 +1,11 @@ --- +############################################################################### +# Seed hypervisor node configuration. + +# User with which to access the seed hypervisor via SSH during bootstrap, in +# order to setup the Kayobe user account. +#seed_hypervisor_bootstrap_user: + ############################################################################### # Seed hypervisor network interface configuration. diff --git a/etc/kayobe/storage.yml b/etc/kayobe/storage.yml new file mode 100644 index 0000000..e1e1795 --- /dev/null +++ b/etc/kayobe/storage.yml @@ -0,0 +1,111 @@ +--- +############################################################################### +# Storage node configuration. + +# User with which to access the storages via SSH during bootstrap, in order +# to setup the Kayobe user account. +#storage_bootstrap_user: + +############################################################################### +# Network interface attachments. + +# List of networks to which storage nodes are attached. +#storage_network_interfaces: + +# List of default networks to which storage nodes are attached. +#storage_default_network_interfaces: + +# List of extra networks to which storage nodes are attached. +#storage_extra_network_interfaces: + +############################################################################### +# Storage node BIOS configuration. + +# Dict of storage BIOS options. Format is same as that used by stackhpc.drac +# role. +#storage_bios_config: + +# 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: + +# 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 LVM configuration. + +# List of storage volume groups. See mrlesmithjr.manage-lvm role for +# format. +#storage_lvm_groups: + +# Default list of storage volume groups. See mrlesmithjr.manage-lvm role for +# format. +#storage_lvm_groups_default: + +# Additional list of storage volume groups. See mrlesmithjr.manage-lvm role +# for format. +#storage_lvm_groups_extra: + +# Storage LVM volume group for data. See mrlesmithjr.manage-lvm role for +# format. +#storage_lvm_group_data: + +# List of disks for use by storage LVM data volume group. Default to an +# invalid value to require configuration. +#storage_lvm_group_data_disks: + +# List of LVM logical volumes for the data volume group. +#storage_lvm_group_data_lvs: + +# Docker volumes LVM backing volume. +#storage_lvm_group_data_lv_docker_volumes: + +# Size of docker volumes LVM backing volume. +#storage_lvm_group_data_lv_docker_volumes_size: + +# Filesystem for docker volumes LVM backing volume. ext4 allows for shrinking. +#storage_lvm_group_data_lv_docker_volumes_fs: + +############################################################################### +# Storage 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. +#storage_ceph_disks: + +############################################################################### +# Storage node sysctl configuration. + +# Dict of sysctl parameters to set. +#storage_sysctl_parameters: + +############################################################################### +# Storage node user configuration. + +# List of users to create. This should be in a format accepted by the +# singleplatform-eng.users role. +#storage_users: + +############################################################################### +# Dummy variable to allow Ansible to accept this file. +workaround_ansible_issue_8743: yes From 9e42ca5a07d87060b1e70bba8a751fd031a71c7a Mon Sep 17 00:00:00 2001 From: Nick Jones Date: Thu, 5 Apr 2018 14:31:13 +0100 Subject: [PATCH 04/10] Override Kolla-Ansible and set the default Keystone token format to Fernet The addition of this setting overrides K-A's default for Keystone's token driver of UUID, and configures Fernet instead. Further discussion and backstory to this change is described [https://storyboard.openstack.org/#!/story/2001779](over here). --- etc/kayobe/kolla/globals.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/etc/kayobe/kolla/globals.yml b/etc/kayobe/kolla/globals.yml index 794c5fe..57af5bc 100644 --- a/etc/kayobe/kolla/globals.yml +++ b/etc/kayobe/kolla/globals.yml @@ -1,2 +1,8 @@ --- # Add extra Kolla global configuration here. + +# Although Kolla-Ansible provides full support for Fernet tokens, it still +# defaults to UUID. This setting overrides K-A and brings it in-line with +# Keystone's default. +# +keystone_token_provider: 'fernet' From 256ef9619dd23e457f0b69886252cabba4c155a2 Mon Sep 17 00:00:00 2001 From: Mark Goddard Date: Wed, 2 May 2018 15:02:22 +0100 Subject: [PATCH 05/10] Synchronise with kayobe @ 1c976bc125784fa41503ebf2cd7aea5fe4a17170 --- etc/kayobe/docker.yml | 3 +++ etc/kayobe/kolla.yml | 14 +++++++++++--- etc/kayobe/yum.yml | 11 +++++++++++ 3 files changed, 25 insertions(+), 3 deletions(-) diff --git a/etc/kayobe/docker.yml b/etc/kayobe/docker.yml index 6f92d01..6ee82d5 100644 --- a/etc/kayobe/docker.yml +++ b/etc/kayobe/docker.yml @@ -28,6 +28,9 @@ # CA of docker registry #docker_registry_ca: +# Enable live-restore on docker daemon +#docker_daemon_live_restore: + ############################################################################### # Dummy variable to allow Ansible to accept this file. workaround_ansible_issue_8743: yes diff --git a/etc/kayobe/kolla.yml b/etc/kayobe/kolla.yml index 1af896d..568e71c 100644 --- a/etc/kayobe/kolla.yml +++ b/etc/kayobe/kolla.yml @@ -138,9 +138,6 @@ # Whether TLS is enabled for the external API endpoints. #kolla_enable_tls_external: -# Path to external API certificate. -#kolla_external_fqdn_cert: - # Whether debug logging is enabled. #kolla_openstack_logging_debug: @@ -222,6 +219,17 @@ # passwords file. #kolla_ansible_custom_passwords: +############################################################################### +# TLS certificate bundle management + +# Optionally copy a TLS certificate bundle into place. +# +# When enabled, this will copy the contents of kolla_tls_cert into place for +# use by HAproxy. +# +# Note that this should be formatted as a literal style block scalar. +#kolla_tls_cert: + ############################################################################### # Dummy variable to allow Ansible to accept this file. workaround_ansible_issue_8743: yes diff --git a/etc/kayobe/yum.yml b/etc/kayobe/yum.yml index 5d0af6d..66832d3 100644 --- a/etc/kayobe/yum.yml +++ b/etc/kayobe/yum.yml @@ -10,6 +10,17 @@ #yum_epel_mirror_host: 'download.fedoraproject.org' # Mirror directory for Yum EPEL repos. #yum_epel_mirror_directory: 'pub/epel' +# A dict of custom repositories. +# You can see params on +# http://docs.ansible.com/ansible/latest/modules/yum_repository_module.html. +# For example: +# yum_custom_repos: +# reponame: +# baseurl: http://repo +# file: myrepo +# gpgkey: http://gpgkey +# gpgcheck: yes +#yum_custom_repos: ############################################################################### # Dummy variable to allow Ansible to accept this file. From c0dc6c3d09995dbf6b34f0fe9d69402fb3397108 Mon Sep 17 00:00:00 2001 From: Mark Goddard Date: Tue, 15 May 2018 09:51:49 +0100 Subject: [PATCH 06/10] Update README text links Synchronises with the README in kayobe, and updates links. --- README.rst | 38 ++++++++++++++++++++++++++++---------- 1 file changed, 28 insertions(+), 10 deletions(-) diff --git a/README.rst b/README.rst index 8cfde89..b14b533 100644 --- a/README.rst +++ b/README.rst @@ -3,16 +3,34 @@ Kayobe Configuration ==================== This repository provides configuration for the `kayobe -`_ project. It is intended to encourage +`_ project. It is intended to encourage version control of site configuration. -Kayobe is an open source tool for automating deployment of Scientific OpenStack -onto a set of bare metal servers. Kayobe is composed of Ansible playbooks, a -python module, and makes heavy use of the OpenStack kolla project. Kayobe aims -to complement the kolla-ansible project, providing an opinionated yet highly -configurable OpenStack deployment and automation of many operational -procedures. +Kayobe enables deployment of containerised OpenStack to bare metal. -* Documentation: https://github.com/stackhpc/kayobe/tree/master/doc -* Source: https://github.com/stackhpc/kayobe -* Bugs: https://github.com/stackhpc/kayobe/issues +Containers offer a compelling solution for isolating OpenStack services, but +running the control plane on an orchestrator such as Kubernetes or Docker +Swarm adds significant complexity and operational overheads. + +The hosts in an OpenStack control plane must somehow be provisioned, but +deploying a secondary OpenStack cloud to do this seems like overkill. + +Kayobe stands on the shoulders of giants: + +* OpenStack bifrost discovers and provisions the cloud +* OpenStack kolla builds container images for OpenStack services +* OpenStack kolla-ansible delivers painless deployment and upgrade of + containerised OpenStack services + +To this solid base, kayobe adds: + +* Configuration of cloud host OS & flexible networking +* Management of physical network devices +* A friendly openstack-like CLI + +All this and more, automated from top to bottom using Ansible. + +* Documentation: https://kayobe.readthedocs.io/en/latest/ +* Source: https://git.openstack.org/cgit/openstack/kayobe +* Bugs: https://storyboard.openstack.org/ +* IRC: #openstack-kayobe From f3aac5c4d0aebad751ef9ab29a45ae89e76ce297 Mon Sep 17 00:00:00 2001 From: Mark Goddard Date: Tue, 15 May 2018 09:58:22 +0100 Subject: [PATCH 07/10] Add tox.ini with pep8 environment that runs yamllint Also fixes one lint failure - a trailing space in monitoring.yml. --- .gitignore | 36 +++++++++++++++++++++++++++++------- .yamllint | 12 ++++++++++++ etc/kayobe/monitoring.yml | 2 +- setup.cfg | 14 ++++++++++++++ setup.py | 22 ++++++++++++++++++++++ test-requirements.txt | 5 +++++ tox.ini | 14 ++++++++++++++ 7 files changed, 97 insertions(+), 8 deletions(-) create mode 100644 .yamllint create mode 100644 setup.cfg create mode 100644 setup.py create mode 100644 test-requirements.txt create mode 100644 tox.ini diff --git a/.gitignore b/.gitignore index eb61b58..713cead 100644 --- a/.gitignore +++ b/.gitignore @@ -1,11 +1,33 @@ -# vim and emacs temp files -*~ -[._]*.s[a-w][a-z] - -# Byte-compiled / optimized / DLL files -__pycache__/ *.py[cod] -*$py.class + +# C extensions +*.so + +# Packages +*.egg* +*.egg-info +dist +build +eggs +parts +bin +var +sdist +develop-eggs +.installed.cfg +lib +lib64 + +# Installer logs +pip-log.txt + +# Unit test / coverage reports +.tox + +# Editors +*~ +.*.swp +.*sw? # Files generated by Ansible ansible/*.retry diff --git a/.yamllint b/.yamllint new file mode 100644 index 0000000..479488d --- /dev/null +++ b/.yamllint @@ -0,0 +1,12 @@ +extends: default + +rules: + braces: + max-spaces-inside: 1 + level: error + brackets: + max-spaces-inside: 1 + level: error + comments: + require-starting-space: false + truthy: disable diff --git a/etc/kayobe/monitoring.yml b/etc/kayobe/monitoring.yml index a5dabbf..0b64855 100644 --- a/etc/kayobe/monitoring.yml +++ b/etc/kayobe/monitoring.yml @@ -23,7 +23,7 @@ # Dict of monitoring node BIOS options. Format is same as that used by # stackhpc.drac role. -#monitoring_bios_config: +#monitoring_bios_config: # Dict of default monitoring node BIOS options. Format is same as that used by # stackhpc.drac role. diff --git a/setup.cfg b/setup.cfg new file mode 100644 index 0000000..f2954bb --- /dev/null +++ b/setup.cfg @@ -0,0 +1,14 @@ +[metadata] +name = kayobe-config +summary = Configuration for Kayobe +description-file = + README.rst +author = OpenStack +author-email = openstack-dev@lists.openstack.org +home-page = https://kayobe.readthedocs.io/en/latest/ +classifier = + Environment :: OpenStack + Intended Audience :: Information Technology + Intended Audience :: System Administrators + License :: OSI Approved :: Apache Software License + Operating System :: POSIX :: Linux diff --git a/setup.py b/setup.py new file mode 100644 index 0000000..70c2b3f --- /dev/null +++ b/setup.py @@ -0,0 +1,22 @@ +#!/usr/bin/env python +# Copyright (c) 2013 Hewlett-Packard Development Company, L.P. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or +# implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# THIS FILE IS MANAGED BY THE GLOBAL REQUIREMENTS REPO - DO NOT EDIT +import setuptools + +setuptools.setup( + setup_requires=['pbr'], + pbr=True) diff --git a/test-requirements.txt b/test-requirements.txt new file mode 100644 index 0000000..333d318 --- /dev/null +++ b/test-requirements.txt @@ -0,0 +1,5 @@ +# The order of packages is significant, because pip processes them in the order +# of appearance. Changing the order has an impact on the overall integration +# process, which may cause wedges in the gate later. + +yamllint # GPLv3 diff --git a/tox.ini b/tox.ini new file mode 100644 index 0000000..c6a9b8c --- /dev/null +++ b/tox.ini @@ -0,0 +1,14 @@ +[tox] +minversion = 2.0 +envlist = pep8 +skipsdist = True + +[testenv] +install_command = pip install {opts} {packages} +deps = + -c{env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt?h=stable/queens} + -r{toxinidir}/test-requirements.txt + +[testenv:pep8] +commands = + yamllint etc/kayobe From c9af3d9f2d3b9c7eda73bab2080dee5bd76bc1a9 Mon Sep 17 00:00:00 2001 From: Mark Goddard Date: Tue, 15 May 2018 09:59:57 +0100 Subject: [PATCH 08/10] Add git review file --- .gitreview | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 .gitreview diff --git a/.gitreview b/.gitreview new file mode 100644 index 0000000..d316b45 --- /dev/null +++ b/.gitreview @@ -0,0 +1,4 @@ +[gerrit] +host=review.openstack.org +port=29418 +project=openstack/kayobe-config.git From de867f93e2b0d3c93d39259d0ed40be13903720d Mon Sep 17 00:00:00 2001 From: Mark Goddard Date: Tue, 15 May 2018 10:00:32 +0100 Subject: [PATCH 09/10] Add Zuul configuration Currently includes one pep8 job, used for check and gate. Change-Id: I8ed2643ce45c9621ecfe15d5d38925cb9db8be7a Story: 2001637 Task: 19737 --- zuul.d/project.yaml | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 zuul.d/project.yaml diff --git a/zuul.d/project.yaml b/zuul.d/project.yaml new file mode 100644 index 0000000..4cee999 --- /dev/null +++ b/zuul.d/project.yaml @@ -0,0 +1,10 @@ +--- +- project: + check: + jobs: + - openstack-tox-pep8 + + gate: + queue: kayobe + jobs: + - openstack-tox-pep8 From 962edb4f6a816e3fc9d2b5ddb0fc711b3bfe063d Mon Sep 17 00:00:00 2001 From: zhulingjie Date: Thu, 30 Aug 2018 07:26:56 -0400 Subject: [PATCH 10/10] Update the bug link for more accuracy Change-Id: I70f3243a22383049781386d706a8dcb4dfb928d8 --- README.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.rst b/README.rst index b14b533..33d297c 100644 --- a/README.rst +++ b/README.rst @@ -32,5 +32,5 @@ All this and more, automated from top to bottom using Ansible. * Documentation: https://kayobe.readthedocs.io/en/latest/ * Source: https://git.openstack.org/cgit/openstack/kayobe -* Bugs: https://storyboard.openstack.org/ +* Bugs: https://storyboard.openstack.org/#!/project/openstack/kayobe-config * IRC: #openstack-kayobe