578b12e989
The number of required plugins has increased to the extent that controller on Zuul FT infrastructure almost runs out of memory [1]. This potentially induces various problems such as FT failure noises or POST_FAILURE at the ansible task 'export-devstack-journal'. To request expanded images such as ubuntu-focal-expanded (16GB) or ubuntu-focal-32GB would be an option, but it turns out that would lead us to another problematic situation. [2] This patch, instead, addresses the issue by subdividing the memory load. As a first step, introduce a new subnode 'tacker-controller', on which both tacker-server and tacker-conductor are located. Note: * when we re-locate some other components to this new subnode, it might better to rename it. * `devstack_local_conf: {}` in .zuul.yaml is to cancel out the global job.vars devstack_local_conf.post-config.$NEUTRON_DHCP_CONF, which is not present on 'tacker-controller' in the first place. * TACKER_MODE is set to 'standalone'. 'all-in-one' supposes core services like nova, neutron, keystone, etc. api servers are located on the same host as tacker-server. * in devstack/lib/tacker:create_tacker_accounts, SERVICE_HOST should have been TACKER_HOST. this minor fix is included. * in roles/setup-default-vim/tasks/main.yaml, the same where conditions were scattered but all tasks in it just needed to run on 'controller' only. so let us wrap them all in a block. * renamed devstack/plugin.sh:tacker_register_default_vim for clarity. * policy file modification for Heat is now done by an ansible task. it frees us from the co-location requirements for Tacker and Heat. * drop devstack/lib/tacker:is_tacker_enabled as it's no longer needed. [1]: we investigated how severe the memory load on 'controller' was on Zuul FT infrastructure: * The highest memory-consuming processes in desc order: 808.70MB (9.87%) 828112 /usr/sbin/mysqld 179.81MB (2.19%) 184124 ... /usr/local/bin/tacker-server ... 152.57MB (1.86%) 156232 ... /usr/local/bin/tacker-conductor . 146.67MB (1.79%) 150188 ... /usr/local/bin/neutron-server ... 132.96MB (1.62%) 136148 ... /usr/local/bin/neutron-server ... 129.08MB (1.58%) 132180 ... /usr/local/bin/heat-engine ... 127.48MB (1.56%) 130544 ... /usr/local/bin/heat-engine ... 122.16MB (1.49%) 125092 nova-apiuWSGI worker 1 121.00MB (1.48%) 123900 neutron-openvswitch-agent ... 119.50MB (1.46%) 122368 cinder-apiuWSGI worker 1 ---(snip)--- * `free -m` output total used free shared buff/cache available Mem: 7955 7427 196 16 331 219 Swap: 1022 1019 3 [2]: http://eavesdrop.openstack.org/irclogs/%23openstack-infra/ %23openstack-infra.2020-11-25.log.html Change-Id: I030ffd5fd11b7ca9abca56e85e449ed4c4d709bd
202 lines
6.5 KiB
YAML
202 lines
6.5 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
|
|
|
|
- job:
|
|
name: tacker-functional-devstack-multinode-python3
|
|
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
|
|
# Temporarily remove because of Ubuntu Focal Migration issue
|
|
# https://storyboard.openstack.org/#!/story/2008121
|
|
# https://review.opendev.org/#/c/752294/
|
|
# - 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
|
|
Q_DVR_MODE: dvr
|
|
DATABASE_TYPE: mysql
|
|
KEYSTONE_SERVICE_HOST: "{{ hostvars['controller']['nodepool']['private_ipv4'] }}"
|
|
MYSQL_HOST: "{{ hostvars['controller']['nodepool']['private_ipv4'] }}"
|
|
TACKER_HOST: "{{ hostvars['controller-tacker']['nodepool']['private_ipv4'] }}"
|
|
TACKER_MODE: standalone
|
|
IS_ZUUL_FT: True
|
|
Q_SERVICE_PLUGIN_CLASSES: router,neutron.services.metering.metering_plugin.MeteringPlugin,networking_sfc.services.flowclassifier.plugin.FlowClassifierPlugin,neutron.services.qos.qos_plugin.QoSPlugin,qos
|
|
Q_ML2_PLUGIN_EXT_DRIVERS: port_security,qos
|
|
L2_AGENT_EXTENSIONS: qos
|
|
devstack_local_conf:
|
|
post-config:
|
|
$NEUTRON_DHCP_CONF:
|
|
DEFAULT:
|
|
enable_isolated_metadata: True
|
|
test_matrix_configs: [neutron]
|
|
zuul_work_dir: src/opendev.org/openstack/tacker
|
|
host-vars:
|
|
controller:
|
|
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
|
|
# Neutron services
|
|
# We need to keep using the neutron-legacy based services for
|
|
# now until all issues with the new lib/neutron code are solved
|
|
q-agt: true
|
|
q-dhcp: true
|
|
q-l3: true
|
|
q-meta: true
|
|
q-metering: true
|
|
q-svc: true
|
|
q-qos: 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_local_conf: {}
|
|
devstack_services:
|
|
q-agt: true
|
|
# Tacker services
|
|
tacker: true
|
|
tacker-conductor: true
|
|
devstack_plugins:
|
|
# Temporarily remove because of Ubuntu Focal Migration issue
|
|
# https://storyboard.openstack.org/#!/story/2008121
|
|
# https://review.opendev.org/#/c/752294/
|
|
# ceilometer: https://opendev.org/openstack/ceilometer
|
|
tacker: https://opendev.org/openstack/tacker
|
|
tox_envlist: dsvm-functional
|
|
group-vars:
|
|
subnode:
|
|
devstack_localrc:
|
|
CELLSV2_SETUP: singleconductor
|
|
PHYSICAL_NETWORK: mgmtphysnet0
|
|
OVS_BRIDGE_MAPPINGS: public:br-ex,mgmtphysnet0:br-infra
|
|
Q_DVR_MODE: dvr
|
|
DATABASE_TYPE: mysql
|
|
KEYSTONE_SERVICE_HOST: "{{ hostvars['controller']['nodepool']['private_ipv4'] }}"
|
|
MYSQL_HOST: "{{ hostvars['controller']['nodepool']['private_ipv4'] }}"
|
|
TACKER_HOST: "{{ hostvars['controller-tacker']['nodepool']['private_ipv4'] }}"
|
|
TACKER_MODE: standalone
|
|
IS_ZUUL_FT: True
|
|
devstack_services:
|
|
q-agt: true
|
|
n-api: false
|
|
n-api-meta: false
|
|
n-cauth: false
|
|
n-cond: false
|
|
n-cpu: true
|
|
n-novnc: false
|
|
n-obj: false
|
|
n-sch: false
|
|
horizon: false
|
|
tls-proxy: false
|
|
|
|
- project:
|
|
templates:
|
|
- check-requirements
|
|
- openstack-cover-jobs
|
|
- openstack-lower-constraints-jobs
|
|
- openstack-python3-wallaby-jobs
|
|
- publish-openstack-docs-pti
|
|
- release-notes-jobs-python3
|
|
check:
|
|
jobs:
|
|
- tacker-functional-devstack-multinode-python3
|