diff --git a/.zuul.yaml b/.zuul.yaml index 19f021ada..a6bda0e67 100644 --- a/.zuul.yaml +++ b/.zuul.yaml @@ -1,8 +1,36 @@ +- nodeset: + name: openstack-multi-nodes + nodes: + - name: controller + label: ubuntu-xenial + - name: compute1 + label: ubuntu-xenial + groups: + # Nodes running the compute service + - name: compute + nodes: + - controller + - compute1 + # Nodes that are not the controller + - name: subnode + nodes: + - compute1 + # Switch node for multinode networking setup + - name: switch + nodes: + - controller + # Peer nodes for multinode networking setup + - name: peers + nodes: + - compute1 + + - job: - name: tacker-functional-devstack + name: tacker-functional-devstack-multinode parent: devstack description: | - Base job for devstack-based functional tests + Base multinodes job for devstack-based functional tests + nodeset: openstack-multi-nodes pre-run: playbooks/devstack/pre.yaml run: playbooks/devstack/run.yaml post-run: playbooks/devstack/post.yaml @@ -24,41 +52,66 @@ - openstack/tacker - openstack/tacker-horizon vars: + devstack_localrc: + CELLSV2_SETUP: singleconductor + Q_DVR_MODE: dvr test_matrix_configs: [neutron] devstack_services: - horizon: true - tacker: true - tacker-conductor: true + horizon: false swift: false - devstack_plugins: - heat: https://git.openstack.org/openstack/heat - networking-sfc: https://git.openstack.org/openstack/networking-sfc - aodh: https://git.openstack.org/openstack/aodh - ceilometer: https://git.openstack.org/openstack/ceilometer - barbican: https://git.openstack.org/openstack/barbican - mistral: https://git.openstack.org/openstack/mistral - tacker: https://git.openstack.org/openstack/tacker - tox_install_siblings: false - tox_envlist: dsvm-functional + s-account: false + s-container: false + s-object: false + s-proxy: false + c-bak: false zuul_work_dir: src/git.openstack.org/openstack/tacker - -- job: - name: tacker-functional-devstack-python3 - parent: tacker-functional-devstack - description: | - Run tacker functional tests using python3 against a master devstack - vars: - tacker_environment: - TACKER_TOX_PYTHON: python3 + host-vars: + controller: + devstack_plugins: + heat: https://git.openstack.org/openstack/heat + networking-sfc: https://git.openstack.org/openstack/networking-sfc + aodh: https://git.openstack.org/openstack/aodh + ceilometer: https://git.openstack.org/openstack/ceilometer + barbican: https://git.openstack.org/openstack/barbican + mistral: https://git.openstack.org/openstack/mistral + tacker: https://git.openstack.org/openstack/tacker + devstack_services: + horizon: false + swift: false + s-account: false + s-container: false + s-object: false + s-proxy: false + c-bak: false + tacker: true + tacker-conductor: true + q-svc: true + tox_install_siblings: false + tox_envlist: dsvm-functional + group-vars: + subnode: + devstack_localrc: + CELLSV2_SETUP: singleconductor + PHYSICAL_NETWORK: mgmtphysnet0 + 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: check: jobs: - - tacker-functional-devstack: - voting: false - - tacker-functional-devstack-python3: + - tacker-functional-devstack-multinode: voting: false - openstack-tox-lower-constraints gate: - jobs: - - openstack-tox-lower-constraints + jobs: + - openstack-tox-lower-constraints diff --git a/devstack/plugin.sh b/devstack/plugin.sh index 651495e6f..264267fd5 100644 --- a/devstack/plugin.sh +++ b/devstack/plugin.sh @@ -31,8 +31,11 @@ if is_service_enabled tacker; then init_tacker echo_summary "Starting Tacker API and conductor" start_tacker - echo_summary "Installing tacker horizon" - tacker_horizon_install + if is_service_enabled horizon; then + echo_summary "Installing tacker horizon" + tacker_horizon_install + fi + if [[ "${TACKER_MODE}" == "all" ]]; then echo_summary "Modifying Heat policy.json file" modify_heat_flavor_policy_rule @@ -50,9 +53,11 @@ if is_service_enabled tacker; then if [[ "$1" == "unstack" ]]; then # Shut down tacker services - echo_summary "Uninstall tacker horizon" - tacker_horizon_uninstall - stop_tacker + if is_service_enabled horizon; then + echo_summary "Uninstall tacker horizon" + tacker_horizon_uninstall + fi + stop_tacker fi if [[ "$1" == "clean" ]]; then diff --git a/devstack/settings b/devstack/settings index 088d52206..942450d92 100644 --- a/devstack/settings +++ b/devstack/settings @@ -22,7 +22,9 @@ if [ "${TACKER_MODE}" == "all" ]; then # enable tacker-conductor will make systemctl enable conductor service enable_service tacker-conductor MGMT_PHYS_NET=${MGMT_PHYS_NET:-mgmtphysnet0} - BR_MGMT=${BR_MGMT:-br-mgmt0} + # br-infra is created by devstack multi node job + # http://git.openstack.org/cgit/openstack-infra/zuul-jobs/tree/roles/multi-node-bridge + BR_MGMT=${BR_MGMT:-br-infra} NET_MGMT=${NET_MGMT:-net_mgmt} SUBNET_MGMT=${SUBNET_MGMT:-subnet_mgmt} FIXED_RANGE_MGMT=${FIXED_RANGE_MGMT:-192.168.120.0/24} diff --git a/playbooks/devstack/pre.yaml b/playbooks/devstack/pre.yaml index aea8c25d7..a980ee244 100644 --- a/playbooks/devstack/pre.yaml +++ b/playbooks/devstack/pre.yaml @@ -1,8 +1,9 @@ - hosts: all roles: - - run-devstack + - orchestrate-devstack - setup-default-vim - role: bindep bindep_profile: test bindep_dir: "{{ zuul_work_dir }}" - ensure-tox + - show-net-setup diff --git a/playbooks/devstack/run.yaml b/playbooks/devstack/run.yaml index 22f82096c..e5cd69eec 100644 --- a/playbooks/devstack/run.yaml +++ b/playbooks/devstack/run.yaml @@ -1,3 +1,3 @@ -- hosts: all +- hosts: controller roles: - tox diff --git a/roles/show-net-setup/tasks/main.yaml b/roles/show-net-setup/tasks/main.yaml new file mode 100644 index 000000000..95ccab345 --- /dev/null +++ b/roles/show-net-setup/tasks/main.yaml @@ -0,0 +1,17 @@ +- name: Print net information + shell: sudo bash -c "ip address > /opt/stack/ipaddress.txt" + +- name: Collect net information + fetch: + flat: yes + dest: "{{ zuul.executor.log_root }}/{{ inventory_hostname }}/confs/devstack/ipaddress.txt" + src: "/opt/stack/ipaddress.txt" + +- name: print ovs information + shell: sudo bash -c "ovs-vsctl show > /opt/stack/ovsvsctl.txt" + +- name: Collect ovs information + fetch: + flat: yes + dest: "{{ zuul.executor.log_root }}/{{ inventory_hostname }}/confs/devstack/ovsvsctl.txt" + src: "/opt/stack/ovsvsctl.txt"