[hybrid] Merge config/scenario/{baremetal,virtual} 43/51643/5
authorAlexandru Avadanii <Alexandru.Avadanii@enea.com>
Sun, 4 Feb 2018 20:16:07 +0000 (21:16 +0100)
committerAlexandru Avadanii <Alexandru.Avadanii@enea.com>
Tue, 6 Feb 2018 22:40:59 +0000 (23:40 +0100)
Instead of classifying scenarios by underlying machine type, switch
to HA/NOHA differentiantion only.

This allows us to add support for hybrid scenarios (with some virtual
and some baremetal nodes in the same cluster).

To facilitate this, we will template the scenario files, which is a
small step towards SDF (Scenario Descriptor File) definition and
adoption later.

JIRA: FUEL-338

Change-Id: If5787991869a3105d82c27ffa0a86ac79b4b08ba
Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
14 files changed:
ci/deploy.sh
mcp/config/scenario/.gitignore [new file with mode: 0644]
mcp/config/scenario/README.rst
mcp/config/scenario/baremetal/os-nosdn-nofeature-novcp-ha.yaml [deleted file]
mcp/config/scenario/os-nosdn-nofeature-ha.yaml [moved from mcp/config/scenario/baremetal/os-nosdn-nofeature-ha.yaml with 100% similarity]
mcp/config/scenario/os-nosdn-nofeature-noha.yaml [moved from mcp/config/scenario/virtual/os-nosdn-nofeature-noha.yaml with 100% similarity]
mcp/config/scenario/os-nosdn-nofeature-novcp-ha.yaml.j2 [moved from mcp/config/scenario/virtual/os-nosdn-nofeature-novcp-ha.yaml with 50% similarity]
mcp/config/scenario/os-nosdn-ovs-ha.yaml [moved from mcp/config/scenario/baremetal/os-nosdn-ovs-ha.yaml with 100% similarity]
mcp/config/scenario/os-nosdn-ovs-noha.yaml [moved from mcp/config/scenario/virtual/os-nosdn-ovs-noha.yaml with 100% similarity]
mcp/config/scenario/os-odl-nofeature-ha.yaml [moved from mcp/config/scenario/baremetal/os-odl-nofeature-ha.yaml with 100% similarity]
mcp/config/scenario/os-odl-nofeature-noha.yaml [moved from mcp/config/scenario/virtual/os-odl-nofeature-noha.yaml with 100% similarity]
mcp/config/scenario/os-ovn-nofeature-noha.yaml [moved from mcp/config/scenario/virtual/os-ovn-nofeature-noha.yaml with 100% similarity]
mcp/scripts/requirements_deb.yaml
mcp/scripts/requirements_rpm.yaml

index 18de570..e962ddd 100755 (executable)
@@ -120,7 +120,6 @@ 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)
-DEPLOY_TYPE='baremetal'
 BR_NAMES=('admin' 'mgmt' 'private' 'public')
 OPNFV_BRIDGES=('pxebr' 'mgmt' 'internal' 'public')
 URI_REGEXP='(file|https?|ftp)://.*'
@@ -183,7 +182,6 @@ do
         p)
             TARGET_POD=${OPTARG}
             if [[ "${TARGET_POD}" =~ virtual ]]; then
-                DEPLOY_TYPE='virtual'
                 # All vPODs will use 'local-virtual1' PDF/IDF for now
                 TARGET_LAB='local'
                 TARGET_POD='virtual1'
@@ -244,7 +242,7 @@ else
       pkg_type='rpm'; pkg_cmd='sudo yum install -y --skip-broken'
     fi
     eval "$(parse_yaml "./requirements_${pkg_type}.yaml")"
-    for section in 'common' "${DEPLOY_TYPE}" "$(uname -m)"; do
+    for section in 'common' "$(uname -m)"; do
       section_var="requirements_pkg_${section}[*]"
       pkg_list+=" ${!section_var}"
     done
@@ -268,7 +266,7 @@ do_templates "${REPO_ROOT_PATH}" "${STORAGE_DIR}" "${TARGET_LAB}" \
              "${TARGET_POD}" "${BASE_CONFIG_URI}" "${SCENARIO_DIR}"
 
 # Check scenario file existence
-if [ ! -f  "${SCENARIO_DIR}/${DEPLOY_TYPE}/${DEPLOY_SCENARIO}.yaml" ]; then
+if [ ! -f  "${SCENARIO_DIR}/${DEPLOY_SCENARIO}.yaml" ]; then
     notify_e "[ERROR] Scenario definition file is missing!"
 fi
 
@@ -279,7 +277,7 @@ fi
 
 # Get scenario data and (jumpserver) arch defaults
 eval "$(parse_yaml "${SCENARIO_DIR}/defaults-$(uname -i).yaml")"
-eval "$(parse_yaml "${SCENARIO_DIR}/${DEPLOY_TYPE}/${DEPLOY_SCENARIO}.yaml")"
+eval "$(parse_yaml "${SCENARIO_DIR}/${DEPLOY_SCENARIO}.yaml")"
 export CLUSTER_DOMAIN=${cluster_domain}
 
 # Expand jinja2 templates based on PDF data and env vars
diff --git a/mcp/config/scenario/.gitignore b/mcp/config/scenario/.gitignore
new file mode 100644 (file)
index 0000000..14e9ab8
--- /dev/null
@@ -0,0 +1 @@
+os-nosdn-nofeature-novcp-ha.yaml
index 389877a..e03182f 100644 (file)
@@ -19,4 +19,4 @@ feature scenarios used by Fuel@OPNFV, e.g.:
 NOTES:
 ------
 This directory is highly likely to change and/or be replaced/complemented
-by the new PDF (Pod Descriptor File) info in securedlab OPNFV git repo.
+by the new PDF (Pod Descriptor File) info in Pharos OPNFV git repo.
diff --git a/mcp/config/scenario/baremetal/os-nosdn-nofeature-novcp-ha.yaml b/mcp/config/scenario/baremetal/os-nosdn-nofeature-novcp-ha.yaml
deleted file mode 100644 (file)
index 0c57441..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-##############################################################################
-# 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
-##############################################################################
----
-cluster:
-  domain: mcp-pike-ovs-novcp-ha.local
-  states:
-    - maas
-    - baremetal_init
-    - openstack_ha
-    - networks
-virtual:
-  nodes:
-    - cfg01
-    - mas01
-  cfg01:
-    vcpus: 4
-    ram: 6144
-  mas01:
-    vcpus: 4
-    ram: 6144
@@ -5,20 +5,46 @@
 # which accompanies this distribution, and is available at
 # http://www.apache.org/licenses/LICENSE-2.0
 ##############################################################################
+{%- import 'net_map.j2' as nm with context %}
+{%- for node in conf.nodes %}
+  {%- if node.node.type == 'baremetal' %}
+    {%- set cluster_has_baremetal_nodes = True %}
+  {%- endif %}
+{%- endfor %}
 ---
 cluster:
   domain: mcp-pike-ovs-novcp-ha.local
   states:
+{%- if cluster_has_baremetal_nodes %}
+    - maas
+    - baremetal_init
+{%- endif %}
     - openstack_ha
     - networks
 virtual:
   nodes:
     - cfg01
+{%- if cluster_has_baremetal_nodes %}
+    - mas01
+{%- endif %}
+{#- Most likely, controllers will always have the same type and number (3) #}
+{%- if conf.nodes[nm.ctl01.idx].node.type == 'virtual' %}
     - kvm01
     - kvm02
     - kvm03
+{%- endif %}
+{#- Later, we might have mixed computes here, for hybrid multi-arch testing #}
+{%- if conf.nodes[nm.cmp001.idx].node.type == 'virtual' %}
     - cmp001
     - cmp002
+{%- endif %}
+  cfg01:
+    vcpus: 4
+    ram: 6144
+  # Below values are only used when nodes are defined in virtual.nodes above
+  mas01:
+    vcpus: 4
+    ram: 6144
   # NOTE: We might need to add more RAM here
   kvm01:
     vcpus: 4
index bb0d586..e50a48f 100644 (file)
@@ -28,8 +28,6 @@ requirements_pkg:
     - python-ipaddress
     - python-jinja2
     - python-yaml
-  # Optional, deploy-type-specific requirements
-  # baremetal:
   # Optional, arch-specific requirements, matched by key name = $(uname -m)
   aarch64:
     # AArch64 VMs use AAVMF (guest UEFI)
index d510ba8..ccb066e 100644 (file)
@@ -32,8 +32,6 @@ requirements_pkg:
     - python-ipaddress
     - python-jinja2
     - python-yaml
-  # Optional, deploy-type-specific requirements
-  # baremetal:
   # Optional, arch-specific requirements, matched by key name = $(uname -m)
   aarch64:
     # AArch64 VMs use AAVMF (guest UEFI)