aboutsummaryrefslogtreecommitdiffstats
path: root/mcp/reclass/classes/cluster/baremetal-mcp-pike-common-ha
diff options
context:
space:
mode:
authorAlexandru Avadanii <Alexandru.Avadanii@enea.com>2018-01-27 23:59:50 +0100
committerAlexandru Avadanii <Alexandru.Avadanii@enea.com>2018-02-05 06:03:35 +0100
commitcefce150621699e9d9d3ac5c884a28ee4766c24d (patch)
tree4d8a2fab067a179323328083e0ec4f0c54f6be4f /mcp/reclass/classes/cluster/baremetal-mcp-pike-common-ha
parent342b6bad34e8c949aa81adf711e6a357e56942d3 (diff)
[virtual] PDF-based network defs for cluster nodes
Decouple virtual cluster nodes (ctl, gtw etc.) from opnfv_fn_* vars in favor of parsing PDF/IDF. This is the first step towards unifying baremetal and virtual network definition templates, as well as allowing virtual nodes to run on a remote hypervisor (and eventually with a different arch). opnfv_fn_* vars will still be used for infra VMs spawned on FN (cfg01 and optionally mas01). Adopt new 'net_map.j2' from Pharos submodule for new templates (virt), as well as old ones (baremetal). JIRA: FUEL-322 Change-Id: I150c2416566bbe42ea11cd00f12a8a7bf96776c2 Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
Diffstat (limited to 'mcp/reclass/classes/cluster/baremetal-mcp-pike-common-ha')
-rw-r--r--mcp/reclass/classes/cluster/baremetal-mcp-pike-common-ha/infra/kvm_pdf.yml.j252
-rw-r--r--mcp/reclass/classes/cluster/baremetal-mcp-pike-common-ha/openstack_compute_pdf.yml.j255
2 files changed, 21 insertions, 86 deletions
diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-pike-common-ha/infra/kvm_pdf.yml.j2 b/mcp/reclass/classes/cluster/baremetal-mcp-pike-common-ha/infra/kvm_pdf.yml.j2
index 0aab6cbc0..0d86a086e 100644
--- a/mcp/reclass/classes/cluster/baremetal-mcp-pike-common-ha/infra/kvm_pdf.yml.j2
+++ b/mcp/reclass/classes/cluster/baremetal-mcp-pike-common-ha/infra/kvm_pdf.yml.j2
@@ -1,49 +1,15 @@
##############################################################################
-# Copyright (c) 2017 Mirantis Inc., Enea AB and others.
+# Copyright (c) 2018 Mirantis Inc., Enea AB and others.
# All rights reserved. This program and the accompanying materials
# are made available under the terms of the Apache License, Version 2.0
# which accompanies this distribution, and is available at
# http://www.apache.org/licenses/LICENSE-2.0
##############################################################################
-{# NOTE: br-{mgmt,ctl} are cross-referenced, careful when changing names #}
-{%- if conf.idf is defined and conf.idf.net_config is defined -%}
- {#- NOTE: Currently, we assume all cluster nodes use the same mapping -#}
-
- {#- Determine interface index for each network (plumbing vars) -#}
- {%- set idx_admin = conf['idf']['net_config']['admin']['interface'] -%}
- {%- set idx_mgmt = conf['idf']['net_config']['mgmt']['interface'] -%}
- {%- set idx_private = conf['idf']['net_config']['private']['interface'] -%}
- {%- set idx_public = conf['idf']['net_config']['public']['interface'] -%}
-
- {#- Physical interface OS name for each network (e.g. em1, enp1s0f1) -#}
- {%- set node = conf['idf']['fuel']['network']['node'][0] -%}
- {%- set nic_admin = node['interfaces'][idx_admin] -%}
- {%- set nic_mgmt = node['interfaces'][idx_mgmt] -%}
- {%- set nic_private = node['interfaces'][idx_private] -%}
- {%- set nic_public = node['interfaces'][idx_public] -%}
-
- {#- PCI addresses (only for DPDK on private) -#}
- {%- set bus_private = node['busaddr'][idx_private] -%}
-
- {#- VLAN for each network (only untagged 'admin' is supported by MaaS config!) -#}
- {%- set vlan_admin = conf['idf']['net_config']['admin']['vlan'] -%}
- {%- set vlan_mgmt = conf['idf']['net_config']['mgmt']['vlan'] -%}
- {%- set vlan_private = conf['idf']['net_config']['private']['vlan'] -%}
- {%- set vlan_public = conf['idf']['net_config']['public']['vlan'] -%}
-{%- else -%}
- {%- set nic_admin = 'enp6s0' -%}
- {%- set nic_mgmt = 'enp6s0' -%}
- {%- set nic_private = None -%}
- {%- set nic_public = None -%}
- {%- set vlan_admin = 'native' -%}
- {%- set vlan_mgmt = '300' -%}
- {%- set vlan_private = '1000' -%}
-{%- endif -%}
-
-{#- Filter-out NIC duplicates by constructing a dict (used NICs only) -#}
-{%- set nics = { nic_admin: True, nic_mgmt: True, nic_public: True } -%}
-
-{%- set vlans = { vlan_admin: nic_admin, vlan_mgmt: nic_mgmt, vlan_public: nic_public } -%}
+{#- NOTE: br-{mgmt,ctl} are cross-referenced, careful when changing names #}
+{%- import 'net_map.j2' as nm with context %}
+{#- Filter-out NIC duplicates by constructing a dict (used NICs only) #}
+{%- set nics = { nm.ctl01.nic_admin: True, nm.ctl01.nic_mgmt: True, nm.ctl01.nic_public: True } %}
+{%- set vlans = { nm.vlan_admin: nm.ctl01.nic_admin, nm.vlan_mgmt: nm.ctl01.nic_mgmt, nm.vlan_public: nm.ctl01.nic_public } %}
---
parameters:
linux:
@@ -77,7 +43,7 @@ parameters:
proto: dhcp
type: bridge
use_interfaces:
- - {{ nic_admin }}{% if vlan_admin and vlan_admin != 'native' %}.{{ vlan_admin }}{% endif %}
+ - {{ nm.ctl01.nic_admin }}{% if nm.vlan_admin and nm.vlan_admin != 'native' %}.{{ nm.vlan_admin }}{% endif %}
noifupdown: true
br-ctl:
enabled: true
@@ -86,7 +52,7 @@ parameters:
address: ${_param:single_address}
netmask: 255.255.255.0
use_interfaces:
- - {{ nic_mgmt }}{% if vlan_mgmt and vlan_mgmt != 'native' %}.{{ vlan_mgmt }}{% endif %}
+ - {{ nm.ctl01.nic_mgmt }}{% if nm.vlan_mgmt and nm.vlan_mgmt != 'native' %}.{{ nm.vlan_mgmt }}{% endif %}
br-ex:
enabled: true
proto: manual
@@ -94,5 +60,5 @@ parameters:
netmask: ${_param:opnfv_net_public_mask}
type: bridge
use_interfaces:
- - {{ nic_public }}{% if vlan_public and vlan_public != 'native' %}.{{ vlan_public }}{% endif %}
+ - {{ nm.ctl01.nic_public }}{% if nm.vlan_public and nm.vlan_public != 'native' %}.{{ nm.vlan_public }}{% endif %}
noifupdown: true
diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-pike-common-ha/openstack_compute_pdf.yml.j2 b/mcp/reclass/classes/cluster/baremetal-mcp-pike-common-ha/openstack_compute_pdf.yml.j2
index 2e9466980..ed9ddd6b4 100644
--- a/mcp/reclass/classes/cluster/baremetal-mcp-pike-common-ha/openstack_compute_pdf.yml.j2
+++ b/mcp/reclass/classes/cluster/baremetal-mcp-pike-common-ha/openstack_compute_pdf.yml.j2
@@ -1,46 +1,15 @@
##############################################################################
-# Copyright (c) 2017 Mirantis Inc., Enea AB and others.
+# Copyright (c) 2018 Mirantis Inc., Enea AB and others.
# All rights reserved. This program and the accompanying materials
# are made available under the terms of the Apache License, Version 2.0
# which accompanies this distribution, and is available at
# http://www.apache.org/licenses/LICENSE-2.0
##############################################################################
-{# NOTE: br-{mgmt,ctl} are cross-referenced, careful when changing names #}
-{%- if conf.idf is defined and conf.idf.net_config is defined -%}
- {#- NOTE: Currently, we assume all cluster nodes use the same mapping -#}
-
- {#- Determine interface index for each network (plumbing vars) -#}
- {%- set idx_admin = conf['idf']['net_config']['admin']['interface'] -%}
- {%- set idx_mgmt = conf['idf']['net_config']['mgmt']['interface'] -%}
- {%- set idx_private = conf['idf']['net_config']['private']['interface'] -%}
- {%- set idx_public = conf['idf']['net_config']['public']['interface'] -%}
-
- {#- Physical interface OS name for each network (e.g. em1, enp1s0f1) -#}
- {%- set iface_names = conf['idf']['fuel']['network']['node'][3]['interfaces'] -%}
- {%- set nic_admin = iface_names[idx_admin] -%}
- {%- set nic_mgmt = iface_names[idx_mgmt] -%}
- {%- set nic_private = iface_names[idx_private] -%}
- {%- set nic_public = iface_names[idx_public] -%}
-
- {#- VLAN for each network (only untagged 'admin' is supported by MaaS config!) -#}
- {%- set vlan_admin = conf['idf']['net_config']['admin']['vlan'] -%}
- {%- set vlan_mgmt = conf['idf']['net_config']['mgmt']['vlan'] -%}
- {%- set vlan_private = conf['idf']['net_config']['private']['vlan'] -%}
- {%- set vlan_public = conf['idf']['net_config']['public']['vlan'] -%}
-{%- else -%}
- {%- set nic_admin = 'enp6s0' -%}
- {%- set nic_mgmt = 'enp6s0' -%}
- {%- set nic_private = None -%}
- {%- set nic_public = None -%}
- {%- set vlan_admin = 'native' -%}
- {%- set vlan_mgmt = '300' -%}
- {%- set vlan_private = '1000' -%}
-{%- endif -%}
-
-{#- Filter-out NIC duplicates by constructing a dict (used NICs only) -#}
-{%- set nics = { nic_admin: True, nic_mgmt: True } -%}
-
-{%- set vlans = { vlan_admin: nic_admin, vlan_mgmt: nic_mgmt } -%}
+{#- NOTE: br-{mgmt,ctl} are cross-referenced, careful when changing names #}
+{%- import 'net_map.j2' as nm with context %}
+{#- Filter-out NIC duplicates by constructing a dict (used NICs only) #}
+{%- set nics = { nm.cmp001.nic_admin: True, nm.cmp001.nic_mgmt: True } %}
+{%- set vlans = { nm.vlan_admin: nm.cmp001.nic_admin, nm.vlan_mgmt: nm.cmp001.nic_mgmt } %}
---
parameters:
linux:
@@ -48,7 +17,7 @@ parameters:
bridge: openvswitch
interface:
{%- for nic in nics %}
- {%- if nic == nic_admin %}
+ {%- if nic == nm.cmp001.nic_admin %}
{{ nic }}:
enabled: true
type: eth
@@ -60,7 +29,7 @@ parameters:
type: eth
proto: manual
address: 0.0.0.0
- {%- if nic == nic_public %}
+ {%- if nic == nm.cmp001.nic_public %}
netmask: ${_param:opnfv_net_public_mask}
{%- else %}
netmask: 255.255.255.0
@@ -89,7 +58,7 @@ parameters:
address: ${_param:single_address}
netmask: 255.255.255.0
use_interfaces:
- - {{ nic_mgmt }}{% if vlan_mgmt and vlan_mgmt != 'native' %}.{{ vlan_mgmt }}{% endif %}
+ - {{ nm.cmp001.nic_mgmt }}{% if nm.vlan_mgmt and nm.vlan_mgmt != 'native' %}.{{ nm.vlan_mgmt }}{% endif %}
br-floating:
enabled: true
type: ovs_bridge
@@ -99,8 +68,8 @@ parameters:
type: ovs_port
bridge: br-floating
proto: static
- {%- if vlan_public and vlan_public != 'native' %}
- ovs_options: tag={{ vlan_public }}
+ {%- if nm.vlan_public and nm.vlan_public != 'native' %}
+ ovs_options: tag={{ nm.vlan_public }}
{%- endif %}
address: ${_param:external_address}
netmask: 255.255.255.0
@@ -109,7 +78,7 @@ parameters:
address: 0.0.0.0
netmask: 0.0.0.0
gateway: ${_param:opnfv_net_public_gw}
- {{ nic_public }}:
+ {{ nm.cmp001.nic_public }}:
enabled: true
proto: manual
ovs_port_type: OVSPort