This patch provides a base to support multi version API. The existing code of functions for SOL specification was hard to understand and enhance since it is based on the code of legacy tacker API and they are connected with each other complicatedly. Therefore the code for SOL specification is newly created which is independent to the legacy tacker API so that it will be easy to maintain and enhance. This patch supports vnflcm v2 API (api_version 2.0.0) as a starting point. It supports less functions than the exsisting v1 API at the moment(Xena) but it will catch up with by the next release (Y). This patch makes supporting another API version easy when it will be supported in the future. Possibly it may thought to add v1 API to this code base. TODO: enhance UT/FT UT/FT is not sufficient at the moment. Additional UTs and FTs will be provided with another patches. Implements: blueprint multi-version-api Implements: blueprint support-nfv-solv3-start-and-terminate-vnf Implements: blueprint support-nfv-solv3-query-vnf-instances Implements: blueprint support-nfv-solv3-query-operation-occurrences Implements: blueprint support-nfv-solv3-subscriptions Change-Id: If76f315d8b3856e0eef9b8808b90f0b15d80d488
520 lines
18 KiB
YAML
520 lines
18 KiB
YAML
- nodeset:
|
|
name: openstack-4-nodes-focal
|
|
nodes:
|
|
- name: controller
|
|
label: ubuntu-focal
|
|
- name: controller-tacker
|
|
label: ubuntu-focal
|
|
- name: compute1
|
|
label: ubuntu-focal
|
|
- name: compute2
|
|
label: ubuntu-focal
|
|
groups:
|
|
# Nodes running the compute service
|
|
- name: compute
|
|
nodes:
|
|
- compute1
|
|
- compute2
|
|
# Nodes that are not the controller
|
|
- name: subnode
|
|
nodes:
|
|
- controller-tacker
|
|
- compute1
|
|
- compute2
|
|
# Switch node for multinode networking setup
|
|
- name: switch
|
|
nodes:
|
|
- controller
|
|
# Peer nodes for multinode networking setup
|
|
- name: peers
|
|
nodes:
|
|
- controller-tacker
|
|
- compute1
|
|
- compute2
|
|
|
|
- nodeset:
|
|
name: openstack-k8s-4-nodes-focal
|
|
nodes:
|
|
- name: controller
|
|
label: ubuntu-focal
|
|
- name: controller-tacker
|
|
label: ubuntu-focal
|
|
- name: controller-k8s
|
|
label: ubuntu-focal
|
|
- name: compute1
|
|
label: ubuntu-focal
|
|
groups:
|
|
- name: compute
|
|
nodes:
|
|
- controller-k8s
|
|
- compute1
|
|
- name: subnode
|
|
nodes:
|
|
- controller-tacker
|
|
- controller-k8s
|
|
- compute1
|
|
- name: switch
|
|
nodes:
|
|
- controller
|
|
- name: peers
|
|
nodes:
|
|
- controller-tacker
|
|
- controller-k8s
|
|
- compute1
|
|
|
|
- job:
|
|
name: tacker-functional-devstack-multinode-legacy
|
|
parent: devstack
|
|
description: |
|
|
Base multinodes job for devstack-based functional tests
|
|
nodeset: openstack-4-nodes-focal
|
|
pre-run: playbooks/devstack/pre.yaml
|
|
run: playbooks/devstack/run.yaml
|
|
post-run: playbooks/devstack/post.yaml
|
|
roles:
|
|
- zuul: openstack-infra/devstack
|
|
timeout: 10800
|
|
required-projects:
|
|
- openstack/cinder
|
|
- openstack/glance
|
|
- openstack/keystone
|
|
- openstack/neutron
|
|
- openstack/nova
|
|
- openstack/placement
|
|
- openstack/aodh
|
|
- openstack/blazar
|
|
- openstack/blazar-nova
|
|
- openstack/horizon
|
|
- openstack/barbican
|
|
- openstack/ceilometer
|
|
- openstack/heat
|
|
- openstack/mistral
|
|
- openstack/mistral-dashboard
|
|
- openstack/networking-sfc
|
|
- openstack/python-barbicanclient
|
|
- openstack/python-blazarclient
|
|
- openstack/python-mistralclient
|
|
- openstack/python-tackerclient
|
|
- openstack/tacker
|
|
- openstack/tacker-horizon
|
|
- x/fenix
|
|
vars:
|
|
devstack_localrc:
|
|
CELLSV2_SETUP: singleconductor
|
|
PHYSICAL_NETWORK: mgmtphysnet0
|
|
OVS_BRIDGE_MAPPINGS: public:br-ex,mgmtphysnet0:br-infra
|
|
DATABASE_TYPE: mysql
|
|
KEYSTONE_SERVICE_HOST: "{{ hostvars['controller']['nodepool']['private_ipv4'] }}"
|
|
MYSQL_HOST: "{{ hostvars['controller']['nodepool']['private_ipv4'] }}"
|
|
GNOCCHI_SERVICE_HOST: "{{ hostvars['controller-tacker']['nodepool']['private_ipv4'] }}"
|
|
Q_SERVICE_PLUGIN_CLASSES: ovn-router,networking_sfc.services.flowclassifier.plugin.FlowClassifierPlugin,neutron.services.qos.qos_plugin.QoSPlugin,qos
|
|
L2_AGENT_EXTENSIONS: qos
|
|
DEVSTACK_PARALLEL: True
|
|
OVN_L3_CREATE_PUBLIC_NETWORK: true
|
|
OVN_DBS_LOG_LEVEL: dbg
|
|
Q_ML2_PLUGIN_MECHANISM_DRIVERS: ovn,logger
|
|
test_matrix_configs: [neutron]
|
|
zuul_work_dir: src/opendev.org/openstack/tacker
|
|
host-vars:
|
|
controller:
|
|
devstack_local_conf:
|
|
post-config:
|
|
$NEUTRON_DHCP_CONF:
|
|
DEFAULT:
|
|
enable_isolated_metadata: True
|
|
$CINDER_CONF:
|
|
lvmdriver-1:
|
|
image_volume_cache_enabled: False
|
|
devstack_plugins:
|
|
heat: https://opendev.org/openstack/heat
|
|
networking-sfc: https://opendev.org/openstack/networking-sfc
|
|
aodh: https://opendev.org/openstack/aodh
|
|
barbican: https://opendev.org/openstack/barbican
|
|
mistral: https://opendev.org/openstack/mistral
|
|
blazar: https://opendev.org/openstack/blazar
|
|
fenix: https://opendev.org/x/fenix
|
|
devstack_services:
|
|
# Core services enabled for this branch.
|
|
# This list replaces the test-matrix.
|
|
# Shared services
|
|
mysql: true
|
|
rabbit: true
|
|
tls-proxy: false
|
|
# Keystone services
|
|
key: true
|
|
# Glance services
|
|
g-api: true
|
|
# Nova services
|
|
n-api: true
|
|
n-api-meta: true
|
|
n-cond: true
|
|
n-cpu: false
|
|
n-novnc: true
|
|
n-sch: true
|
|
placement-api: true
|
|
# OVN services
|
|
ovn-controller: true
|
|
ovn-northd: true
|
|
ovs-vswitchd: true
|
|
ovsdb-server: true
|
|
# Neutron services
|
|
q-svc: true
|
|
q-qos: true
|
|
q-ovn-metadata-agent: true
|
|
# Cinder services
|
|
c-api: true
|
|
c-sch: true
|
|
c-vol: true
|
|
cinder: true
|
|
# Services we don't need.
|
|
# This section is not really needed, it's for readability.
|
|
horizon: false
|
|
tempest: false
|
|
swift: false
|
|
s-account: false
|
|
s-container: false
|
|
s-object: false
|
|
s-proxy: false
|
|
c-bak: false
|
|
tox_install_siblings: false
|
|
controller-tacker:
|
|
devstack_plugins:
|
|
ceilometer: https://opendev.org/openstack/ceilometer
|
|
tacker: https://opendev.org/openstack/tacker
|
|
devstack_services:
|
|
# OVN services
|
|
ovn-controller: true
|
|
ovs-vswitchd: true
|
|
ovsdb-server: true
|
|
# Neutron services
|
|
q-ovn-metadata-agent: true
|
|
# Ceilometer services
|
|
ceilometer-acompute: false
|
|
ceilometer-acentral: true
|
|
ceilometer-aipmi: false
|
|
ceilometer-anotification: true
|
|
# Tacker services
|
|
tacker: true
|
|
tacker-conductor: true
|
|
tox_envlist: dsvm-functional-legacy
|
|
group-vars:
|
|
compute:
|
|
# Since a VirtualInterfaceCreateException occurs during a test,
|
|
# the setting of network-vif-plugged is changed by the reference of
|
|
# the following URL.
|
|
# https://bugs.launchpad.net/heat/+bug/1694371
|
|
devstack_local_conf:
|
|
post-config:
|
|
$NOVA_CONF:
|
|
DEFAULT:
|
|
vif_plugging_is_fatal: False
|
|
subnode:
|
|
devstack_localrc:
|
|
CELLSV2_SETUP: singleconductor
|
|
PHYSICAL_NETWORK: mgmtphysnet0
|
|
OVS_BRIDGE_MAPPINGS: public:br-ex,mgmtphysnet0:br-infra
|
|
DATABASE_TYPE: mysql
|
|
KEYSTONE_SERVICE_HOST: "{{ hostvars['controller']['nodepool']['private_ipv4'] }}"
|
|
MYSQL_HOST: "{{ hostvars['controller']['nodepool']['private_ipv4'] }}"
|
|
GNOCCHI_SERVICE_HOST: "{{ hostvars['controller-tacker']['nodepool']['private_ipv4'] }}"
|
|
TACKER_HOST: "{{ hostvars['controller-tacker']['nodepool']['private_ipv4'] }}"
|
|
TACKER_MODE: standalone
|
|
IS_ZUUL_FT: True
|
|
# NOTES:
|
|
# - Without this ugly inline template, we would have to overwrite devstack_localrc
|
|
# as a whole in some way. However keeping up with parent jobs' definitions would
|
|
# be too costly. E.g., ADMIN_PASSWORD, NETWORK_GATEWAY, etc. Too many variables.
|
|
# - The reason we set CEILOMETER_BACKEND=none for compute nodes is that otherwise
|
|
# gnocchi setup would run on every compute nodes (esp. multiple asynchronous calls
|
|
# of recreate_database() would be disastrous). Unused api servers would also be
|
|
# deployed on each compute node.
|
|
CEILOMETER_BACKEND: "{% if 'compute' in group_names %}none{% else %}gnocchi{% endif %}"
|
|
Q_SERVICE_PLUGIN_CLASSES: "qos,\
|
|
networking_sfc.services.flowclassifier.plugin.FlowClassifierPlugin,\
|
|
neutron.services.qos.qos_plugin.QoSPlugin,\
|
|
ovn-router"
|
|
L2_AGENT_EXTENSIONS: qos
|
|
ENABLE_CHASSIS_AS_GW: false
|
|
Q_ML2_PLUGIN_MECHANISM_DRIVERS: ovn,logger
|
|
devstack_plugins:
|
|
ceilometer: https://opendev.org/openstack/ceilometer
|
|
devstack_services:
|
|
ceilometer-acompute: true
|
|
# To override the parent job's definitions.
|
|
tls-proxy: false
|
|
# OVN services
|
|
ovn-controller: true
|
|
ovs-vswitchd: true
|
|
ovsdb-server: true
|
|
# Neutron services
|
|
q-ovn-metadata-agent: true
|
|
|
|
- job:
|
|
name: tacker-functional-devstack-multinode-sol
|
|
parent: tacker-functional-devstack-multinode-legacy
|
|
description: |
|
|
Multinodes job for SOL devstack-based functional tests
|
|
host-vars:
|
|
controller-tacker:
|
|
tox_envlist: dsvm-functional-sol
|
|
|
|
- job:
|
|
name: tacker-functional-devstack-multinode-sol-v2
|
|
parent: tacker-functional-devstack-multinode-sol
|
|
description: |
|
|
Multinodes job for SOL V2 devstack-based functional tests
|
|
host-vars:
|
|
controller-tacker:
|
|
tox_envlist: dsvm-functional-sol-v2
|
|
|
|
- job:
|
|
name: tacker-functional-devstack-multinode-sol-separated-nfvo
|
|
parent: tacker-functional-devstack-multinode-sol
|
|
description: |
|
|
Multinodes job for SOL devstack-based functional tests
|
|
with separated NFVO
|
|
host-vars:
|
|
controller-tacker:
|
|
devstack_local_conf:
|
|
post-config:
|
|
$TACKER_CONF:
|
|
connect_vnf_packages:
|
|
base_url: http://127.0.0.1:9990/vnfpkgm/v1/vnf_packages
|
|
pipeline: package_content,vnfd,artifacts
|
|
connect_grant:
|
|
base_url: http://127.0.0.1:9990/grant/v1/grants
|
|
openstack_vim:
|
|
stack_retries: 120
|
|
tox_envlist: dsvm-functional-sol-separated-nfvo
|
|
|
|
- job:
|
|
name: tacker-functional-devstack-multinode-sol-kubernetes
|
|
parent: devstack
|
|
description: |
|
|
Multinodes job for SOL devstack-based kubernetes functional tests
|
|
nodeset: openstack-k8s-4-nodes-focal
|
|
pre-run: playbooks/devstack/pre.yaml
|
|
run: playbooks/devstack/run.yaml
|
|
post-run: playbooks/devstack/post.yaml
|
|
roles:
|
|
- zuul: openstack-infra/devstack
|
|
timeout: 10800
|
|
required-projects:
|
|
- openstack/barbican
|
|
- openstack/cinder
|
|
- openstack/devstack-gate
|
|
- openstack/devstack-plugin-container
|
|
- openstack/glance
|
|
- openstack/heat
|
|
- openstack/horizon
|
|
- openstack/keystone
|
|
# TODO(ueha): temporarily use stable/wallaby branch for solve FT error.
|
|
# After confirming that it works in the master branch, modify it.
|
|
- name: openstack/kuryr-kubernetes
|
|
override-branch: stable/wallaby
|
|
- openstack/mistral
|
|
- openstack/neutron
|
|
- openstack/nova
|
|
- openstack/octavia
|
|
- openstack/placement
|
|
- openstack/python-barbicanclient
|
|
- openstack/python-blazarclient
|
|
- openstack/python-mistralclient
|
|
- openstack/python-octaviaclient
|
|
- openstack/python-tackerclient
|
|
- openstack/tacker
|
|
- openstack/tacker-horizon
|
|
host-vars:
|
|
controller:
|
|
devstack_plugins:
|
|
barbican: https://opendev.org/openstack/barbican
|
|
heat: https://opendev.org/openstack/heat
|
|
mistral: https://opendev.org/openstack/mistral
|
|
neutron: https://opendev.org/openstack/neutron
|
|
octavia: https://opendev.org/openstack/octavia
|
|
devstack_services:
|
|
base: false
|
|
c-api: true
|
|
c-bak: false
|
|
c-sch: true
|
|
c-vol: true
|
|
cinder: true
|
|
coredns: false
|
|
etcd3: true
|
|
g-api: true
|
|
g-reg: true
|
|
horizon: false
|
|
key: true
|
|
mysql: true
|
|
n-api-meta: true
|
|
n-api: true
|
|
n-cond: true
|
|
n-cpu: false
|
|
n-novnc: true
|
|
n-sch: true
|
|
neutron: true
|
|
o-api: true
|
|
o-cw: true
|
|
o-hk: true
|
|
o-hm: true
|
|
octavia: true
|
|
placement-api: true
|
|
placement-client: true
|
|
ovn-controller: true
|
|
ovn-northd: true
|
|
ovs-vswitchd: true
|
|
ovsdb-server: true
|
|
q-qos: true
|
|
q-svc: true
|
|
q-ovn-metadata-agent: true
|
|
rabbit: true
|
|
s-account: false
|
|
s-container: false
|
|
s-object: false
|
|
s-proxy: false
|
|
swift: false
|
|
tempest: false
|
|
tls-proxy: false
|
|
tox_install_siblings: false
|
|
controller-tacker:
|
|
devstack_local_conf: {}
|
|
devstack_services:
|
|
ovn-controller: true
|
|
ovn-northd: true
|
|
ovs-vswitchd: true
|
|
ovsdb-server: true
|
|
q-ovn-metadata-agent: true
|
|
tacker: true
|
|
tacker-conductor: true
|
|
devstack_plugins:
|
|
tacker: https://opendev.org/openstack/tacker
|
|
tox_envlist: dsvm-functional-sol-kubernetes
|
|
controller-k8s:
|
|
devstack_local_conf: {}
|
|
devstack_plugins:
|
|
devstack-plugin-container: https://opendev.org/openstack/devstack-plugin-container
|
|
kuryr-kubernetes: https://opendev.org/openstack/kuryr-kubernetes
|
|
devstack_services:
|
|
etcd3: false
|
|
kubelet: true
|
|
kubernetes-api: true
|
|
kubernetes-controller-manager: true
|
|
kubernetes-scheduler: true
|
|
kuryr-daemon: true
|
|
kuryr-kubernetes: true
|
|
octavia: false
|
|
ovn-controller: true
|
|
ovn-northd: true
|
|
ovs-vswitchd: true
|
|
ovsdb-server: true
|
|
q-ovn-metadata-agent: true
|
|
tox_install_siblings: false
|
|
group-vars:
|
|
subnode:
|
|
devstack_localrc:
|
|
CELLSV2_SETUP: singleconductor
|
|
DATABASE_TYPE: mysql
|
|
IS_ZUUL_FT: True
|
|
KEYSTONE_SERVICE_HOST: "{{ hostvars['controller']['nodepool']['private_ipv4'] }}"
|
|
KURYR_FORCE_IMAGE_BUILD: true
|
|
KURYR_K8S_API_PORT: 8080
|
|
KURYR_K8S_API_URL: "http://{{ hostvars['controller-k8s']['nodepool']['private_ipv4'] }}:${KURYR_K8S_API_PORT}"
|
|
KURYR_K8S_CLOUD_PROVIDER: false
|
|
KURYR_K8S_CONTAINERIZED_DEPLOYMENT: false
|
|
KURYR_K8S_MULTI_WORKER_TESTS: false
|
|
KURYR_NEUTRON_DEFAULT_SUBNETPOOL_ID: shared-default-subnetpool-v4
|
|
MYSQL_HOST: "{{ hostvars['controller']['nodepool']['private_ipv4'] }}"
|
|
OCTAVIA_AMP_IMAGE_FILE: "/tmp/test-only-amphora-x64-haproxy-ubuntu-bionic.qcow2"
|
|
OCTAVIA_AMP_IMAGE_NAME: "test-only-amphora-x64-haproxy-ubuntu-bionic"
|
|
OCTAVIA_AMP_IMAGE_SIZE: 3
|
|
OVS_BRIDGE_MAPPINGS: public:br-ex,mgmtphysnet0:br-infra
|
|
PHYSICAL_NETWORK: mgmtphysnet0
|
|
TACKER_HOST: "{{ hostvars['controller-tacker']['nodepool']['private_ipv4'] }}"
|
|
TACKER_MODE: standalone
|
|
USE_PYTHON3: true
|
|
ENABLE_CHASSIS_AS_GW: false
|
|
Q_ML2_PLUGIN_MECHANISM_DRIVERS: ovn,logger
|
|
devstack_services:
|
|
dstat: false
|
|
horizon: false
|
|
n-api-meta: false
|
|
n-api: false
|
|
n-cauth: false
|
|
n-cond: false
|
|
n-cpu: true
|
|
n-novnc: false
|
|
n-obj: false
|
|
n-sch: false
|
|
ovn-controller: true
|
|
ovs-vswitchd: true
|
|
ovsdb-server: true
|
|
q-ovn-metadata-agent: true
|
|
tls-proxy: false
|
|
vars:
|
|
devstack_localrc:
|
|
CELLSV2_SETUP: singleconductor
|
|
DATABASE_TYPE: mysql
|
|
ETCD_USE_RAMDISK: true
|
|
IS_ZUUL_FT: True
|
|
KEYSTONE_SERVICE_HOST: "{{ hostvars['controller']['nodepool']['private_ipv4'] }}"
|
|
L2_AGENT_EXTENSIONS: qos
|
|
MYSQL_HOST: "{{ hostvars['controller']['nodepool']['private_ipv4'] }}"
|
|
OCTAVIA_AMP_IMAGE_FILE: "/tmp/test-only-amphora-x64-haproxy-ubuntu-bionic.qcow2"
|
|
OCTAVIA_AMP_IMAGE_NAME: "test-only-amphora-x64-haproxy-ubuntu-bionic"
|
|
OCTAVIA_AMP_IMAGE_SIZE: 3
|
|
OVS_BRIDGE_MAPPINGS: public:br-ex,mgmtphysnet0:br-infra
|
|
PHYSICAL_NETWORK: mgmtphysnet0
|
|
Q_SERVICE_PLUGIN_CLASSES: ovn-router,neutron.services.qos.qos_plugin.QoSPlugin,qos
|
|
TACKER_HOST: "{{ hostvars['controller-tacker']['nodepool']['private_ipv4'] }}"
|
|
TACKER_MODE: standalone
|
|
USE_PYTHON3: true
|
|
DEVSTACK_PARALLEL: True
|
|
OVN_L3_CREATE_PUBLIC_NETWORK: true
|
|
OVN_DBS_LOG_LEVEL: dbg
|
|
Q_ML2_PLUGIN_MECHANISM_DRIVERS: ovn,logger
|
|
devstack_local_conf:
|
|
post-config:
|
|
$NEUTRON_DHCP_CONF:
|
|
DEFAULT:
|
|
enable_isolated_metadata: True
|
|
$OCTAVIA_CONF:
|
|
controller_worker:
|
|
amp_active_retries: 9999
|
|
kuryr_k8s_api_url: "http://{{ hostvars['controller-k8s']['nodepool']['private_ipv4'] }}:8080"
|
|
helm_version: "3.5.4"
|
|
test_matrix_configs: [neutron]
|
|
zuul_work_dir: src/opendev.org/openstack/tacker
|
|
zuul_copy_output:
|
|
'{{ devstack_log_dir }}/kubernetes': 'logs'
|
|
irrelevant-files:
|
|
- ^.*\.rst$
|
|
- ^doc/.*$
|
|
- ^releasenotes/.*$
|
|
- ^contrib/.*$
|
|
|
|
- job:
|
|
name: tacker-functional-devstack-multinode-libs-master
|
|
parent: tacker-functional-devstack-multinode-legacy
|
|
description: |
|
|
devstack-based functional tests with libs from the master branch
|
|
required-projects:
|
|
- openstack/heat-translator
|
|
- openstack/tosca-parser
|
|
|
|
- project:
|
|
templates:
|
|
- check-requirements
|
|
- openstack-cover-jobs
|
|
- openstack-lower-constraints-jobs
|
|
- openstack-python3-xena-jobs
|
|
- publish-openstack-docs-pti
|
|
- release-notes-jobs-python3
|
|
check:
|
|
jobs:
|
|
- tacker-functional-devstack-multinode-legacy
|
|
- tacker-functional-devstack-multinode-sol
|
|
- tacker-functional-devstack-multinode-sol-separated-nfvo
|
|
- tacker-functional-devstack-multinode-sol-kubernetes
|
|
- tacker-functional-devstack-multinode-libs-master
|
|
- tacker-functional-devstack-multinode-sol-v2
|