Merge "[noha] ctl01: Enable jumbo frames"
authorAlexandru Avadanii <Alexandru.Avadanii@enea.com>
Tue, 21 Aug 2018 14:49:51 +0000 (14:49 +0000)
committerGerrit Code Review <gerrit@opnfv.org>
Tue, 21 Aug 2018 14:49:51 +0000 (14:49 +0000)
38 files changed:
ci/deploy.sh
mcp/config/scenario/defaults.yaml
mcp/config/scenario/os-nosdn-vpp-ha.yaml.j2 [new file with mode: 0644]
mcp/config/scenario/os-nosdn-vpp-noha.yaml.j2 [new file with mode: 0644]
mcp/patches/0016-Disable-glance-signature-verification.patch [deleted file]
mcp/patches/patches.list
mcp/patches/reclass-system-salt-model/0001-Use-keystone-v3-endpoints-by-default.patch
mcp/patches/scripts/0001-salt-master-setup-Group-APT-install-formulas.patch [moved from mcp/patches/scripts/0003-salt-master-setup-Group-APT-install-formulas.patch with 98% similarity]
mcp/patches/scripts/0001-salt-master-setup.sh-Allow-arm64-salt-bootstrap.patch [deleted file]
mcp/reclass/classes/cluster/mcp-common-ha/openstack_compute.yml
mcp/reclass/classes/cluster/mcp-common-noha/openstack_compute.yml
mcp/reclass/classes/cluster/mcp-common-noha/openstack_compute_pdf.yml.j2
mcp/reclass/classes/cluster/mcp-common-noha/openstack_gateway_pdf.yml.j2
mcp/reclass/classes/cluster/mcp-odl-noha/opendaylight/control.yml
mcp/reclass/classes/cluster/mcp-vpp-ha/infra/config.yml [new file with mode: 0644]
mcp/reclass/classes/cluster/mcp-vpp-ha/infra/init.yml [new file with mode: 0644]
mcp/reclass/classes/cluster/mcp-vpp-ha/infra/init_vcp.yml.j2 [new file with mode: 0644]
mcp/reclass/classes/cluster/mcp-vpp-ha/infra/kvm.yml.j2 [new file with mode: 0644]
mcp/reclass/classes/cluster/mcp-vpp-ha/infra/maas.yml [new file with mode: 0644]
mcp/reclass/classes/cluster/mcp-vpp-ha/init.yml [new file with mode: 0644]
mcp/reclass/classes/cluster/mcp-vpp-ha/openstack/compute.yml [new file with mode: 0644]
mcp/reclass/classes/cluster/mcp-vpp-ha/openstack/compute_pdf.yml.j2 [new file with mode: 0644]
mcp/reclass/classes/cluster/mcp-vpp-ha/openstack/control.yml [new file with mode: 0644]
mcp/reclass/classes/cluster/mcp-vpp-ha/openstack/database.yml [new file with mode: 0644]
mcp/reclass/classes/cluster/mcp-vpp-ha/openstack/init.yml [new file with mode: 0644]
mcp/reclass/classes/cluster/mcp-vpp-ha/openstack/message_queue.yml [new file with mode: 0644]
mcp/reclass/classes/cluster/mcp-vpp-ha/openstack/proxy.yml [new file with mode: 0644]
mcp/reclass/classes/cluster/mcp-vpp-ha/openstack/telemetry.yml [new file with mode: 0644]
mcp/reclass/classes/cluster/mcp-vpp-noha/infra/config.yml [new file with mode: 0644]
mcp/reclass/classes/cluster/mcp-vpp-noha/infra/init.yml [new file with mode: 0644]
mcp/reclass/classes/cluster/mcp-vpp-noha/infra/maas.yml [new file with mode: 0644]
mcp/reclass/classes/cluster/mcp-vpp-noha/init.yml [new file with mode: 0644]
mcp/reclass/classes/cluster/mcp-vpp-noha/openstack/compute.yml.j2 [new file with mode: 0644]
mcp/reclass/classes/cluster/mcp-vpp-noha/openstack/control.yml [new file with mode: 0644]
mcp/reclass/classes/cluster/mcp-vpp-noha/openstack/gateway.yml.j2 [new file with mode: 0644]
mcp/reclass/classes/cluster/mcp-vpp-noha/openstack/init.yml [new file with mode: 0644]
mcp/reclass/nodes/cfg01.mcp-vpp-ha.local.yml [new file with mode: 0644]
mcp/reclass/nodes/cfg01.mcp-vpp-noha.local.yml [new file with mode: 0644]

index 07cde26..ea8524a 100755 (executable)
@@ -123,11 +123,11 @@ EOF
 # BEGIN of variables to customize
 #
 CI_DEBUG=${CI_DEBUG:-0}; [[ "${CI_DEBUG}" =~ (false|0) ]] || set -x
-REPO_ROOT_PATH=$(readlink -f "$(dirname "${BASH_SOURCE[0]}")/..")
-DEPLOY_DIR=$(cd "${REPO_ROOT_PATH}/mcp/scripts"; pwd)
-STORAGE_DIR=$(cd "${REPO_ROOT_PATH}/mcp/deploy/images"; pwd)
+MCP_REPO_ROOT_PATH=$(readlink -f "$(dirname "${BASH_SOURCE[0]}")/..")
+DEPLOY_DIR=$(cd "${MCP_REPO_ROOT_PATH}/mcp/scripts"; pwd)
+MCP_STORAGE_DIR=$(cd "${MCP_REPO_ROOT_PATH}/mcp/deploy/images"; pwd)
 URI_REGEXP='(file|https?|ftp)://.*'
-BASE_CONFIG_URI="file://${REPO_ROOT_PATH}/mcp/scripts/pharos"
+BASE_CONFIG_URI="file://${MCP_REPO_ROOT_PATH}/mcp/scripts/pharos"
 
 # Customize deploy workflow
 DRY_RUN=${DRY_RUN:-0}
@@ -199,7 +199,7 @@ do
             ;;
         S)
             if [[ ${OPTARG} ]]; then
-                STORAGE_DIR="${OPTARG}"
+                MCP_STORAGE_DIR="${OPTARG}"
             fi
             ;;
         h)
@@ -251,7 +251,7 @@ fi
 ./sysinfo_print.sh
 
 # Clone git submodules and apply our patches
-make -C "${REPO_ROOT_PATH}/mcp/patches" deepclean patches-import
+make -C "${MCP_REPO_ROOT_PATH}/mcp/patches" deepclean patches-import
 
 # Check scenario file existence
 SCENARIO_DIR="$(readlink -f "../config/scenario")"
@@ -266,11 +266,12 @@ export MAAS_SSH_KEY="$(cat "$(basename "${SSH_KEY}").pub")"
 
 MCP_DPDK_MODE=$([[ "$DEPLOY_SCENARIO" =~ ovs ]] && echo 1 || echo 0)
 # Expand jinja2 templates based on PDF data and env vars
-export MCP_VCP MCP_DPDK_MODE MCP_JUMP_ARCH=$(uname -i)
-do_templates_scenario "${STORAGE_DIR}" "${TARGET_LAB}" "${TARGET_POD}" \
+export MCP_REPO_ROOT_PATH MCP_VCP MCP_DPDK_MODE MCP_STORAGE_DIR \
+       MCP_JUMP_ARCH=$(uname -i)
+do_templates_scenario "${MCP_STORAGE_DIR}" "${TARGET_LAB}" "${TARGET_POD}" \
                       "${BASE_CONFIG_URI}" "${SCENARIO_DIR}"
-do_templates_cluster  "${STORAGE_DIR}" "${TARGET_LAB}" "${TARGET_POD}" \
-                      "${REPO_ROOT_PATH}" \
+do_templates_cluster  "${MCP_STORAGE_DIR}" "${TARGET_LAB}" "${TARGET_POD}" \
+                      "${MCP_REPO_ROOT_PATH}" \
                       "${SCENARIO_DIR}/defaults.yaml" \
                       "${SCENARIO_DIR}/${DEPLOY_SCENARIO}.yaml"
 
@@ -289,18 +290,18 @@ elif [ ${USE_EXISTING_INFRA} -gt 0 ]; then
     notify "[NOTE] Use existing infra" 2
     check_connection
 else
-    prepare_vms "${base_image}" "${STORAGE_DIR}" "${virtual_repos_pkgs}" \
+    prepare_vms "${base_image}" "${MCP_STORAGE_DIR}" "${virtual_repos_pkgs}" \
       "${virtual_nodes[@]}"
     create_networks "${OPNFV_BRIDGES[@]}"
     do_sysctl_cfg
     do_udev_cfg
-    create_vms "${STORAGE_DIR}" "${virtual_nodes_data}" "${OPNFV_BRIDGES[@]}"
+    create_vms "${MCP_STORAGE_DIR}" "${virtual_nodes_data}" "${OPNFV_BRIDGES[@]}"
     update_mcpcontrol_network
     start_vms "${virtual_nodes[@]}"
     check_connection
 fi
 if [ ${USE_EXISTING_INFRA} -lt 2 ]; then
-    wait_for 5 "./salt.sh ${STORAGE_DIR}/pod_config.yml ${virtual_nodes[*]}"
+    wait_for 5 "./salt.sh ${MCP_STORAGE_DIR}/pod_config.yml ${virtual_nodes[*]}"
 fi
 
 # Openstack cluster setup
index f5640f7..b228463 100644 (file)
@@ -43,7 +43,6 @@ aarch64:
         - armband 1201 deb [arch=arm64] http://linux.enea.com/mcp-repos/queens/xenial queens-armband main
     pkg:
       install:
-        - linux-generic-hwe-16.04
         - python-futures
         - salt-minion
   control:
diff --git a/mcp/config/scenario/os-nosdn-vpp-ha.yaml.j2 b/mcp/config/scenario/os-nosdn-vpp-ha.yaml.j2
new file mode 100644 (file)
index 0000000..6ccb590
--- /dev/null
@@ -0,0 +1,58 @@
+##############################################################################
+# 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
+##############################################################################
+{%- import 'net_map.j2' as nm with context %}
+---
+cluster:
+  domain: mcp-vpp-ha.local
+  states:
+{%- if nm.cluster.has_baremetal_nodes %}
+    - maas
+    - baremetal_init
+{%- endif %}
+{%- if conf.MCP_VCP %}
+    - virtual_control_plane
+{%- endif %}
+    - openstack_ha
+    - networks
+virtual:
+  nodes:
+    infra:
+      - cfg01
+{%- if nm.cluster.has_baremetal_nodes %}
+      - 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
+  mas01:
+    vcpus: 4
+    ram: 6144
+  # NOTE: We might need to add more RAM here
+  kvm01:
+    vcpus: 4
+    ram: 14336
+  kvm02:
+    vcpus: 4
+    ram: 14336
+  kvm03:
+    vcpus: 4
+    ram: 14336
+  cmp001:
+    vcpus: 4
+    ram: 8192
+  cmp002:
+    vcpus: 4
+    ram: 8192
diff --git a/mcp/config/scenario/os-nosdn-vpp-noha.yaml.j2 b/mcp/config/scenario/os-nosdn-vpp-noha.yaml.j2
new file mode 100644 (file)
index 0000000..41cb504
--- /dev/null
@@ -0,0 +1,37 @@
+##############################################################################
+# Copyright (c) 2017 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
+##############################################################################
+{%- import 'net_map.j2' as nm with context %}
+---
+cluster:
+  domain: mcp-vpp-noha.local
+  states:
+{%- if nm.cluster.has_baremetal_nodes %}
+    - maas
+    - baremetal_init
+{%- endif %}
+    - openstack_noha
+    - neutron_gateway
+    - networks
+virtual:
+  nodes:
+    infra:
+      - cfg01
+{%- if nm.cluster.has_baremetal_nodes %}
+      - mas01
+{%- endif %}
+    control:
+      - ctl01
+      - gtw01
+    compute:
+      - cmp001
+      - cmp002
+  ctl01:
+    vcpus: 4
+    ram: 14336
+  gtw01:
+    ram: 2048
diff --git a/mcp/patches/0016-Disable-glance-signature-verification.patch b/mcp/patches/0016-Disable-glance-signature-verification.patch
deleted file mode 100644 (file)
index 55f6418..0000000
+++ /dev/null
@@ -1,36 +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: Delia Popescu <delia.popescu@enea.com>
-Date: Mon, 6 Aug 2018 17:09:14 +0300
-Subject: [PATCH] Disable glance signature verification
-
-Disable glance signature verification if barbican
-integration is enabled on compute nodes
-
-Signed-off-by: Delia Popescu <delia.popescu@enea.com>
----
- nova/files/queens/nova-compute.conf.Debian | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/nova/files/queens/nova-compute.conf.Debian b/nova/files/queens/nova-compute.conf.Debian
-index d471a264..47a4e890 100644
---- a/nova/files/queens/nova-compute.conf.Debian
-+++ b/nova/files/queens/nova-compute.conf.Debian
-@@ -5447,9 +5447,9 @@ api_servers = {{ compute.image.get('protocol', 'http') }}://{{ compute.image.hos
- #   below depend on this option being enabled.
- #  (boolean value)
- {%- if compute.get('barbican', {}).get('enabled', False) %}
--verify_glance_signatures=true
-+#verify_glance_signatures=true
- {%- else %}
--#verify_glance_signatures=false
-+verify_glance_signatures=false
- {%- endif %}
-
- # DEPRECATED:
index 2f91071..baa15d7 100644 (file)
@@ -10,4 +10,3 @@
 /usr/share/salt-formulas/env: 0010-maas-region-allow-timeout-override.patch
 /usr/share/salt-formulas/env: 0011-system.repo-Debian-Add-keyserver-proxy-support.patch
 /usr/share/salt-formulas/env: 0015-Set-ovs-bridges-as-L3-interfaces.patch
-/usr/share/salt-formulas/env: 0016-Disable-glance-signature-verification.patch
index 514ea59..7c36437 100644 (file)
@@ -20,10 +20,10 @@ Change-Id: I7e9a1b180f4e0ddb24ec72ed9f08c9e2580c7897
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/keystone/client/single.yml b/keystone/client/single.yml
-index a79ed7ec..86b4e09e 100644
+index ad2d55a1..120a2359 100644
 --- a/keystone/client/single.yml
 +++ b/keystone/client/single.yml
-@@ -4,7 +4,7 @@ classes:
+@@ -5,7 +5,7 @@ classes:
  - system.keystone.client.service.glance
  - system.keystone.client.service.heat
  - system.keystone.client.service.heat-cfn
@@ -23,7 +23,7 @@ Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
  2 files changed, 13 insertions(+), 5 deletions(-)
 
 diff --git a/salt-master-init.sh b/salt-master-init.sh
-index a4ec138..db90a22 100755
+index 343324c..48a05b9 100755
 --- a/salt-master-init.sh
 +++ b/salt-master-init.sh
 @@ -24,6 +24,12 @@ options() {
@@ -40,7 +40,7 @@ index a4ec138..db90a22 100755
      export YELLOW='\033[1;33m'
      export BLUE='\033[0;35m'
 diff --git a/salt-master-setup.sh b/salt-master-setup.sh
-index 0dd3036..a0c6311 100755
+index cba21fb..c2decde 100755
 --- a/salt-master-setup.sh
 +++ b/salt-master-setup.sh
 @@ -347,15 +347,17 @@ install_salt_formula_pkg()
diff --git a/mcp/patches/scripts/0001-salt-master-setup.sh-Allow-arm64-salt-bootstrap.patch b/mcp/patches/scripts/0001-salt-master-setup.sh-Allow-arm64-salt-bootstrap.patch
deleted file mode 100644 (file)
index 498743b..0000000
+++ /dev/null
@@ -1,59 +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, 1 Sep 2017 00:48:26 +0200
-Subject: [PATCH] salt-master-setup.sh: Allow arm64 salt-bootstrap
-
-Upstream commit [1] broke Salt bootstrap on AArch64, by
-introducing an architecture condition that is too strict to allow
-Debian package installation (even if we provide our own repo).
-
-Add "arm64" to the list of supported architectures. This needs
-to be done on the fly, as the bootstrap script is fetched using
-`curl` from <salt-master-setup.sh>.
-
-[1] https://github.com/saltstack/salt-bootstrap/commit/caa6d7d
-
-Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
----
- salt-master-setup.sh | 8 ++++----
- 1 file changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/salt-master-setup.sh b/salt-master-setup.sh
-index cba21fb..0dd3036 100755
---- a/salt-master-setup.sh
-+++ b/salt-master-setup.sh
-@@ -237,12 +237,12 @@ install_salt_master_pkg()
-       debian)
-           $SUDO apt-get install -y git
-         which reclass || $SUDO apt install -qqq -y reclass
--          curl -L https://bootstrap.saltstack.com | $SUDO sh -s -- -M ${BOOTSTRAP_SALTSTACK_OPTS} &>/dev/null || true
-+          curl -L https://bootstrap.saltstack.com | sed 's@"amd64")@"amd64"|"arm64")@g' | $SUDO sh -s -- -M ${BOOTSTRAP_SALTSTACK_OPTS} &>/dev/null || true
-         ;;
-       rhel)
-           yum install -y git
-           which reclass || $SUDO yum install -y reclass
--          curl -L https://bootstrap.saltstack.com | $SUDO sh -s -- -M ${BOOTSTRAP_SALTSTACK_OPTS} &>/dev/null || true
-+          curl -L https://bootstrap.saltstack.com | sed 's@"amd64")@"amd64"|"arm64")@g' | $SUDO sh -s -- -M ${BOOTSTRAP_SALTSTACK_OPTS} &>/dev/null || true
-         ;;
-     esac
-     
-@@ -310,10 +310,10 @@ install_salt_minion_pkg()
-
-     case $PLATFORM_FAMILY in
-       debian)
--          curl -L https://bootstrap.saltstack.com | $SUDO sh -s -- ${BOOTSTRAP_SALTSTACK_OPTS} &>/dev/null || true
-+          curl -L https://bootstrap.saltstack.com | sed 's@"amd64")@"amd64"|"arm64")@g' | $SUDO sh -s -- ${BOOTSTRAP_SALTSTACK_OPTS} &>/dev/null || true
-       ;;
-       rhel)
--          curl -L https://bootstrap.saltstack.com | $SUDO sh -s -- ${BOOTSTRAP_SALTSTACK_OPTS} &>/dev/null || true
-+          curl -L https://bootstrap.saltstack.com | sed 's@"amd64")@"amd64"|"arm64")@g' | $SUDO sh -s -- ${BOOTSTRAP_SALTSTACK_OPTS} &>/dev/null || true
-       ;;
-     esac
-
index 76573c0..9caea0d 100644 (file)
@@ -80,3 +80,5 @@ parameters:
       preallocate_images: space
       barbican:
         enabled: ${_param:barbican_integration_enabled}
+      image:
+        verify_glance_signatures: false
index 5c9c16d..0409974 100644 (file)
@@ -37,6 +37,8 @@ parameters:
         password: ${_param:keystone_neutron_password}
       barbican:
         enabled: ${_param:barbican_integration_enabled}
+      image:
+        verify_glance_signatures: false
   neutron:
     compute:
       notification: true
index 38f5768..3c7388a 100644 (file)
 {%- import 'net_macros.j2' as ma with context %}
 {#- Filter-out NIC duplicates by constructing a dict (used NICs only) #}
 {%- set nics = { nm.cmp001.nic_mgmt: True, nm.cmp001.nic_private: True } %}
+{%- set vlans = { nm.vlan_mgmt: nm.cmp001.nic_mgmt } %}
+{%- if 'dpdk' not in conf.cluster.domain and not conf.MCP_DPDK_MODE %}
 {%- set vlan_private_start = (nm.vlan_private | string).rsplit('-')[0] %}
-{%- set vlans = { nm.vlan_mgmt: nm.cmp001.nic_mgmt, vlan_private_start: nm.cmp001.nic_private } %}
+{%- do vlans.update({ vlan_private_start: nm.cmp001.nic_private }) %}
+{%- endif %}
 ---
 parameters:
   _param:
index 972069e..72c3810 100644 (file)
 {%- import 'net_macros.j2' as ma with context %}
 {#- Filter-out NIC duplicates by constructing a dict (used NICs only) #}
 {%- set nics = { nm.ctl01.nic_mgmt: True, nm.ctl01.nic_private: True } %}
+{%- set vlans = { nm.vlan_mgmt: nm.ctl01.nic_mgmt } %}
+{%- if 'dpdk' not in conf.cluster.domain and not conf.MCP_DPDK_MODE %}
 {%- set vlan_private_start = (nm.vlan_private | string).rsplit('-')[0] %}
-{%- set vlans = { nm.vlan_mgmt: nm.ctl01.nic_mgmt, vlan_private_start: nm.ctl01.nic_private } %}
+{%- do vlans.update({ vlan_private_start: nm.ctl01.nic_private }) %}
+{%- endif %}
 parameters:
   linux:
     network:
index 536ebfa..037bf02 100644 (file)
@@ -14,6 +14,7 @@ classes:
   - cluster.mcp-odl-noha.opendaylight.control_pdf
 parameters:
   _param:
+    interface_mtu: 1500
     linux_system_codename: xenial
   opendaylight:
     server:
diff --git a/mcp/reclass/classes/cluster/mcp-vpp-ha/infra/config.yml b/mcp/reclass/classes/cluster/mcp-vpp-ha/infra/config.yml
new file mode 100644 (file)
index 0000000..06347bf
--- /dev/null
@@ -0,0 +1,12 @@
+##############################################################################
+# 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
+##############################################################################
+---
+classes:
+  - cluster.mcp-common-ha.infra.config
+  - cluster.mcp-vpp-ha.infra
+  - cluster.all-mcp-arch-common.infra.config_pdf
diff --git a/mcp/reclass/classes/cluster/mcp-vpp-ha/infra/init.yml b/mcp/reclass/classes/cluster/mcp-vpp-ha/infra/init.yml
new file mode 100644 (file)
index 0000000..a434ef7
--- /dev/null
@@ -0,0 +1,14 @@
+##############################################################################
+# 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
+##############################################################################
+---
+classes:
+  - cluster.mcp-common-ha.infra
+  - cluster.mcp-vpp-ha.openstack
+parameters:
+  _param:
+    cluster_name: mcp-vpp-ha
diff --git a/mcp/reclass/classes/cluster/mcp-vpp-ha/infra/init_vcp.yml.j2 b/mcp/reclass/classes/cluster/mcp-vpp-ha/infra/init_vcp.yml.j2
new file mode 100644 (file)
index 0000000..21d2e42
--- /dev/null
@@ -0,0 +1,12 @@
+##############################################################################
+# 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
+##############################################################################
+---
+{%- if conf.MCP_VCP %}
+classes:
+  - cluster.mcp-vpp-ha.infra
+{%- endif %}
diff --git a/mcp/reclass/classes/cluster/mcp-vpp-ha/infra/kvm.yml.j2 b/mcp/reclass/classes/cluster/mcp-vpp-ha/infra/kvm.yml.j2
new file mode 100644 (file)
index 0000000..2f72c41
--- /dev/null
@@ -0,0 +1,14 @@
+##############################################################################
+# 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
+##############################################################################
+---
+{%- if conf.MCP_VCP %}
+# NOTE(armband): we don't want to pull in salt.control for novcp
+classes:
+  - cluster.mcp-common-ha.infra.kvm
+  - cluster.mcp-vpp-ha.infra
+{%- endif %}
diff --git a/mcp/reclass/classes/cluster/mcp-vpp-ha/infra/maas.yml b/mcp/reclass/classes/cluster/mcp-vpp-ha/infra/maas.yml
new file mode 100644 (file)
index 0000000..b2b6699
--- /dev/null
@@ -0,0 +1,11 @@
+##############################################################################
+# 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
+##############################################################################
+---
+classes:
+  - cluster.all-mcp-arch-common.infra.maas
+  - cluster.mcp-vpp-ha.infra
diff --git a/mcp/reclass/classes/cluster/mcp-vpp-ha/init.yml b/mcp/reclass/classes/cluster/mcp-vpp-ha/init.yml
new file mode 100644 (file)
index 0000000..dc6b8bf
--- /dev/null
@@ -0,0 +1,12 @@
+##############################################################################
+# 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
+##############################################################################
+---
+classes:
+  - cluster.all-mcp-arch-common
+  - cluster.mcp-vpp-ha.infra
+  - cluster.mcp-vpp-ha.openstack
diff --git a/mcp/reclass/classes/cluster/mcp-vpp-ha/openstack/compute.yml b/mcp/reclass/classes/cluster/mcp-vpp-ha/openstack/compute.yml
new file mode 100644 (file)
index 0000000..0518a8b
--- /dev/null
@@ -0,0 +1,17 @@
+##############################################################################
+# 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
+##############################################################################
+---
+classes:
+  - cluster.mcp-common-ha.openstack_compute
+  - cluster.mcp-vpp-ha.openstack.compute_pdf
+  - cluster.mcp-vpp-ha.infra
+parameters:
+  nova:
+    compute:
+      libvirt_service: libvirtd
+      libvirt_bin: /etc/default/libvirtd
diff --git a/mcp/reclass/classes/cluster/mcp-vpp-ha/openstack/compute_pdf.yml.j2 b/mcp/reclass/classes/cluster/mcp-vpp-ha/openstack/compute_pdf.yml.j2
new file mode 100644 (file)
index 0000000..f3844ad
--- /dev/null
@@ -0,0 +1,36 @@
+##############################################################################
+# 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
+##############################################################################
+{%- import 'net_map.j2' as nm with context %}
+{%- import 'net_macros.j2' as ma with context %}
+{#- Filter-out NIC duplicates by constructing a dict (used NICs only) #}
+{%- set nics = { nm.cmp001.nic_private: True } %}
+{%- set vlan_private_start = (nm.vlan_private | string).rsplit('-')[0] %}
+{%- set vlans = { vlan_private_start: nm.cmp001.nic_private } %}
+---
+parameters:
+  linux:
+    network:
+      interface:
+
+{#- prevent duplicates for tagged mgmt on the same physical interface as PXE/admin #}
+{%- if nm.cmp001.nic_admin in nics %}
+  {%- do nics.pop(nm.cmp001.nic_admin) %}
+{%- endif %}
+
+{{ ma.linux_network_interfaces_nic(nics) }}
+
+{{ ma.linux_network_interfaces_vlan(vlans) }}
+
+        br-mesh:
+          enabled: true
+          type: bridge
+          address: ${_param:tenant_address}
+          netmask: ${_param:opnfv_net_private_mask}
+          mtu: 1500
+          use_interfaces:
+            - {{ ma.interface_str(nm.cmp001.nic_private, vlan_private_start) }}
diff --git a/mcp/reclass/classes/cluster/mcp-vpp-ha/openstack/control.yml b/mcp/reclass/classes/cluster/mcp-vpp-ha/openstack/control.yml
new file mode 100644 (file)
index 0000000..9bca1f0
--- /dev/null
@@ -0,0 +1,13 @@
+##############################################################################
+# 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
+##############################################################################
+---
+classes:
+  - system.neutron.control.openvswitch.cluster
+  - cluster.mcp-common-ha.openstack_interface_vcp_biport
+  - cluster.mcp-common-ha.openstack_control
+  - cluster.mcp-vpp-ha.infra
diff --git a/mcp/reclass/classes/cluster/mcp-vpp-ha/openstack/database.yml b/mcp/reclass/classes/cluster/mcp-vpp-ha/openstack/database.yml
new file mode 100644 (file)
index 0000000..a75fa67
--- /dev/null
@@ -0,0 +1,12 @@
+##############################################################################
+# 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
+##############################################################################
+---
+classes:
+  - cluster.mcp-common-ha.openstack_interface_vcp_biport
+  - cluster.mcp-common-ha.openstack_database
+  - cluster.mcp-vpp-ha.infra.init_vcp
diff --git a/mcp/reclass/classes/cluster/mcp-vpp-ha/openstack/init.yml b/mcp/reclass/classes/cluster/mcp-vpp-ha/openstack/init.yml
new file mode 100644 (file)
index 0000000..9dbfd59
--- /dev/null
@@ -0,0 +1,13 @@
+##############################################################################
+# 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
+##############################################################################
+---
+classes:
+  - cluster.mcp-common-ha.openstack_init
+parameters:
+  _param:
+    neutron_tenant_network_types: "flat,vxlan"
diff --git a/mcp/reclass/classes/cluster/mcp-vpp-ha/openstack/message_queue.yml b/mcp/reclass/classes/cluster/mcp-vpp-ha/openstack/message_queue.yml
new file mode 100644 (file)
index 0000000..42a1b65
--- /dev/null
@@ -0,0 +1,12 @@
+##############################################################################
+# 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
+##############################################################################
+---
+classes:
+  - cluster.mcp-common-ha.openstack_interface_vcp_biport
+  - cluster.mcp-common-ha.openstack_message_queue
+  - cluster.mcp-vpp-ha.infra.init_vcp
diff --git a/mcp/reclass/classes/cluster/mcp-vpp-ha/openstack/proxy.yml b/mcp/reclass/classes/cluster/mcp-vpp-ha/openstack/proxy.yml
new file mode 100644 (file)
index 0000000..3a82e51
--- /dev/null
@@ -0,0 +1,12 @@
+##############################################################################
+# 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
+##############################################################################
+---
+classes:
+  - cluster.mcp-common-ha.openstack_interface_vcp_triport
+  - cluster.mcp-common-ha.openstack_proxy
+  - cluster.mcp-vpp-ha.infra.init_vcp
diff --git a/mcp/reclass/classes/cluster/mcp-vpp-ha/openstack/telemetry.yml b/mcp/reclass/classes/cluster/mcp-vpp-ha/openstack/telemetry.yml
new file mode 100644 (file)
index 0000000..4026168
--- /dev/null
@@ -0,0 +1,12 @@
+##############################################################################
+# 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
+##############################################################################
+---
+classes:
+  - cluster.mcp-common-ha.openstack_interface_vcp_biport
+  - cluster.mcp-common-ha.openstack_telemetry
+  - cluster.mcp-vpp-ha.infra.init_vcp
diff --git a/mcp/reclass/classes/cluster/mcp-vpp-noha/infra/config.yml b/mcp/reclass/classes/cluster/mcp-vpp-noha/infra/config.yml
new file mode 100644 (file)
index 0000000..0263a57
--- /dev/null
@@ -0,0 +1,22 @@
+##############################################################################
+# 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
+##############################################################################
+---
+classes:
+  - system.reclass.storage.system.openstack_gateway_single
+  - cluster.mcp-common-noha.infra.config
+  - cluster.mcp-vpp-noha
+  - cluster.all-mcp-arch-common.infra.config_pdf
+parameters:
+  reclass:
+    storage:
+      node:
+        openstack_gateway_node01:
+          params:
+            tenant_address: ${_param:opnfv_openstack_gateway_node01_tenant_address}
+            external_address: ${_param:opnfv_openstack_gateway_node01_external_address}
+            pxe_admin_address: ${_param:opnfv_openstack_gateway_node01_pxe_admin_address}
diff --git a/mcp/reclass/classes/cluster/mcp-vpp-noha/infra/init.yml b/mcp/reclass/classes/cluster/mcp-vpp-noha/infra/init.yml
new file mode 100644 (file)
index 0000000..f615196
--- /dev/null
@@ -0,0 +1,14 @@
+##############################################################################
+# 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
+##############################################################################
+---
+classes:
+  - cluster.mcp-common-noha.infra
+
+parameters:
+  _param:
+    cluster_name: mcp-vpp-noha
diff --git a/mcp/reclass/classes/cluster/mcp-vpp-noha/infra/maas.yml b/mcp/reclass/classes/cluster/mcp-vpp-noha/infra/maas.yml
new file mode 100644 (file)
index 0000000..e02d030
--- /dev/null
@@ -0,0 +1,11 @@
+##############################################################################
+# 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
+##############################################################################
+---
+classes:
+  - cluster.all-mcp-arch-common.infra.maas
+  - cluster.mcp-vpp-noha.infra
diff --git a/mcp/reclass/classes/cluster/mcp-vpp-noha/init.yml b/mcp/reclass/classes/cluster/mcp-vpp-noha/init.yml
new file mode 100644 (file)
index 0000000..41515cf
--- /dev/null
@@ -0,0 +1,12 @@
+##############################################################################
+# 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
+##############################################################################
+---
+classes:
+  - cluster.mcp-common-noha.init_options
+  - cluster.mcp-vpp-noha.infra
+  - cluster.mcp-vpp-noha.openstack
diff --git a/mcp/reclass/classes/cluster/mcp-vpp-noha/openstack/compute.yml.j2 b/mcp/reclass/classes/cluster/mcp-vpp-noha/openstack/compute.yml.j2
new file mode 100644 (file)
index 0000000..9142743
--- /dev/null
@@ -0,0 +1,32 @@
+##############################################################################
+# 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
+##############################################################################
+{%- import 'net_map.j2' as nm with context %}
+{%- import 'net_macros.j2' as ma with context %}
+{%- set vlan_private_start = (nm.vlan_private | string).rsplit('-')[0] %}
+---
+classes:
+  - service.neutron.compute.single
+  - cluster.mcp-common-noha.openstack_compute
+  - cluster.mcp-vpp-noha
+parameters:
+  linux:
+    network:
+      interface:
+        pxe_admin_int:
+          # For scenarios without public network on cmp, set admin gw
+          gateway: {{ nm.net_admin_gw }}
+          name_servers:
+            - {{ nm.net_admin_gw }}
+        br-mesh:
+          enabled: true
+          type: bridge
+          proto: static
+          address: ${_param:tenant_address}
+          netmask: ${_param:opnfv_net_private_mask}
+          use_interfaces:
+            - {{ ma.interface_str(nm.cmp001.nic_private, vlan_private_start) }}
diff --git a/mcp/reclass/classes/cluster/mcp-vpp-noha/openstack/control.yml b/mcp/reclass/classes/cluster/mcp-vpp-noha/openstack/control.yml
new file mode 100644 (file)
index 0000000..49dc3da
--- /dev/null
@@ -0,0 +1,12 @@
+##############################################################################
+# 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
+##############################################################################
+---
+classes:
+  - system.neutron.control.openvswitch.single
+  - cluster.mcp-common-noha.openstack_control
+  - cluster.mcp-vpp-noha
diff --git a/mcp/reclass/classes/cluster/mcp-vpp-noha/openstack/gateway.yml.j2 b/mcp/reclass/classes/cluster/mcp-vpp-noha/openstack/gateway.yml.j2
new file mode 100644 (file)
index 0000000..27e6372
--- /dev/null
@@ -0,0 +1,28 @@
+##############################################################################
+# 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
+##############################################################################
+{%- import 'net_map.j2' as nm with context %}
+{%- import 'net_macros.j2' as ma with context %}
+{%- set vlan_private_start = (nm.vlan_private | string).rsplit('-')[0] %}
+---
+classes:
+  - cluster.mcp-common-noha.openstack_gateway
+  - service.neutron.gateway.single
+  - cluster.mcp-vpp-noha
+parameters:
+  linux:
+    network:
+      interface:
+        br-mesh:
+          enabled: true
+          type: bridge
+          mtu: ${_param:interface_mtu}
+          proto: static
+          address: ${_param:tenant_address}
+          netmask: ${_param:opnfv_net_private_mask}
+          use_interfaces:
+            - {{ ma.interface_str(nm.ctl01.nic_private, vlan_private_start) }}
diff --git a/mcp/reclass/classes/cluster/mcp-vpp-noha/openstack/init.yml b/mcp/reclass/classes/cluster/mcp-vpp-noha/openstack/init.yml
new file mode 100644 (file)
index 0000000..79e2318
--- /dev/null
@@ -0,0 +1,13 @@
+##############################################################################
+# 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
+##############################################################################
+---
+classes:
+  - cluster.mcp-common-noha.openstack_init
+parameters:
+  _param:
+    neutron_tenant_network_types: "flat,vxlan"
diff --git a/mcp/reclass/nodes/cfg01.mcp-vpp-ha.local.yml b/mcp/reclass/nodes/cfg01.mcp-vpp-ha.local.yml
new file mode 100644 (file)
index 0000000..89bb3c3
--- /dev/null
@@ -0,0 +1,18 @@
+##############################################################################
+# 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
+##############################################################################
+---
+classes:
+  - cluster.mcp-vpp-ha.infra.config
+parameters:
+  _param:
+    linux_system_codename: xenial
+    reclass_data_revision: master
+  linux:
+    system:
+      name: cfg01
+      domain: mcp-vpp-ha.local
diff --git a/mcp/reclass/nodes/cfg01.mcp-vpp-noha.local.yml b/mcp/reclass/nodes/cfg01.mcp-vpp-noha.local.yml
new file mode 100644 (file)
index 0000000..3812431
--- /dev/null
@@ -0,0 +1,18 @@
+##############################################################################
+# Copyright (c) 2017 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
+##############################################################################
+---
+classes:
+  - cluster.mcp-vpp-noha.infra.config
+parameters:
+  _param:
+    linux_system_codename: xenial
+    reclass_data_revision: master
+  linux:
+    system:
+      name: cfg01
+      domain: mcp-vpp-noha.local