5e714d3308
Extend the devstack job so that it can support both single and multinode cases. Multinode mode require extra settings in devstack configuration, some of which as subnode specific, some controller specific. Also keep a simple devstack-multinode job defined for now so we can run a multinode job in devstack gate, until the full tempest multinode job is ready to match the old gate-tempest-dsvm-neutron-multinode-full-ubuntu-xenial-nv. Fixing multinode also requires sharing the CA configuration between controller and peers, overlay network configuration for communication between virtual machines and running discover_hosts for nova after the subnode has been setup. The extra orchestration required for multinode is encoded in a dedicated role to allow for jobs in other repos to re-use it. Change-Id: I2dcbd9bdb401860820e655d97aa3c4775af2827f
31 lines
1.1 KiB
YAML
31 lines
1.1 KiB
YAML
- hosts: all
|
|
pre_tasks:
|
|
- name: Gather minimum local MTU
|
|
set_fact:
|
|
local_mtu: >
|
|
{% set mtus = [] -%}
|
|
{% for interface in ansible_interfaces -%}
|
|
{% set interface_variable = 'ansible_' + interface -%}
|
|
{% if interface_variable in hostvars[inventory_hostname] -%}
|
|
{% set _ = mtus.append(hostvars[inventory_hostname][interface_variable]['mtu']|int) -%}
|
|
{% endif -%}
|
|
{% endfor -%}
|
|
{{- mtus|min -}}
|
|
- name: Calculate external_bridge_mtu
|
|
# 50 bytes is overhead for vxlan (which is greater than GRE
|
|
# allowing us to use either overlay option with this MTU.
|
|
# TODO(andreaf) This should work, but it may have to be reconcilied with
|
|
# the MTU setting used by the multinode setup roles in multinode pre.yaml
|
|
set_fact:
|
|
external_bridge_mtu: "{{ local_mtu | int - 50 }}"
|
|
roles:
|
|
- test-matrix
|
|
- configure-swap
|
|
- setup-stack-user
|
|
- setup-tempest-user
|
|
- setup-devstack-source-dirs
|
|
- setup-devstack-log-dir
|
|
- setup-devstack-cache
|
|
- start-fresh-logging
|
|
- write-devstack-local-conf
|