[patch] MaaS: Switch to upstream fabric/vlan mgmt 19/59619/1
authorAlexandru Avadanii <Alexandru.Avadanii@enea.com>
Mon, 9 Jul 2018 14:32:16 +0000 (16:32 +0200)
committerAlexandru Avadanii <Alexandru.Avadanii@enea.com>
Mon, 9 Jul 2018 14:32:58 +0000 (16:32 +0200)
Obsolete our out of tree patch in favor of upstream mechanisms for
creating fabrics/VLANs/subnets.

Change-Id: I57d6d59764a825b428f423d48c5d90af7f2e676f
Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
(cherry picked from commit 3831d538436cbf7c033b560b76f554a1dfe28a4c)

mcp/patches/0001-maasng-Allow-fabric-ID-to-be-determined-from-CIDR.patch [deleted file]
mcp/patches/patches.list
mcp/reclass/classes/cluster/mcp-pike-common-ha/infra/maas_pdf.yml.j2

diff --git a/mcp/patches/0001-maasng-Allow-fabric-ID-to-be-determined-from-CIDR.patch b/mcp/patches/0001-maasng-Allow-fabric-ID-to-be-determined-from-CIDR.patch
deleted file mode 100644 (file)
index 6748135..0000000
+++ /dev/null
@@ -1,87 +0,0 @@
-::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
-: 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
-::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
-From: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
-Date: Fri, 29 Jun 2018 02:48:55 +0200
-Subject: [PATCH] maasng: Allow fabric ID to be determined from CIDR
-
-MaaS usually creates network resources (e.g. subnets, fabrics)
-automatically based on existing network interface definitions.
-However, the fabric naming is not guaranteed across deployments,
-so the same interface/subnet CIDR might end up as 'fabric-2' or
-'fabric-5' depending on non-deterministic factors.
-
-To allow configuring VLAN DHCP on such network segments we need a
-mechanism that does not hardcode the fabric ID in pillar data, but
-instead determines it at runtime based on subnet CIDR.
-
-maasng module: Fix 'name' arg in update_vlan
-
-name argument is silently overridden to use the state name if the
-value passed is not a string, leading to all kinds of breakage.
-
-While at it, default to using the VLAN ID as the name if not
-explicitly set.
-
-Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
----
- _modules/maasng.py |  7 ++++++-
- maas/region.sls    | 15 ++++++++++++++-
- 3 files changed, 39 insertions(+), 3 deletions(-)
-
-diff --git a/_modules/maasng.py b/_modules/maasng.py
-index ce8e99e..706c0ec 100644
---- a/_modules/maasng.py
-+++ b/_modules/maasng.py
-@@ -966,7 +966,12 @@ def get_fabricid(fabric):
-     try:
-         return list_fabric()[fabric]['id']
-     except KeyError:
--        return {"error": "Frabic not found on MaaS server"}
-+        # fabric might be specified as CIDR, try to find the actual fabric ID
-+        maas_subnets = list_subnet()
-+        for subnet in maas_subnets.keys():
-+            if maas_subnets[subnet]['cidr'] == fabric:
-+                return maas_subnets[subnet]['vlan']['fabric_id']
-+        return {"error": "Fabric not found on MaaS server"}
-
-
- def update_vlan(name, fabric, vid, description, primary_rack, dhcp_on=False):
-diff --git a/maas/region.sls b/maas/region.sls
-index f50b901..71bfefa 100644
---- a/maas/region.sls
-+++ b/maas/region.sls
-@@ -305,6 +305,19 @@ maas_create_subnet_{{ subnet_name }}:
-     {%- endif %}
- {%- endfor %}
-
-+{%- for subnet_name, subnet in region.subnets.iteritems() %}
-+{%- for vid, vlan in subnet.get('vlan', {}).items() %}
-+maas_update_vlan_for_{{ subnet_name }}_{{ vid }}:
-+  maasng.update_vlan:
-+  - vid: {{ vid }}
-+  - fabric: {{ subnet.cidr }}
-+  - name: '{{ vlan.get('name', vid) }}'
-+  - description: {{ vlan.description }}
-+  - primary_rack: {{ region.maas_config.maas_name }}
-+  - dhcp_on: {{ vlan.get('dhcp','False') }}
-+{%- endfor %}
-+{%- endfor %}
-+
- {%- for subnet_name, subnet in region.subnets.iteritems() %}
- {%- if subnet.get('multiple') == True %}
- {%- for range_name, iprange in subnet.get('iprange',{}).items() %}
-@@ -375,7 +388,7 @@ maas_update_vlan_for_{{ fabric_name }}_{{ vid }}:
-   maasng.update_vlan:
-   - vid: {{ vid }}
-   - fabric: {{ fabric_name }}
--  - name: {{ vlan.get('name','') }}
-+  - name: '{{ vlan.get('name', vid) }}'
-   - description: {{ vlan.description }}
-   - primary_rack: {{ region.maas_config.maas_name }}
-   - dhcp_on: {{ vlan.get('dhcp','False') }}
index 3d9cb81..bd57ecd 100644 (file)
@@ -5,7 +5,6 @@
 # which accompanies this distribution, and is available at
 # http://www.apache.org/licenses/LICENSE-2.0
 ##############################################################################
-/usr/share/salt-formulas/env: 0001-maasng-Allow-fabric-ID-to-be-determined-from-CIDR.patch
 /usr/share/salt-formulas/env: 0002-maas-region-skip-credentials-update.patch
 /usr/share/salt-formulas/env: 0003-maas-region-force-artifact-download.patch
 /usr/share/salt-formulas/env: 0007-network.interface-Fix-ifup-OVS-port-with-route.patch
index a4e85bd..e6c4af7 100644 (file)
 parameters:
   maas:
     region:
+      fabrics:
+        pxe_admin:
+          name: 'pxe_admin'
+          description: Fabric for PXE/admin
+          vlans:
+            0:
+              name: 'vlan 0'
+              description: PXE/admin VLAN
+              dhcp: true
+              primary_rack: "${linux:network:hostname}"
       subnets:
         {{ net_admin }}:
           name: {{ net_admin }}
           cidr: {{ net_admin }}
           gateway_ip: ${_param:single_address}
-          fabric: fabric-2
-          iprange:
-            start: ${_param:opnfv_infra_maas_pxe_start_address}
-            end: ${_param:opnfv_infra_maas_pxe_end_address}
-            type: dynamic
-          vlan:
-            0:
-              description: "VLAN 0"
-              dhcp: true
+          fabric: ${maas:region:fabrics:pxe_admin:name}
+          vlan: 0
+          ipranges:
+            1:
+              start: ${_param:opnfv_infra_maas_pxe_start_address}
+              end: ${_param:opnfv_infra_maas_pxe_end_address}
+              type: dynamic
       # Space-separated list of dpkg architectures to be supported by MaaS
       opnfv_arches:{%- for arch in cluster_arch %} {{ arch | dpkg_arch }}{%- endfor %}
       sshprefs: