From 33c017d388bf0f9cef5199c186bec5b4fd01f767 Mon Sep 17 00:00:00 2001
From: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
Date: Sat, 7 Apr 2018 05:27:48 +0200
Subject: Enforce static configuration instead of DHCP

- noha: 'accept_policy: open_mode' to align with ha scenarios;
- s/cmp01/cmp001/g to align all scenarios and allow code reuse;
- rename network params: s/dhcp/mcpcontrol/g, cleanup;
- computes XDF data: drop 'opnfv_*' layer of params, cleanup;
- local vPDF: add comments with default roles by node index;
- parameterize all netmasks;
- drop unused address/netmask for 'proto: manual' interfaces;
- virsh_net: cleanup definitions, remove hardcodes, align IP on
  jumpserver and DHCP range with MaaS for pxebr;
- maas: parameterize hardcoded '/24' cidr for PXE/admin, refactor
  maas.region.machines parameterization;
- merge <all-mcp-arch-common/infra/config_*pdf.yaml.j2> templates;
- move reclass.storage definitions of compute nodes to common dir;
- drop 'openstack_compute_*' reclass params in favor of expanding
  them via j2 directly in reclass.storage params;
- adopt `nm.cluster.has_*_nodes` where possible;
- obsolete `runtime.yml` from reclass model;
- refactor arch-specific reclass param selection;
- remove unused defaults in favor of mandatory IDF properties;
- noha: prepare for baremetal node support in cinder_lvm_devices;
- interfaces: add interface_mtu and 'noifupdown: true' everywhere;
- interfaces: use j2 macros to generate eth/vlan config;
- states cleanup: remove DHCP route disable workaround on prx/cmp;
- allow configuring NTP servers via:
  `idf.fuel.network.ntp_strata_host{1,2}`;
- ovs_bridge: Allow setting gateway, dns-nameservers
- apache: Adjust module list for novcp class inheritance;
- glusterfs PPA: pin with same prio of MCP repos for novcp scenario;

JIRA: FUEL-319
JIRA: FUEL-326
JIRA: FUEL-337

Change-Id: Ia6ad64ba8cade85a75fb22c9a2505decc3834360
Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
---
 mcp/scripts/virsh_net/net_mcpcontrol.xml.j2 |  5 +++--
 mcp/scripts/virsh_net/net_mgmt.xml.j2       | 10 ++--------
 mcp/scripts/virsh_net/net_public.xml.j2     | 18 +++---------------
 mcp/scripts/virsh_net/net_pxebr.xml.j2      | 13 +++----------
 4 files changed, 11 insertions(+), 35 deletions(-)

(limited to 'mcp/scripts/virsh_net')

diff --git a/mcp/scripts/virsh_net/net_mcpcontrol.xml.j2 b/mcp/scripts/virsh_net/net_mcpcontrol.xml.j2
index 95424db4e..569fa7089 100644
--- a/mcp/scripts/virsh_net/net_mcpcontrol.xml.j2
+++ b/mcp/scripts/virsh_net/net_mcpcontrol.xml.j2
@@ -7,13 +7,14 @@
  http://www.apache.org/licenses/LICENSE-2.0
 -->
 {#- conf.MCPCONTROL_NET & co are mandatory, defaults are set via globals.sh #}
+{%- set net_mcpcontrol = [conf.MCPCONTROL_NET, conf.MCPCONTROL_PREFIX] | join("/") %}
 <network>
   <name>mcpcontrol</name>
   <bridge name="mcpcontrol"/>
   <forward mode="nat"/>
-  <ip address="{{ conf.MCPCONTROL_NET | ipaddr_index(1) }}" netmask="{{ conf.MCPCONTROL_PREFIX | netmask }}">
+  <ip address="{{ net_mcpcontrol | ipnet_hostaddr(1) }}" netmask="{{ net_mcpcontrol | ipnet_netmask }}">
     <dhcp>
-      <range start="{{ conf.MCPCONTROL_NET | ipaddr_index(2) }}" end="{{ conf.MCPCONTROL_NET | ipaddr_index(254) }}"/>
+      <range start="{{ net_mcpcontrol | ipnet_hostaddr(2) }}" end="{{ net_mcpcontrol | ipnet_hostmax }}"/>
     </dhcp>
   </ip>
 </network>
diff --git a/mcp/scripts/virsh_net/net_mgmt.xml.j2 b/mcp/scripts/virsh_net/net_mgmt.xml.j2
index a558293fa..23b32f2f4 100644
--- a/mcp/scripts/virsh_net/net_mgmt.xml.j2
+++ b/mcp/scripts/virsh_net/net_mgmt.xml.j2
@@ -6,15 +6,9 @@
  which accompanies this distribution, and is available at
  http://www.apache.org/licenses/LICENSE-2.0
 -->
-{%- if conf.idf.net_config.mgmt is defined %}
-  {%- set mgmt_network = conf.idf.net_config.mgmt.network %}
-  {%- set mgmt_prefix = conf.idf.net_config.mgmt.mask %}
-{%- else %}
-  {%- set mgmt_network = '172.16.10.0' %}
-  {%- set mgmt_prefix = '24' %}
-{%- endif %}
+{%- import 'net_map.j2' as nm with context %}
 <network>
   <name>mgmt</name>
   <bridge name="mgmt"/>
-  <ip address="{{ mgmt_network | ipaddr_index(1) }}" netmask="{{ mgmt_prefix | netmask }}"/>
+  <ip address="{{ nm.net_mgmt | ipnet_hostmin }}" netmask="{{ nm.net_mgmt | ipnet_netmask }}"/>
 </network>
diff --git a/mcp/scripts/virsh_net/net_public.xml.j2 b/mcp/scripts/virsh_net/net_public.xml.j2
index 737b638b3..a9e8349f4 100644
--- a/mcp/scripts/virsh_net/net_public.xml.j2
+++ b/mcp/scripts/virsh_net/net_public.xml.j2
@@ -6,27 +6,15 @@
  which accompanies this distribution, and is available at
  http://www.apache.org/licenses/LICENSE-2.0
 -->
-{%- set cluster = {'has_virtual_nodes': False} %}
-{%- for node in conf.nodes %}
-  {%- if not cluster.has_virtual_nodes and node.node.type == 'virtual' %}
-    {%- do cluster.update({'has_virtual_nodes': True}) %}
-  {%- endif %}
-{%- endfor %}
-{%- if conf.idf.net_config.public is defined %}
-  {%- set public_network = conf.idf.net_config.public.network %}
-  {%- set public_prefix = conf.idf.net_config.public.mask %}
-{%- else %}
-  {%- set public_network = '10.16.0.0' %}
-  {%- set public_prefix = '24' %}
-{%- endif %}
+{%- import 'net_map.j2' as nm with context %}
 <network>
   <name>public</name>
   <bridge name="public"/>
-{%- if cluster.has_virtual_nodes %}
+{%- if nm.cluster.has_virtual_nodes %}
 {#- Ideally, jumpserver would have a real Linux bridge we will hook to.
     In case it doesn't, we use this virsh network as a *mock* public.
     The *mock* public should NOT overlap with the real public in any way. #}
   <forward mode="nat"/>
-  <ip address="{{ public_network | ipaddr_index(1) }}" netmask="{{ public_prefix | netmask }}"/>
+  <ip address="{{ nm.net_public | ipnet_hostmin }}" netmask="{{ nm.net_public | ipnet_netmask }}"/>
 {%- endif %}
 </network>
diff --git a/mcp/scripts/virsh_net/net_pxebr.xml.j2 b/mcp/scripts/virsh_net/net_pxebr.xml.j2
index f82780cf7..1c48e9b1a 100644
--- a/mcp/scripts/virsh_net/net_pxebr.xml.j2
+++ b/mcp/scripts/virsh_net/net_pxebr.xml.j2
@@ -6,21 +6,14 @@
  which accompanies this distribution, and is available at
  http://www.apache.org/licenses/LICENSE-2.0
 -->
-{%- if conf.idf.net_config.admin is defined %}
-  {%- set pxebr_network = conf.idf.net_config.admin.network %}
-  {%- set pxebr_prefix = conf.idf.net_config.admin.mask %}
-{%- else %}
-  {%- set pxebr_network = '192.168.11.0' %}
-  {%- set pxebr_prefix = '24' %}
-{%- endif %}
+{%- import 'net_map.j2' as nm with context %}
 <network>
   <name>pxebr</name>
   <forward mode="nat"/>
   <bridge name="pxebr"/>
-  <ip address="{{ pxebr_network | ipaddr_index(1) }}" netmask="{{ pxebr_prefix | netmask }}">
-    <!-- NOTE: .254 is harcoded for now (for /24 prefix), should be computed instead. -->
+  <ip address="{{ nm.net_admin_gw }}" netmask="{{ nm.net_admin | ipnet_netmask }}">
     <dhcp>
-      <range start="{{ pxebr_network | ipaddr_index(4) }}" end="{{ pxebr_network | ipaddr_index(254) }}"/>
+      <range start="{{ nm.net_admin_pool_start }}" end="{{ nm.net_admin_pool_end }}"/>
     </dhcp>
   </ip>
 </network>
-- 
cgit