From 5039d069265df15ed3d8e41f7a1c7f9457a9d58a Mon Sep 17 00:00:00 2001 From: Alexandru Avadanii Date: Tue, 1 Aug 2017 22:18:41 +0200 Subject: Bring in baremetal support - ci/deploy.sh: fail if default scenario file is missing; - start by copying reclass/classes/cluster/virtual-mcp-ocata-ovs as classes/cluster/baremetal-mcp-ocata-ovs; - add new state (maas) that will handle MaaS configuration; - Split PXE network in two for baremetal: * rename old "pxe" virtual network to "mcpcontrol", make it non-configurable and identical for baremetal/virtual deploys; * new "pxebr" bridge is dedicated for MaaS fabric network, which comes with its own DHCP, TFTP etc.; - Drop hardcoded PXE gateway & static IP for MaaS node, since "mcpcontrol" remains a NAT-ed virtual network, with its own DHCP; - Keep internet access available on first interfaces for cfg01/mas01; - Align MaaS IP addrs (all x.y.z.3), add public IP for easy debug via MaaS dashboard; - Add static IP in new network segment (192.168.11.3/24) on MaaS node's PXE interface; - Set MaaS PXE interface MTU 1500 (weird network errors with jumbo); - MaaS node: Add NAT iptables traffic forward from "mcpcontrol" to "pxebr" interfaces; - MaaS: Add harcoded lf-pod2 machine info (fixed identation in v6); - Switch our targeted scenario to HA; * scenario: s/os-nosdn-nofeature-noha/os-nosdn-nofeature-ha/ - maas region: Use mcp.rsa.pub from ~ubuntu/.ssh/authorized_keys; - add route for 192.168.11.0/24 via mas01 on cfg01; - fix race condition on kvm nodes network setup: * add "noifupdown" support in salt formula for linux.network; * keep primary eth/br-mgmt unconfigured till reboot; TODO: - Read all this info from PDF (Pod Descriptor File) later; - investigate leftover references to eno2, eth3; - add public network interfaces config, IPs; - improve wait conditions for MaaS commision/deploy; - report upstream breakage in system.single; Change-Id: Ie8dd584b140991d2bd992acdfe47f5644bf51409 Signed-off-by: Michael Polenchuk Signed-off-by: Guillermo Herrero Signed-off-by: Charalampos Kominos Signed-off-by: Alexandru Avadanii --- ...maas-region-use-authorized_keys-1st-entry.patch | 34 ++++++++++++++++++++++ .../0005-maas-vlan-DHCP-enable-on-fabric-2.patch | 28 ++++++++++++++++++ ...inux.network.interface-noifupdown-support.patch | 26 +++++++++++++++++ mcp/patches/patches.list | 3 ++ .../0001-Bring-in-opendaylight-support.patch | 4 +-- ...x.system.single-Fix-py-msgpack-identation.patch | 26 +++++++++++++++++ 6 files changed, 119 insertions(+), 2 deletions(-) create mode 100644 mcp/patches/0004-maas-region-use-authorized_keys-1st-entry.patch create mode 100644 mcp/patches/0005-maas-vlan-DHCP-enable-on-fabric-2.patch create mode 100644 mcp/patches/0006-linux.network.interface-noifupdown-support.patch create mode 100644 mcp/patches/reclass-system-salt-model/0002-linux.system.single-Fix-py-msgpack-identation.patch (limited to 'mcp/patches') diff --git a/mcp/patches/0004-maas-region-use-authorized_keys-1st-entry.patch b/mcp/patches/0004-maas-region-use-authorized_keys-1st-entry.patch new file mode 100644 index 000000000..381acb324 --- /dev/null +++ b/mcp/patches/0004-maas-region-use-authorized_keys-1st-entry.patch @@ -0,0 +1,34 @@ +From: Charalampos Kominos +Date: Sat, 5 Aug 2017 02:03:01 +0200 +Subject: [PATCH] maas: region: use authorized_keys 1st entry + +MaaS custom py modules accepts the "sshprefs" variable via pillar, +however we want to read it from ~ubuntu/.ssh/authorized_keys. + +Bypass the py module and call MaaS CLI directly, passing the first +authorized key, which should be mcp.rsa.pub. + +Signed-off-by: Charalampos Kominos +--- + +diff --git a/maas/region.sls b/maas/region.sls +index d3227ca..8a2243d 100644 +--- a/maas/region.sls ++++ b/maas/region.sls +@@ -179,8 +179,14 @@ + - module: maas_config + + maas_sshprefs: +- module.run: +- - name: maas.process_sshprefs ++# NOTE(armband): maas.process_sshprefs also works, but we need to read the key ++# from authorized_keys. Should be reworked at some point. ++# module.run: ++# - name: maas.process_sshprefs ++# - require: ++ cmd.run: ++ - name: "maas login {{ region.admin.username }} http://{{ region.bind.host }}/MAAS/api/2.0 - < /var/lib/maas/.maas_credentials && SSH_KEY=$(cat authorized_keys | head -1) && maas opnfv sshkeys create \"key=$SSH_KEY\"" ++ - cwd: "/home/ubuntu/.ssh" + - require: + - module: maas_config + diff --git a/mcp/patches/0005-maas-vlan-DHCP-enable-on-fabric-2.patch b/mcp/patches/0005-maas-vlan-DHCP-enable-on-fabric-2.patch new file mode 100644 index 000000000..db37e731e --- /dev/null +++ b/mcp/patches/0005-maas-vlan-DHCP-enable-on-fabric-2.patch @@ -0,0 +1,28 @@ +From: Alexandru Avadanii +Date: Sat, 5 Aug 2017 02:03:01 +0200 +Subject: [PATCH] maas: vlan DHCP enable on fabric-2 + +MaaS custom py modules does not implement vlan API support, +so use MaaS CLI directly to enable DHCP on vlan 0 on fabric-2. + +Signed-off-by: Alexandru Avadanii +Signed-off-by: Guillermo Herrero +--- + +diff --git a/maas/region.sls b/maas/region.sls +index d3227ca..8a2243d 100644 +--- a/maas/region.sls ++++ b/maas/region.sls +@@ -190,4 +190,12 @@ + - require: + - module: maas_config + ++maas_vlan_dhcp: ++# NOTE(armband): To be implemented via _modules/maas.py later ++ cmd.run: ++ - name: "maas login {{ region.admin.username }} http://{{ region.bind.host }}/MAAS/api/2.0 - < /var/lib/maas/.maas_credentials && maas opnfv vlan update 2 0 dhcp_on=True primary_rack={{ region.maas_config.maas_name }}" ++ - require: ++ - module: maas_subnets ++ - module: maas_dhcp_snippets ++ + {%- endif %} diff --git a/mcp/patches/0006-linux.network.interface-noifupdown-support.patch b/mcp/patches/0006-linux.network.interface-noifupdown-support.patch new file mode 100644 index 000000000..f4b7de803 --- /dev/null +++ b/mcp/patches/0006-linux.network.interface-noifupdown-support.patch @@ -0,0 +1,26 @@ +From: Alexandru Avadanii +Date: Sat, 5 Aug 2017 02:03:01 +0200 +Subject: [PATCH] linux.network.interface: noifupdown support + +According to [1], salt states/network supports "noifupdown" as a +parameter for each interface. +Adjust salt formula part for `linux.network.interface`, by extending +the "interface_params" in accordingly. + +Signed-off-by: Alexandru Avadanii +Signed-off-by: Charalampos Kominos +Signed-off-by: Guillermo Herrero +--- + +diff --git a/linux/map.jinja b/linux/map.jinja +index d3227ca..8a2243d 100644 +--- a/linux/map.jinja ++++ b/linux/map.jinja +@@ -92,6 +92,7 @@ + 'updelay', + 'hashing-algorithm', + 'hardware-dma-ring-rx', ++ 'ifupdown', + ] %} + + {% set network = salt['grains.filter_by']({ diff --git a/mcp/patches/patches.list b/mcp/patches/patches.list index e55e67984..acacb47e0 100644 --- a/mcp/patches/patches.list +++ b/mcp/patches/patches.list @@ -1,3 +1,6 @@ /usr/share/salt-formulas/env: 0001-opendaylight-formula-neutron.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: 0004-maas-region-use-authorized_keys-1st-entry.patch +/usr/share/salt-formulas/env: 0005-maas-vlan-DHCP-enable-on-fabric-2.patch +/usr/share/salt-formulas/env: 0006-linux.network.interface-noifupdown-support.patch diff --git a/mcp/patches/reclass-system-salt-model/0001-Bring-in-opendaylight-support.patch b/mcp/patches/reclass-system-salt-model/0001-Bring-in-opendaylight-support.patch index 15f23db34..adf07eb81 100644 --- a/mcp/patches/reclass-system-salt-model/0001-Bring-in-opendaylight-support.patch +++ b/mcp/patches/reclass-system-salt-model/0001-Bring-in-opendaylight-support.patch @@ -8,8 +8,8 @@ Change-Id: I3efec9a8b586a6c75b1c1635ad2a7024d73d9ad2 neutron/control/opendaylight/single.yml | 16 ++++++++++++++++ neutron/gateway/opendaylight/single.yml | 8 ++++++++ opendaylight/server/single.yml | 2 ++ - .../storage/system/opendaylight_control_single.yml | 15 +++++++++++++++ - 5 files changed, 60 insertions(+) + .../storage/system/opendaylight_control_single.yml | 13 +++++++++++++ + 5 files changed, 58 insertions(+) create mode 100644 neutron/control/opendaylight/cluster.yml create mode 100644 neutron/control/opendaylight/single.yml create mode 100644 neutron/gateway/opendaylight/single.yml diff --git a/mcp/patches/reclass-system-salt-model/0002-linux.system.single-Fix-py-msgpack-identation.patch b/mcp/patches/reclass-system-salt-model/0002-linux.system.single-Fix-py-msgpack-identation.patch new file mode 100644 index 000000000..799a9cf97 --- /dev/null +++ b/mcp/patches/reclass-system-salt-model/0002-linux.system.single-Fix-py-msgpack-identation.patch @@ -0,0 +1,26 @@ +From: Alexandru Avadanii +Date: Mon, 14 Aug 2017 23:44:05 +0200 +Subject: [PATCH] linux.system.single: Fix py-msgpack identation + +Broken upstream since commit [1], adjust it accordingly. + +[1] https://github.com/Mirantis/reclass-system-salt-model/commit/517e5ff + +Signed-off-by: Alexandru Avadanii +--- + linux/system/single.yml | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/linux/system/single.yml b/linux/system/single.yml +index 4c5228f..e2a8502 100644 +--- a/linux/system/single.yml ++++ b/linux/system/single.yml +@@ -12,7 +12,7 @@ parameters: + name: root + home: /root + package: +- python-msgpack: ++ python-msgpack: + version: latest + cloud-init: + version: purged -- cgit 1.2.3-korg