From 40c79293e4744e994049ec23a73adb15e2abf29f Mon Sep 17 00:00:00 2001 From: Adolfo Duarte Date: Tue, 14 May 2019 19:15:14 -0700 Subject: [PATCH 1/4] dual stack tempalte with disabled firewall --- .../templates/input_model/cloudConfig.yml | 4 +- .../input_model/data/network_groups.yml | 29 ++++++- .../input_model_generator/vars/dualstack.yml | 39 ++++++++++ .../vars/templates/interface/dualstack.yml | 75 +++++++++++++++++++ .../vars/templates/network/dualstack.yml | 72 ++++++++++++++++++ .../vars/templates/service/dualstack.yml | 64 ++++++++++++++++ .../ardana/manual/generate-input-model.sh | 24 ++++++ .../jenkins/ardana/manual/input.yml.example | 3 + 8 files changed, 304 insertions(+), 6 deletions(-) create mode 100644 scripts/jenkins/ardana/ansible/roles/input_model_generator/vars/dualstack.yml create mode 100644 scripts/jenkins/ardana/ansible/roles/input_model_generator/vars/templates/interface/dualstack.yml create mode 100644 scripts/jenkins/ardana/ansible/roles/input_model_generator/vars/templates/network/dualstack.yml create mode 100644 scripts/jenkins/ardana/ansible/roles/input_model_generator/vars/templates/service/dualstack.yml create mode 100755 scripts/jenkins/ardana/manual/generate-input-model.sh diff --git a/scripts/jenkins/ardana/ansible/roles/input_model_generator/templates/input_model/cloudConfig.yml b/scripts/jenkins/ardana/ansible/roles/input_model_generator/templates/input_model/cloudConfig.yml index 3d8b4d08d9..dd33fc992c 100644 --- a/scripts/jenkins/ardana/ansible/roles/input_model_generator/templates/input_model/cloudConfig.yml +++ b/scripts/jenkins/ardana/ansible/roles/input_model_generator/templates/input_model/cloudConfig.yml @@ -1,5 +1,5 @@ # -# (c) Copyright 2018 SUSE LLC +# (c) Copyright 2018-2019 SUSE LLC # # 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 @@ -32,7 +32,7 @@ {% endfor %} firewall-settings: - enable: true + enable: {{ firewall_enabled|default('true') }} # log dropped packets logging: true diff --git a/scripts/jenkins/ardana/ansible/roles/input_model_generator/templates/input_model/data/network_groups.yml b/scripts/jenkins/ardana/ansible/roles/input_model_generator/templates/input_model/data/network_groups.yml index 9fac105c52..b3c9984728 100644 --- a/scripts/jenkins/ardana/ansible/roles/input_model_generator/templates/input_model/data/network_groups.yml +++ b/scripts/jenkins/ardana/ansible/roles/input_model_generator/templates/input_model/data/network_groups.yml @@ -1,5 +1,5 @@ # -# (c) Copyright 2018 SUSE LLC +# (c) Copyright 2018-2019 SUSE LLC # # 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 @@ -24,7 +24,19 @@ - name: {{ network_group.name|upper }} hostname-suffix: {{ network_group['hostname_suffix'] }} -{% if 'MANAGEMENT' in network_group['component_endpoints'] %} +{% if ('MANAGEMENT' and 'IPV4') in network_group['component_endpoints'] %} + + tls-component-endpoints: + # The following service endpoints are behind TLS in ipv4 + - mysql + - rabbitmq +{% elif ('MANAGEMENT' and 'IPV6') in network_group['component_endpoints'] %} + # We use the IPV6-MANAGEMENT network to derive server hostnames + hostname: true + tls-component-endpoints: + # The following service endpoints are behind TLS + - barbican-api +{% elif 'MANAGEMENT' in network_group['component_endpoints'] %} # We use the MANAGEMENT network to derive server hostnames hostname: true tls-component-endpoints: @@ -105,17 +117,26 @@ # - provider: ip-cluster +{% if ('MANAGEMENT' and 'IPV4') in network_group['component_endpoints'] %} + name: internal-lb-ipv4 + tls-components: + - mysql + - rabbitmq + cert-file: ardana-internal-ipv4-cert +{% else %} name: internal-lb tls-components: - default components: # These services do not currently support TLS - nova-metadata + cert-file: ardana-internal-cert +{% endif %} roles: - internal - admin - cert-file: ardana-internal-cert - # The ardana-internal-cert is a reserved name and + + # The ardana-internal-cert-x file is a reserved name and # this certificate will be autogenerated. Customer # can bring in their own cert with a different name # and follow the process described for the external diff --git a/scripts/jenkins/ardana/ansible/roles/input_model_generator/vars/dualstack.yml b/scripts/jenkins/ardana/ansible/roles/input_model_generator/vars/dualstack.yml new file mode 100644 index 0000000000..69cec736c2 --- /dev/null +++ b/scripts/jenkins/ardana/ansible/roles/input_model_generator/vars/dualstack.yml @@ -0,0 +1,39 @@ +# +# (c) Copyright 2019 SUSE LLC +# +# 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. +# +--- + +# Scenario parameters and default values +controllers: 3 +sles_computes: 1 +rhel_computes: 0 +swobj_devices: 0 + +scenario: + name: dualstack + cloud_name: dualstack + description: > + Dual stack scenario with rabbitmq and mysql on ipv4 and all other services on ipv6. + {{ clm_model }} CLM node, {{ controllers }} controller nodes, + {{ sles_computes }} SLES compute nodes and {{ rhel_computes }} RHEL compute nodes. + audit_enabled: False + use_cinder_volume_disk: False + use_glance_cache_disk: False + availability_zones: "{{ availability_zones }}" + + service_template: dualstack + network_template: dualstack + disk_template: compact + interface_template: dualstack diff --git a/scripts/jenkins/ardana/ansible/roles/input_model_generator/vars/templates/interface/dualstack.yml b/scripts/jenkins/ardana/ansible/roles/input_model_generator/vars/templates/interface/dualstack.yml new file mode 100644 index 0000000000..5dc7bc6300 --- /dev/null +++ b/scripts/jenkins/ardana/ansible/roles/input_model_generator/vars/templates/interface/dualstack.yml @@ -0,0 +1,75 @@ +# +# (c) Copyright 2019 SUSE LLC +# +# 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. +# +--- + +interface_models: + - name: CLM + service_groups: + - clm + network_interfaces: + - network_groups: + - MANAGEMENT + - network_groups: + - IPV4-MANAGEMENT + - forced_network_groups: + - EXTERNAL-API + + - name: CONTROLLER + service_groups: + - controller + - core + - lmm + - dbmq + - neutron + - swpac + - swobj + network_interfaces: + - network_groups: + - IPV4-MANAGEMENT + - bond: + mode: "active-backup" + num_interfaces: 2 + network_groups: + - MANAGEMENT + - network_groups: + - EXTERNAL-API + - EXTERNAL-VM + - network_groups: + - GUEST + - network_groups: + - SWIFT + - forced_network_groups: + - STORAGE + - network_groups: + - TENANT-VLAN + + - name: COMPUTE + service_groups: + - sles-compute + - rhel-compute + network_interfaces: + - network_groups: + - MANAGEMENT + - network_groups: + - IPV4-MANAGEMENT + - network_groups: + - EXTERNAL-VM + - network_groups: + - GUEST + - forced_network_groups: + - STORAGE + - network_groups: + - TENANT-VLAN diff --git a/scripts/jenkins/ardana/ansible/roles/input_model_generator/vars/templates/network/dualstack.yml b/scripts/jenkins/ardana/ansible/roles/input_model_generator/vars/templates/network/dualstack.yml new file mode 100644 index 0000000000..83770b2b2e --- /dev/null +++ b/scripts/jenkins/ardana/ansible/roles/input_model_generator/vars/templates/network/dualstack.yml @@ -0,0 +1,72 @@ +# +# (c) Copyright 2019 SUSE LLC +# +# 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. +# +--- + +network_groups: + - name: IPV4-MANAGEMENT + hostname_suffix: ipv4-mgmt + tagged_vlan: false + component_endpoints: + - IPV4 + - CLM + - MANAGEMENT + - INTERNAL-API + routes: + - default + + - name: MANAGEMENT + hostname_suffix: ipv6-mgmt + tagged_vlan: false + component_endpoints: + - IPV6 + - MANAGEMENT + - INTERNAL-API + - NEUTRON-VLAN + + - name: EXTERNAL-API + hostname_suffix: extapi + tagged_vlan: true + component_endpoints: + - EXTERNAL-API + + - name: EXTERNAL-VM + hostname_suffix: extvm + tagged_vlan: false + component_endpoints: + - NEUTRON-EXT + + - name: TENANT-VLAN + hostname_suffix: tvlan + tagged_vlan: false + component_endpoints: + - NEUTRON-VLAN + + - name: GUEST + hostname_suffix: guest + tagged_vlan: true + component_endpoints: + - NEUTRON-VXLAN + + - name: SWIFT + hostname_suffix: swift + tagged_vlan: true + component_endpoints: + - SWIFT + + - name: STORAGE + hostname_suffix: storage + tagged_vlan: true + component_endpoints: [] diff --git a/scripts/jenkins/ardana/ansible/roles/input_model_generator/vars/templates/service/dualstack.yml b/scripts/jenkins/ardana/ansible/roles/input_model_generator/vars/templates/service/dualstack.yml new file mode 100644 index 0000000000..4d837764c6 --- /dev/null +++ b/scripts/jenkins/ardana/ansible/roles/input_model_generator/vars/templates/service/dualstack.yml @@ -0,0 +1,64 @@ +# +# (c) Copyright 2019 SUSE LLC +# +# 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. +# +# +# Standard scenario service template with standalone CLM node: all services enabled +# and variable number of controller, SLES compute and RHEL compute nodes. +# +# Template parameters: +# controllers: number of controller nodes (default: 3) +# sles_computes: number of SLES compute nodes (default: 1) +# rhel_computes: number of RHEL compute nodes (default: 1) +# +--- + +service_groups: + - name: clm + type: cluster + prefix: c0 + heat_flavor_id: "{{ vcloud_flavor_name_prefix }}-compute" + member_count: '{{ (clm_model == "standalone") | ternary(1, 0) }}' + service_components: + - CLM + - name: controller + type: cluster + prefix: c1 + heat_flavor_id: "{{ vcloud_flavor_name_prefix }}-controller" + member_count: '{{ controllers|default(3) }}' + service_components: + - '{{ (clm_model == "integrated") | ternary("CLM", '') }}' + - CORE + - LMM + - DBMQ + - SWPAC + - NEUTRON + - SWOBJ + - name: sles-compute + type: resource + prefix: sles-comp + heat_flavor_id: "{{ vcloud_flavor_name_prefix }}-compute" + member_count: '{{ sles_computes|default(1) }}' + min_count: 0 + service_components: + - COMPUTE + - name: rhel-compute + type: resource + prefix: rhel-comp + distro_id: "{{ rhel_distro_id }}" + heat_flavor_id: "{{ vcloud_flavor_name_prefix }}-compute" + member_count: '{{ rhel_computes|default(1) }}' + min_count: 0 + service_components: + - RHEL_COMPUTE diff --git a/scripts/jenkins/ardana/manual/generate-input-model.sh b/scripts/jenkins/ardana/manual/generate-input-model.sh new file mode 100755 index 0000000000..c7d1e50c79 --- /dev/null +++ b/scripts/jenkins/ardana/manual/generate-input-model.sh @@ -0,0 +1,24 @@ +#!/bin/bash + +# (c) Copyright 2019 SUSE LLC +# +# 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. + +set -e + +source lib.sh + +validate_input +setup_ansible_venv +mitogen_enable +prepare_input_model diff --git a/scripts/jenkins/ardana/manual/input.yml.example b/scripts/jenkins/ardana/manual/input.yml.example index ffba0005f2..ce0bfdb268 100644 --- a/scripts/jenkins/ardana/manual/input.yml.example +++ b/scripts/jenkins/ardana/manual/input.yml.example @@ -155,6 +155,9 @@ swift_nodes: '' # disabled_services: 'monasca|logging|ceilometer|cassandra|kafka|spark|storm|freezer|octavia' disabled_services: '' +# Enable (true) or disable (false) firewall rules on control plane. Default is enable: true +firewall_enabled: 'true' + # Use ipv6 networks in the cloud input model. ipv6: false From 546292b701083ea0f3803cebaf7e271e6cbe38c0 Mon Sep 17 00:00:00 2001 From: Adolfo Duarte Date: Thu, 23 May 2019 16:44:11 -0700 Subject: [PATCH 2/4] default endpoints only in ipv6 management when ipv6 is being used for management all services should be place in that network by default. They should not be placed in the ipv4 network. --- .../templates/input_model/data/network_groups.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/scripts/jenkins/ardana/ansible/roles/input_model_generator/templates/input_model/data/network_groups.yml b/scripts/jenkins/ardana/ansible/roles/input_model_generator/templates/input_model/data/network_groups.yml index b3c9984728..40874d5164 100644 --- a/scripts/jenkins/ardana/ansible/roles/input_model_generator/templates/input_model/data/network_groups.yml +++ b/scripts/jenkins/ardana/ansible/roles/input_model_generator/templates/input_model/data/network_groups.yml @@ -46,7 +46,8 @@ - rabbitmq {% endif %} component-endpoints: -{% if 'MANAGEMENT' in network_group['component_endpoints'] %} +{% if ('MANAGEMENT' in network_group['component_endpoints'] + and 'IPV4' not in network_group['component_endpoints']) %} # # Management From 2ac1fe96a7d775192a3badf268149ef4bcebdd35 Mon Sep 17 00:00:00 2001 From: Adolfo Duarte Date: Thu, 23 May 2019 18:01:11 -0700 Subject: [PATCH 3/4] no route to other networks from ipv4 management --- .../templates/input_model/data/network_groups.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/scripts/jenkins/ardana/ansible/roles/input_model_generator/templates/input_model/data/network_groups.yml b/scripts/jenkins/ardana/ansible/roles/input_model_generator/templates/input_model/data/network_groups.yml index 40874d5164..c3a257af8a 100644 --- a/scripts/jenkins/ardana/ansible/roles/input_model_generator/templates/input_model/data/network_groups.yml +++ b/scripts/jenkins/ardana/ansible/roles/input_model_generator/templates/input_model/data/network_groups.yml @@ -88,7 +88,8 @@ {% endif %} {% set ns.routes=network_group.routes|default([]) %} -{% if 'MANAGEMENT' in network_group.component_endpoints %} +{% if ('MANAGEMENT' in network_group.component_endpoints + and 'IPV4' not in network_group['component_endpoints']) %} {% if bm_info is defined %} {% set _ = ns.routes.append('OCTAVIA-MGMT-NET') %} {% set _ = ns.routes.append('ILO') %} From 45bbd63a17798c6a73d0a6827ab7d0c2cd39c196 Mon Sep 17 00:00:00 2001 From: spacefito Date: Tue, 4 Jun 2019 16:19:46 -0700 Subject: [PATCH 4/4] example of ipv4 ipv6 dualstack input.yml --- .../manual/ipv4v6stack_input.yml.example | 188 ++++++++++++++++++ 1 file changed, 188 insertions(+) create mode 100644 scripts/jenkins/ardana/manual/ipv4v6stack_input.yml.example diff --git a/scripts/jenkins/ardana/manual/ipv4v6stack_input.yml.example b/scripts/jenkins/ardana/manual/ipv4v6stack_input.yml.example new file mode 100644 index 0000000000..398c596f87 --- /dev/null +++ b/scripts/jenkins/ardana/manual/ipv4v6stack_input.yml.example @@ -0,0 +1,188 @@ +--- +#============= Eng. Cloud =============# +# The OpenStack API credentials used to manage virtual clouds +# (leave empty to use the default shared 'cloud' ECP account - 'engcloud-cloud-ci') +os_cloud: 'engcloud-cloud-ci' + +# The virtual or hardware environment identifier. This field should either be set to one +# of the value that will identify the created virtual environment. +# WARNING: if a virtual environment associated with the supplied ardana_env already +# exists, it will be replaced. +ardana_env: 'yournamehere_delete' + +# If left unchecked, the cloud deployment steps will be skipped. This option can be used +# if you only need to set up the infrastructure and configure the cloud media and +# repositories, but skip the actual cloud deployment, e.g. for testing purposes. +deploy_cloud: true + + +#============= Repositories =============# +# The cloud repository (from provo-clouddata) to be used for testing. This value can take +# the following form: +# stagingcloud (Devel:Cloud:X:Staging) +# develcloud (Devel:Cloud:X) +# GM (official GM) +# GM+up (official GM plus Cloud-Updates) +# cloud9MX (cloud 9 milestones) +cloudsource: 'stagingcloud9' + +# Enable SLES/Cloud test update repos (the Cloud test update repos will be enabled only +# when cloudsource is GM based) +updates_test_enabled: false + +# Run ardana update after the cloud is deployed. If true the MU's will be applied only +# after the cloud is deployed. +update_after_deploy: false + +# Only valid if update_after_deploy is true. The cloud repository (from provo-clouddata) +# to be used to update. +# This opention takes the same values as cloudsource. +update_to_cloudsource: '' + +# List of maintenance update IDs separated by comma (eg. 7396,7487) +maint_updates: '' + +# A comma separated list of repository urls (ending with .repo) to be added on the deployer node. +extra_repos: '' + + +#============= Gerrit =============# +# A comma separated list of IDs for changes in gerrit.prv.suse.net to test. +# The patchset may be supplied as part of the change ID in the form: [/] +gerrit_change_ids: '' + +# Project in IBS that will act as the parent project for the newly generated test project. +# E.g. 'home:' +homeproject: '' + + +#============= Input model =============# +# The name of cloud product which will be deployed. Default is ardana and +# possible values are: +# - crowbar +# - ardana (default) +cloud_product: 'ardana' + +# The name of the one of the available 'ardana-ci' input models to use from +# the ardana-input-model git repository. +# NOTE: use this parameter only if you want to use an existing input model. +# To generate an input model instead, leave this field empty and use the +# 'scenario_name' parameter instead. +model: '' + +# The name of one of the available scenarios that can be used to generate input models. +# If this parameter is set, the following parameters may also be set to different values, +# to control various aspects of the generated input model: clm_model, controllers, core_nodes, +# lmm_nodes, dbmq_nodes, neutron_nodes, swift_nodes, sles_computes, rhel_computes and +# disabled_services. +# NOTE: use this parameter only if you want to use a generated input model. To use an existing +# input model instead, leave this field empty and use the 'model' parameter instead. +# Possible values: +# - entry-scale-kvm +# - mid-scale-kvm +# - standard +# - std-lmm +# - std-split +# - crowbar (for crowbar deployment) +scenario_name: 'dualstack' + +# Crowbar batch scenario yaml file path (relative to scripts/scenarios) +# Values examples: +# - cloud8/cloud8-2nodes-default.yml +# - cloud8/cloud8-5nodes-compute-ha.yml +# - cloud9/cloud9-2nodes-default.yml +# - cloud9/cloud9-5nodes-compute-ha.yml +# NOTE: propably will be removed when input generator works for crowbar +scenario_file: '' + +# The type of deployer node deployment to use for the generated input model. +# Possible values: +# - standalone: one node dedicated for CLM +# - integrated: the first controller node will also be used as a CLM node +# - crowbar: right now nothing will happen, it is just to distinguish +# Input model generator scenarios using this parameter : all +# NOTE: this parameter is used to generate input models. See the 'scenario_name' parameter +# about using one of the available input model generator scenarios. +clm_model: 'integrated' + +# The number of controller nodes in the generated input model (0-3). +# Input model generator scenarios using this parameter: standard, entry-scale-kvm. +controllers: '3' + +# The number of SLES compute nodes in the generated input model. +# Input model generator scenarios using this parameter: all +# NOTE: Currently all scenarios except crowbar uses 'sles_computes'. When deploying crowbar +# please change sles_computes into 'computes' variable in stead. +# computes: '1' +sles_computes: '1' + +# The number of RHEL (CentOS) compute nodes in the generated input model. +# Input model generator scenarios using this parameter: all +rhel_computes: '0' + +# The OS distribution and version to use for Ardana RHEL compute nodes. +# Possible values: +# - CentOS_73 +# - CentOS_75 +# - RHEL_73 (only for BM deployments) +# - RHEL_75 (only for BM deployments) +rhel_os: 'CentOS_75' + +# The number of OpenStack core services nodes in the generated input model (0-3). +# Input model generator scenarios using this parameter: mid-scale-kvm, std-split. +core_nodes: '' + +# The number of LMM services nodes in the generated input model (0-3). +# Input model generator scenarios using this parameter: mid-scale-kvm, std-split, +# std-lmm. +lmm_nodes: '' + +# The number of database & rabbitmq service nodes in the generated input model (0-3). +# Input model generator scenarios using this parameter: mid-scale-kvm, std-split. +dbmq_nodes: '' + +# The number of neutron network nodes in the generated input model (0-3). +# Input model generator scenarios using this parameter: mid-scale-kvm. +neutron_nodes: '' + +# The number of swift proxy/account/container/object service nodes in the generated input model (0-3). +# Input model generator scenarios using this parameter: mid-scale-kvm. +swift_nodes: '' + +# Regex matching service components and component groups to exclude from the generated input model. +# Input model generator scenarios using this parameter: all +# Example for disabling monasca, ceilometer, freezer and octavia set: +# disabled_services: 'monasca|logging|ceilometer|cassandra|kafka|spark|storm|freezer|octavia' +disabled_services: 'monasca|logging|ceilometer|cassandra|kafka|spark|storm|freezer|octavia|horizon|swift|magnum|manila|tempest|cinder|barbican|designate|heat|ironic|bind|ops-console-web' + +# Enable (true) or disable (false) firewall rules on control plane. Default is enable: true +firewall_enabled: 'true' + +# Use ipv6 networks in the cloud input model. +ipv6: true + + +#============= SES =============# +# Configure SES backend for glance, cinder, cinder-backup and nova +ses_enabled: false + +# Configure object-store service with RADOS Gateway. This only takes effect +# if ses_enabled is set to true. +ses_rgw_enabled: false + + +#============= Tests =============# +# Name of the filter file to use for tempest. +# Comma separated values will run tempest for each selected value. +# Use an empty value to skip running tempest. +tempest_filter_list: '' + +# Name of the QA tests to run. +# Comma separated values will run QA tests for each selected value. +# Use an empty value to skip running QA tests. +qa_test_list: '' + + +#============= Rocketchat =============# +# Notify RocketChat when deployment starts/finishes. +rc_notify: false