Eduardo Olivares 46e40755d4 Add config dict dataplane_podified_services
Method reset_node_service uses "grep" to find the name of the services
that tests restart with systemctl. We have identified some scenarios
where this is not valid. Due to that, this patch adds a configurable
dictionary with the name of those services. If a service is not
included in this dictionary, the grep method is used.

Closes-Bug: #2095404

Change-Id: I131207361e093deb02f71d98a69602f4368a6413
2025-01-21 11:57:23 +01:00

215 lines
11 KiB
Python

# Copyright 2019 Red Hat, Inc.
# All Rights Reserved.
#
# 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.
from oslo_config import cfg
whitebox_neutron_plugin_options = cfg.OptGroup(
name="whitebox_neutron_plugin_options",
title="Whitebox neutron tempest plugin config options"
)
WhiteboxNeutronPluginOptions = [
cfg.BoolOpt('exec_on_tester',
default=True,
help='Specify whether to run validated commands on current '
'testing node or other host using ssh.'),
cfg.StrOpt('tester_ip',
default='127.0.0.1',
help='IP of host to execute validated commands.'),
cfg.StrOpt('tester_user',
default='zuul',
help='User at host to execute validated commands.'),
cfg.StrOpt('tester_pass',
default='12345678',
help='Password at host to execute validated commands.'),
cfg.StrOpt('tester_key_file',
default='',
help='Key file to access host to execute validated commands.'),
cfg.StrOpt('openstack_type',
default='podified',
help='Type of openstack deployment, '
'e.g. devstack, podified'),
cfg.StrOpt('pki_private_key',
default='/etc/pki/tls/private/ovn_controller.key',
help='File with private key. Need for TLS-everywhere '
'environments.'),
cfg.StrOpt('pki_certificate',
default='/etc/pki/tls/certs/ovn_controller.crt',
help='File with certificate for private key. Need for '
'TLS-everywhere environments.'),
cfg.StrOpt('pki_ca_cert',
default='/etc/ipa/ca.crt',
help='File with peer CA certificate. Need for TLS-everywhere '
'environments.'),
cfg.StrOpt('default_instance_interface',
default='eth0',
help='Default first interface name used in VM instances'
'Typical values are eth0, ens5, etc'),
cfg.IntOpt('mcast_groups_count',
default=1,
help='How many groups to use in multicast tests. Default value '
'of 1 is for environments with low resources. '
'Recommended value is 2.'),
cfg.IntOpt('mcast_receivers_count',
default=1,
help='How many receivers to use in multicast tests. Default '
'value of 1 is for environments with low resources. '
'Recommended value is 2.'),
cfg.IntOpt('external_igmp_querier_period',
default=170,
help='Time in seconds external igmp querier is sending its '
'periodical queries'),
cfg.BoolOpt('run_traffic_flow_tests',
default=True,
help='Specify explicitly whether to run traffic flow tests.'),
cfg.BoolOpt('provroutednetwork_support',
default=False,
help='Boolean that specifies if Provider Routed Networks'
'are supported or not'),
cfg.BoolOpt('run_power_operations_tests',
default=False,
help='Specify explicitly whether to run tests that perform '
'power operations, like shutdown/startup openstack nodes.'
'These tests can be disruptive and not suitable for some '
'environments.'),
cfg.BoolOpt('avoid_disrupting_controllers',
default=True,
help='Whether to avoid executing disruptive operations on '
'OSP controller or OCP master/worker nodes which can be '
'hosting neutron routers. With this option test will try '
'to use other nodes.'),
cfg.IntOpt('broadcast_receivers_count',
default=2,
help='How many receivers to use in broadcast tests. Default '
'and recommended value of 2. In case of environments '
'with low resources, set it to 1.'),
cfg.BoolOpt('bgp',
default=False,
help='Specifies whether the OSP setup under test has been '
'configured with BGP functionality or not'),
cfg.StrOpt('bgp_agent_config',
default='/var/lib/config-data/ansible-generated/ovn-bgp-agent'
'/etc/ovn-bgp-agent/bgp-agent.conf',
help='Path to ovn-bgp-agent config file'),
cfg.IntOpt('sriov_pfs_per_host',
default=1,
help='Number of available PF (Physical Function) ports per'
'compute node on the environment under test'),
cfg.IntOpt('sriov_vfs_per_pf',
default=5,
help='Number of available VF (Virtual Function) ports per'
'PF interface on the environment under test'),
cfg.StrOpt('overcloud_ssh_user',
default='zuul',
help='Common user to access openstack nodes via ssh.'),
cfg.StrOpt('overcloud_key_file',
default='/home/tempest/.ssh/id_rsa',
help='ssh private key file path for overcloud nodes access.'),
cfg.StrOpt('ml2_plugin_config',
default='/etc/neutron/plugins/ml2/ml2_conf.ini',
help='Path to ml2 plugin config.'),
cfg.StrOpt('ext_bridge',
default='br-ex',
help="Bridge dedicated for external network. It is used for "
"capturing traffic for routing tests."),
cfg.StrOpt('node_ext_interface',
default='eth1',
help='Physical interface of a node that is connected to the '
'external network.'),
cfg.StrOpt('ovs_pod_ext_interface',
default='datacentre',
help='Interface of a ovs pod (on podified openstack) that is '
'connected to the external network.'),
cfg.IntOpt('minbw_placement_nic_kbps_egress',
default=None,
help='BW configured per NIC for the minimum BW placement '
'enforcement - direction egress'),
cfg.IntOpt('minbw_placement_nic_kbps_ingress',
default=None,
help='BW configured per NIC for the minimum BW placement '
'enforcement - direction ingress'),
cfg.IntOpt('minbw_placement_num_nics',
default=None,
help='How many NICs support the minimum BW placement '
'enforcement'),
cfg.IntOpt('window_size',
default=0,
help='Parameter for iperf command used in qos bw limit tests.'
'Can be used for tweaking iperf in case default value '
'does not work for some reason, e.g. MTU issues.'),
cfg.StrOpt('node_tenant_interface',
default='vlan22',
help='Interface of a node that intended to pass tenant'
'network traffic. Note: currently only environments with '
'the same name of the tenant interface are supported'),
cfg.StrOpt('node_tunnel_interface',
default='genev_sys_6081',
help='Interface of a node that intended to pass tunnelled '
'traffic. genev_sys_6081 is default for geneve tenant '
'networks but for vlan tenant network this value should '
'be updated according to the environment.'),
cfg.StrOpt('ovs_pod_tunnel_interface',
default='genev_sys_6081',
help='Interface of a ovs pod that intended to pass tunnelled '
'traffic. genev_sys_6081 is default for geneve tenant '
'networks but for vlan tenant network this value should '
'be updated according to the environment.'),
cfg.IntOpt('capture_timeout',
default=120,
help='Maximal time for running remote capture, in seconds. '
'Remote capture process will be stoppped by remote shell '
'when this time expires. This is needed in order to stop '
'remote process in case test or connection was '
'interrupted unexpectedly.'),
cfg.StrOpt('hypervisor_host',
default='hypervisor-1.utility',
help='Hypervisor host for podified environment based on libvirt'
'virtual machines, typically deployed by ci-framework: '
'https://github.com/openstack-k8s-operators/ci-framework'),
cfg.StrOpt('proxy_host_address',
default='',
help='Intermediate host to run commands on podified '
'environment'),
cfg.StrOpt('proxy_host_user',
default='zuul',
help='User of intermediate host to run commands on podified '
'environment'),
cfg.StrOpt('proxy_host_key_file',
default='/var/lib/tempest/.ssh/id_ecdsa',
help='Path to private key for accessing intermediate host on '
'podified environment'),
cfg.StrOpt('proxy_host_inventory_path',
default='/home/zuul/ci-framework-data/artifacts/'
'zuul_inventory.yml',
help='Nodes inventory on proxy host on podified environment'),
cfg.StrOpt('kubeconfig_path',
default='',
help='A non-standard path to kubeconfig, if exist. If set, '
'a symlink in ~/.kube/config will be created to allow '
'running openshift client commands with less parameters'),
cfg.IntOpt('servers_count',
default=12,
help='How many tenant VMs should be tested when many needed '
'(default value meant for cirros image).'),
cfg.DictOpt('dataplane_podified_services',
default={'ovn controller': 'edpm_ovn_controller',
'ovn metadata agent': 'edpm_ovn_metadata_agent',
'ovs vswitchd': 'ovs-vswitchd'},
help='configurable names for dataplane services running on '
'podified setups')
]