diff options
Diffstat (limited to 'mcp')
-rw-r--r-- | mcp/config/scenario/os-nosdn-nofeature-ha.yaml.j2 | 25 | ||||
-rw-r--r-- | mcp/config/scenario/os-nosdn-nofeature-noha.yaml | 13 | ||||
-rw-r--r-- | mcp/config/scenario/os-nosdn-ovs-ha.yaml.j2 | 25 | ||||
-rw-r--r-- | mcp/config/scenario/os-nosdn-ovs-noha.yaml | 13 | ||||
-rw-r--r-- | mcp/config/scenario/os-odl-nofeature-ha.yaml.j2 | 25 | ||||
-rw-r--r-- | mcp/config/scenario/os-odl-nofeature-noha.yaml | 15 | ||||
-rw-r--r-- | mcp/config/scenario/os-odl-ovs-noha.yaml | 15 | ||||
-rw-r--r-- | mcp/config/scenario/os-ovn-nofeature-ha.yaml.j2 | 25 | ||||
-rw-r--r-- | mcp/config/scenario/os-ovn-nofeature-noha.yaml | 11 | ||||
-rwxr-xr-x | mcp/config/states/baremetal_init | 26 | ||||
-rw-r--r-- | mcp/scripts/lib.sh | 1 | ||||
-rw-r--r-- | mcp/scripts/xdf_data.sh.j2 | 42 |
12 files changed, 137 insertions, 99 deletions
diff --git a/mcp/config/scenario/os-nosdn-nofeature-ha.yaml.j2 b/mcp/config/scenario/os-nosdn-nofeature-ha.yaml.j2 index 26938262e..7eb604e65 100644 --- a/mcp/config/scenario/os-nosdn-nofeature-ha.yaml.j2 +++ b/mcp/config/scenario/os-nosdn-nofeature-ha.yaml.j2 @@ -21,25 +21,22 @@ cluster: - networks virtual: nodes: - - cfg01 + infra: + - cfg01 {%- if nm.cluster.has_baremetal_nodes %} - - mas01 -{%- endif %} -{#- Most likely, controllers will always have the same type and number (3) #} -{%- if conf.nodes[nm.ctl01.idx].node.type == 'virtual' %} - - kvm01 - - kvm02 - - kvm03 -{%- endif %} -{#- Later, we might have mixed computes here, for hybrid multi-arch testing #} -{%- if conf.nodes[nm.cmp001.idx].node.type == 'virtual' %} - - cmp001 - - cmp002 + - mas01 {%- endif %} + control: + - kvm01 + - kvm02 + - kvm03 + compute: + - cmp001 + - cmp002 + # Below values are only used for each node if said node is virtual cfg01: vcpus: 4 ram: 6144 - # Below values are only used when nodes are defined in virtual.nodes above mas01: vcpus: 4 ram: 6144 diff --git a/mcp/config/scenario/os-nosdn-nofeature-noha.yaml b/mcp/config/scenario/os-nosdn-nofeature-noha.yaml index 5c5e77ceb..8a3a33db0 100644 --- a/mcp/config/scenario/os-nosdn-nofeature-noha.yaml +++ b/mcp/config/scenario/os-nosdn-nofeature-noha.yaml @@ -14,11 +14,14 @@ cluster: - networks virtual: nodes: - - cfg01 - - ctl01 - - cmp001 - - cmp002 - - gtw01 + infra: + - cfg01 + control: + - ctl01 + - gtw01 + compute: + - cmp001 + - cmp002 ctl01: vcpus: 4 ram: 14336 diff --git a/mcp/config/scenario/os-nosdn-ovs-ha.yaml.j2 b/mcp/config/scenario/os-nosdn-ovs-ha.yaml.j2 index f9ab7c3fb..da9938ce0 100644 --- a/mcp/config/scenario/os-nosdn-ovs-ha.yaml.j2 +++ b/mcp/config/scenario/os-nosdn-ovs-ha.yaml.j2 @@ -22,25 +22,22 @@ cluster: - networks virtual: nodes: - - cfg01 + infra: + - cfg01 {%- if nm.cluster.has_baremetal_nodes %} - - mas01 -{%- endif %} -{#- Most likely, controllers will always have the same type and number (3) #} -{%- if conf.nodes[nm.ctl01.idx].node.type == 'virtual' %} - - kvm01 - - kvm02 - - kvm03 -{%- endif %} -{#- Later, we might have mixed computes here, for hybrid multi-arch testing #} -{%- if conf.nodes[nm.cmp001.idx].node.type == 'virtual' %} - - cmp001 - - cmp002 + - mas01 {%- endif %} + control: + - kvm01 + - kvm02 + - kvm03 + compute: + - cmp001 + - cmp002 + # Below values are only used for each node if said node is virtual cfg01: vcpus: 4 ram: 6144 - # Below values are only used when nodes are defined in virtual.nodes above mas01: vcpus: 4 ram: 6144 diff --git a/mcp/config/scenario/os-nosdn-ovs-noha.yaml b/mcp/config/scenario/os-nosdn-ovs-noha.yaml index 19e7946d1..795b73064 100644 --- a/mcp/config/scenario/os-nosdn-ovs-noha.yaml +++ b/mcp/config/scenario/os-nosdn-ovs-noha.yaml @@ -15,11 +15,14 @@ cluster: - networks virtual: nodes: - - cfg01 - - ctl01 - - cmp001 - - cmp002 - - gtw01 + infra: + - cfg01 + control: + - ctl01 + - gtw01 + compute: + - cmp001 + - cmp002 ctl01: vcpus: 4 ram: 14336 diff --git a/mcp/config/scenario/os-odl-nofeature-ha.yaml.j2 b/mcp/config/scenario/os-odl-nofeature-ha.yaml.j2 index c48f18c51..fbedbc6b9 100644 --- a/mcp/config/scenario/os-odl-nofeature-ha.yaml.j2 +++ b/mcp/config/scenario/os-odl-nofeature-ha.yaml.j2 @@ -22,25 +22,22 @@ cluster: - networks virtual: nodes: - - cfg01 + infra: + - cfg01 {%- if nm.cluster.has_baremetal_nodes %} - - mas01 -{%- endif %} -{#- Most likely, controllers will always have the same type and number (3) #} -{%- if conf.nodes[nm.ctl01.idx].node.type == 'virtual' %} - - kvm01 - - kvm02 - - kvm03 -{%- endif %} -{#- Later, we might have mixed computes here, for hybrid multi-arch testing #} -{%- if conf.nodes[nm.cmp001.idx].node.type == 'virtual' %} - - cmp001 - - cmp002 + - mas01 {%- endif %} + control: + - kvm01 + - kvm02 + - kvm03 + compute: + - cmp001 + - cmp002 + # Below values are only used for each node if said node is virtual cfg01: vcpus: 4 ram: 6144 - # Below values are only used when nodes are defined in virtual.nodes above mas01: vcpus: 4 ram: 6144 diff --git a/mcp/config/scenario/os-odl-nofeature-noha.yaml b/mcp/config/scenario/os-odl-nofeature-noha.yaml index ec04ee87a..d0a490ef9 100644 --- a/mcp/config/scenario/os-odl-nofeature-noha.yaml +++ b/mcp/config/scenario/os-odl-nofeature-noha.yaml @@ -15,12 +15,15 @@ cluster: - networks virtual: nodes: - - cfg01 - - ctl01 - - cmp001 - - cmp002 - - gtw01 - - odl01 + infra: + - cfg01 + control: + - ctl01 + - gtw01 + - odl01 + compute: + - cmp001 + - cmp002 ctl01: vcpus: 4 ram: 14336 diff --git a/mcp/config/scenario/os-odl-ovs-noha.yaml b/mcp/config/scenario/os-odl-ovs-noha.yaml index 083e7e646..29e6842ac 100644 --- a/mcp/config/scenario/os-odl-ovs-noha.yaml +++ b/mcp/config/scenario/os-odl-ovs-noha.yaml @@ -16,12 +16,15 @@ cluster: - networks virtual: nodes: - - cfg01 - - ctl01 - - cmp001 - - cmp002 - - gtw01 - - odl01 + infra: + - cfg01 + control: + - ctl01 + - gtw01 + - odl01 + compute: + - cmp001 + - cmp002 ctl01: vcpus: 4 ram: 14336 diff --git a/mcp/config/scenario/os-ovn-nofeature-ha.yaml.j2 b/mcp/config/scenario/os-ovn-nofeature-ha.yaml.j2 index 218b5dece..f81779b8a 100644 --- a/mcp/config/scenario/os-ovn-nofeature-ha.yaml.j2 +++ b/mcp/config/scenario/os-ovn-nofeature-ha.yaml.j2 @@ -21,25 +21,22 @@ cluster: - networks virtual: nodes: - - cfg01 + infra: + - cfg01 {%- if nm.cluster.has_baremetal_nodes %} - - mas01 -{%- endif %} -{#- Most likely, controllers will always have the same type and number (3) #} -{%- if conf.nodes[nm.ctl01.idx].node.type == 'virtual' %} - - kvm01 - - kvm02 - - kvm03 -{%- endif %} -{#- Later, we might have mixed computes here, for hybrid multi-arch testing #} -{%- if conf.nodes[nm.cmp001.idx].node.type == 'virtual' %} - - cmp001 - - cmp002 + - mas01 {%- endif %} + control: + - kvm01 + - kvm02 + - kvm03 + compute: + - cmp001 + - cmp002 + # Below values are only used for each node if said node is virtual cfg01: vcpus: 4 ram: 6144 - # Below values are only used when nodes are defined in virtual.nodes above mas01: vcpus: 4 ram: 6144 diff --git a/mcp/config/scenario/os-ovn-nofeature-noha.yaml b/mcp/config/scenario/os-ovn-nofeature-noha.yaml index 7036340bf..fc4086670 100644 --- a/mcp/config/scenario/os-ovn-nofeature-noha.yaml +++ b/mcp/config/scenario/os-ovn-nofeature-noha.yaml @@ -13,10 +13,13 @@ cluster: - networks virtual: nodes: - - cfg01 - - ctl01 - - cmp001 - - cmp002 + infra: + - cfg01 + control: + - ctl01 + compute: + - cmp001 + - cmp002 ctl01: vcpus: 4 ram: 14336 diff --git a/mcp/config/states/baremetal_init b/mcp/config/states/baremetal_init index 3e5f659fd..f363e4a1a 100755 --- a/mcp/config/states/baremetal_init +++ b/mcp/config/states/baremetal_init @@ -11,25 +11,29 @@ CI_DEBUG=${CI_DEBUG:-0}; [[ "${CI_DEBUG}" =~ (false|0) ]] || set -x # shellcheck disable=SC1090 source "$(dirname "${BASH_SOURCE[0]}")/../../scripts/lib.sh" +source "$(dirname "${BASH_SOURCE[0]}")/../../scripts/xdf_data.sh" + +cluster_nodes_query="${control_nodes_query} or cmp*" +compute_nodes_query='cmp*' # KVM, compute node prereqs # patch the networking module for Debian based distros debian_ip_source=/usr/lib/python2.7/dist-packages/salt/modules/debian_ip.py -salt -C 'kvm* or cmp*' file.line $debian_ip_source \ +salt -C "${cluster_nodes_query}" file.line $debian_ip_source \ content='iface = iface.lower()' mode='delete' -salt -C 'kvm* or cmp*' file.replace $debian_ip_source \ +salt -C "${cluster_nodes_query}" file.replace $debian_ip_source \ pattern="^\s{8}__salt__\['pkg.install'\]\('vlan'\)" \ repl="\n if not __salt__['pkg.version']('vlan'):\n __salt__['pkg.install']('vlan')" -salt -C 'kvm* or cmp*' pkg.install bridge-utils -salt -C 'kvm*' state.apply linux.network,linux.system.kernel -wait_for 5.0 "salt -C 'kvm* or cmp*' state.apply salt.minion" -wait_for 5.0 "salt -C 'cmp*' state.apply linux.system,linux.network" -wait_for 30.0 "salt -C 'kvm* or cmp*' test.ping" +salt -C "${cluster_nodes_query}" pkg.install bridge-utils +salt -C "${control_nodes_query}" state.apply linux.network,linux.system.kernel +wait_for 5.0 "salt -C '${cluster_nodes_query}' state.apply salt.minion" +wait_for 5.0 "salt -C '${compute_nodes_query}' state.apply linux.system,linux.network" +wait_for 30.0 "salt -C '${cluster_nodes_query}' test.ping" -salt -C 'kvm* or cmp*' system.reboot -wait_for 90.0 "salt -C 'kvm* or cmp*' test.ping" +salt -C "${cluster_nodes_query}" system.reboot +wait_for 90.0 "salt -C '${cluster_nodes_query}' test.ping" -salt -C 'kvm* or cmp*' state.apply linux,ntp -salt -C 'kvm* or cmp*' pkg.upgrade refresh=False +salt -C "${cluster_nodes_query}" state.apply linux,ntp +salt -C "${cluster_nodes_query}" pkg.upgrade refresh=False diff --git a/mcp/scripts/lib.sh b/mcp/scripts/lib.sh index 9c12bff64..4e4f36908 100644 --- a/mcp/scripts/lib.sh +++ b/mcp/scripts/lib.sh @@ -407,6 +407,7 @@ function create_vms { # create vms with specified options for serialized_vnode_data in "${vnodes[@]}"; do + if [ -z "${serialized_vnode_data}" ]; then continue; fi IFS=',' read -r -a vnode_data <<< "${serialized_vnode_data}" # prepare network args diff --git a/mcp/scripts/xdf_data.sh.j2 b/mcp/scripts/xdf_data.sh.j2 index 8c9d5d969..c0629fec4 100644 --- a/mcp/scripts/xdf_data.sh.j2 +++ b/mcp/scripts/xdf_data.sh.j2 @@ -11,7 +11,14 @@ # Data derived from XDF (PDF/IDF/SDF/etc), used as input in deploy.sh # +{%- import 'net_map.j2' as nm with context -%} {%- set arch = conf[conf.MCP_JUMP_ARCH] -%} +{%- set V = conf.virtual -%} +{%- set section_map = { + 'infra': -1, + 'control': nm.ctl01.idx, + 'compute': nm.cmp001.idx +} -%} {%- macro bash_arr(_l) -%} ({%- for n in _l -%}'{{ n }}' {% endfor -%}) @@ -24,16 +31,38 @@ {#- Pack all vnode data as string -#} {%- macro serialize_vnodes() -%} - {%- set V = conf.virtual -%} {%- set arr = [] -%} - {%- for n in V.nodes -%} - {%- if n not in V -%}{%- do V.update({n: {}}) -%}{%- endif -%} - {%- do arr.append(pack([n, V[n].ram or arch.default.ram, - V[n].vcpus or arch.default.vcpus])) -%} + {%- for section in section_map -%} + {%- for n in V.nodes[section] -%} + {%- if section_map[section] < 0 or conf.nodes[section_map[section] + loop.index0].node.type == 'virtual' -%} + {%- if n not in V -%}{%- do V.update({n: {}}) -%}{%- endif -%} + {%- do arr.append(pack([n, V[n].ram or arch.default.ram, + V[n].vcpus or arch.default.vcpus])) -%} + {%- endif -%} + {%- endfor -%} {%- endfor -%} '{{ pack(arr, '|') }}' {%- endmacro -%} +{#- Return a bash array of node names or a Salt query, optionally filtered by type #} +{%- macro filter_nodes(type, output_as_query = False, sections = section_map) -%} + {%- set arr = [] -%} + {%- for section in sections -%} + {%- for n in V.nodes[section] -%} + {%- if ( (section_map[section] < 0 and type == 'virtual') or + (section_map[section] >= 0 and + conf.nodes[section_map[section] + loop.index0].node.type in type) ) -%} + {%- do arr.append(n) -%} + {%- endif -%} + {%- endfor -%} + {%- endfor -%} + {%- if output_as_query -%} + '{{ arr | join('* or ') }}*' + {%- else -%} + {{ bash_arr(arr) }} + {%- endif -%} +{%- endmacro -%} + {#- Pack apt_pkg data as string -#} {%- macro serialize_apt_pkg() -%} {%- set arr = [] -%} @@ -59,7 +88,8 @@ OPNFV_BRIDGES=( export CLUSTER_DOMAIN={{ conf.cluster.domain }} cluster_states={{ bash_arr(conf.cluster.states) }} -virtual_nodes={{ bash_arr(conf.virtual.nodes) }} +virtual_nodes={{ filter_nodes('virtual') }} +control_nodes_query={{ filter_nodes(['baremetal', 'virtual'], True, ['control']) }} base_image={{ arch.base_image }} # Serialize vnode data as '<name0>,<ram0>,<vcpu0>|<name1>,<ram1>,<vcpu1>[...]' |