diff options
38 files changed, 508 insertions, 116 deletions
diff --git a/ci/deploy.sh b/ci/deploy.sh index 07cde2613..ea8524a85 100755 --- a/ci/deploy.sh +++ b/ci/deploy.sh @@ -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 diff --git a/mcp/config/scenario/defaults.yaml b/mcp/config/scenario/defaults.yaml index f5640f71c..b228463c6 100644 --- a/mcp/config/scenario/defaults.yaml +++ b/mcp/config/scenario/defaults.yaml @@ -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 index 000000000..6ccb59061 --- /dev/null +++ b/mcp/config/scenario/os-nosdn-vpp-ha.yaml.j2 @@ -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 index 000000000..41cb504e1 --- /dev/null +++ b/mcp/config/scenario/os-nosdn-vpp-noha.yaml.j2 @@ -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 index 55f641800..000000000 --- a/mcp/patches/0016-Disable-glance-signature-verification.patch +++ /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: diff --git a/mcp/patches/patches.list b/mcp/patches/patches.list index 2f9107156..baa15d79d 100644 --- a/mcp/patches/patches.list +++ b/mcp/patches/patches.list @@ -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 diff --git a/mcp/patches/reclass-system-salt-model/0001-Use-keystone-v3-endpoints-by-default.patch b/mcp/patches/reclass-system-salt-model/0001-Use-keystone-v3-endpoints-by-default.patch index 514ea59e4..7c36437f6 100644 --- a/mcp/patches/reclass-system-salt-model/0001-Use-keystone-v3-endpoints-by-default.patch +++ b/mcp/patches/reclass-system-salt-model/0001-Use-keystone-v3-endpoints-by-default.patch @@ -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 diff --git a/mcp/patches/scripts/0003-salt-master-setup-Group-APT-install-formulas.patch b/mcp/patches/scripts/0001-salt-master-setup-Group-APT-install-formulas.patch index d5a9bf3c4..9106a13b7 100644 --- a/mcp/patches/scripts/0003-salt-master-setup-Group-APT-install-formulas.patch +++ b/mcp/patches/scripts/0001-salt-master-setup-Group-APT-install-formulas.patch @@ -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 index 498743b77..000000000 --- a/mcp/patches/scripts/0001-salt-master-setup.sh-Allow-arm64-salt-bootstrap.patch +++ /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 - diff --git a/mcp/reclass/classes/cluster/mcp-common-ha/openstack_compute.yml b/mcp/reclass/classes/cluster/mcp-common-ha/openstack_compute.yml index 76573c0ea..9caea0d0f 100644 --- a/mcp/reclass/classes/cluster/mcp-common-ha/openstack_compute.yml +++ b/mcp/reclass/classes/cluster/mcp-common-ha/openstack_compute.yml @@ -80,3 +80,5 @@ parameters: preallocate_images: space barbican: enabled: ${_param:barbican_integration_enabled} + image: + verify_glance_signatures: false diff --git a/mcp/reclass/classes/cluster/mcp-common-noha/openstack_compute.yml b/mcp/reclass/classes/cluster/mcp-common-noha/openstack_compute.yml index 5c9c16d6b..0409974ba 100644 --- a/mcp/reclass/classes/cluster/mcp-common-noha/openstack_compute.yml +++ b/mcp/reclass/classes/cluster/mcp-common-noha/openstack_compute.yml @@ -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 diff --git a/mcp/reclass/classes/cluster/mcp-common-noha/openstack_compute_pdf.yml.j2 b/mcp/reclass/classes/cluster/mcp-common-noha/openstack_compute_pdf.yml.j2 index 38f57688f..3c7388a9c 100644 --- a/mcp/reclass/classes/cluster/mcp-common-noha/openstack_compute_pdf.yml.j2 +++ b/mcp/reclass/classes/cluster/mcp-common-noha/openstack_compute_pdf.yml.j2 @@ -10,8 +10,11 @@ {%- 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: diff --git a/mcp/reclass/classes/cluster/mcp-common-noha/openstack_gateway_pdf.yml.j2 b/mcp/reclass/classes/cluster/mcp-common-noha/openstack_gateway_pdf.yml.j2 index 972069ec1..72c381070 100644 --- a/mcp/reclass/classes/cluster/mcp-common-noha/openstack_gateway_pdf.yml.j2 +++ b/mcp/reclass/classes/cluster/mcp-common-noha/openstack_gateway_pdf.yml.j2 @@ -10,8 +10,11 @@ {%- 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: diff --git a/mcp/reclass/classes/cluster/mcp-odl-noha/opendaylight/control.yml b/mcp/reclass/classes/cluster/mcp-odl-noha/opendaylight/control.yml index 536ebfad7..037bf0248 100644 --- a/mcp/reclass/classes/cluster/mcp-odl-noha/opendaylight/control.yml +++ b/mcp/reclass/classes/cluster/mcp-odl-noha/opendaylight/control.yml @@ -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 index 000000000..06347bf22 --- /dev/null +++ b/mcp/reclass/classes/cluster/mcp-vpp-ha/infra/config.yml @@ -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 index 000000000..a434ef7c1 --- /dev/null +++ b/mcp/reclass/classes/cluster/mcp-vpp-ha/infra/init.yml @@ -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 index 000000000..21d2e42ce --- /dev/null +++ b/mcp/reclass/classes/cluster/mcp-vpp-ha/infra/init_vcp.yml.j2 @@ -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 index 000000000..2f72c4178 --- /dev/null +++ b/mcp/reclass/classes/cluster/mcp-vpp-ha/infra/kvm.yml.j2 @@ -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 index 000000000..b2b66992c --- /dev/null +++ b/mcp/reclass/classes/cluster/mcp-vpp-ha/infra/maas.yml @@ -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 index 000000000..dc6b8bfef --- /dev/null +++ b/mcp/reclass/classes/cluster/mcp-vpp-ha/init.yml @@ -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 index 000000000..0518a8b57 --- /dev/null +++ b/mcp/reclass/classes/cluster/mcp-vpp-ha/openstack/compute.yml @@ -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 index 000000000..f3844ad8c --- /dev/null +++ b/mcp/reclass/classes/cluster/mcp-vpp-ha/openstack/compute_pdf.yml.j2 @@ -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 index 000000000..9bca1f084 --- /dev/null +++ b/mcp/reclass/classes/cluster/mcp-vpp-ha/openstack/control.yml @@ -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 index 000000000..a75fa675b --- /dev/null +++ b/mcp/reclass/classes/cluster/mcp-vpp-ha/openstack/database.yml @@ -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 index 000000000..9dbfd59a1 --- /dev/null +++ b/mcp/reclass/classes/cluster/mcp-vpp-ha/openstack/init.yml @@ -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 index 000000000..42a1b658e --- /dev/null +++ b/mcp/reclass/classes/cluster/mcp-vpp-ha/openstack/message_queue.yml @@ -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 index 000000000..3a82e51a6 --- /dev/null +++ b/mcp/reclass/classes/cluster/mcp-vpp-ha/openstack/proxy.yml @@ -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 index 000000000..402616868 --- /dev/null +++ b/mcp/reclass/classes/cluster/mcp-vpp-ha/openstack/telemetry.yml @@ -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 index 000000000..0263a57d0 --- /dev/null +++ b/mcp/reclass/classes/cluster/mcp-vpp-noha/infra/config.yml @@ -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 index 000000000..f61519664 --- /dev/null +++ b/mcp/reclass/classes/cluster/mcp-vpp-noha/infra/init.yml @@ -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 index 000000000..e02d0304f --- /dev/null +++ b/mcp/reclass/classes/cluster/mcp-vpp-noha/infra/maas.yml @@ -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 index 000000000..41515cf6d --- /dev/null +++ b/mcp/reclass/classes/cluster/mcp-vpp-noha/init.yml @@ -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 index 000000000..9142743da --- /dev/null +++ b/mcp/reclass/classes/cluster/mcp-vpp-noha/openstack/compute.yml.j2 @@ -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 index 000000000..49dc3da4a --- /dev/null +++ b/mcp/reclass/classes/cluster/mcp-vpp-noha/openstack/control.yml @@ -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 index 000000000..27e6372b0 --- /dev/null +++ b/mcp/reclass/classes/cluster/mcp-vpp-noha/openstack/gateway.yml.j2 @@ -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 index 000000000..79e231825 --- /dev/null +++ b/mcp/reclass/classes/cluster/mcp-vpp-noha/openstack/init.yml @@ -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 index 000000000..89bb3c3ca --- /dev/null +++ b/mcp/reclass/nodes/cfg01.mcp-vpp-ha.local.yml @@ -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 index 000000000..381243168 --- /dev/null +++ b/mcp/reclass/nodes/cfg01.mcp-vpp-noha.local.yml @@ -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 |