aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Polenchuk <mpolenchuk@mirantis.com>2018-02-07 07:51:47 +0000
committerGerrit Code Review <gerrit@opnfv.org>2018-02-07 07:51:47 +0000
commit624e0e31debf1b4f7fa7727826e6e385c6192583 (patch)
treee0d9c3aa051c7bf3744dd9752c0dd6afb2225b65
parent22bbdf21851c3fdeb10579fc6b0e77a93e90e813 (diff)
parentb6689c3e319b66b64bc0fe49366dfdeb4152e664 (diff)
Merge changes from topic 'fix-public-bridge'
* changes: [virtual] Add missing ODL dhcp_int [virsh net] public: rm addr cfg for pure baremetal
-rwxr-xr-xci/deploy.sh4
-rw-r--r--mcp/reclass/classes/cluster/virtual-mcp-pike-odl-noha/opendaylight/control_pdf.yml.j25
-rw-r--r--mcp/scripts/globals.sh5
-rw-r--r--mcp/scripts/lib.sh7
-rwxr-xr-xmcp/scripts/salt.sh1
-rw-r--r--mcp/scripts/virsh_net/net_public.xml.j210
6 files changed, 26 insertions, 6 deletions
diff --git a/ci/deploy.sh b/ci/deploy.sh
index fb22cc45a..18de570e9 100755
--- a/ci/deploy.sh
+++ b/ci/deploy.sh
@@ -288,7 +288,7 @@ do_templates "${REPO_ROOT_PATH}" "${STORAGE_DIR}" "${TARGET_LAB}" \
# Get required infra deployment data based on PDF/IDF (after template parsing)
set +x
-eval "$(parse_yaml "${LOCAL_PDF_RECLASS}")"
+eval "$(parse_yaml "${STORAGE_DIR}/pod_config.yml")"
[[ "${CI_DEBUG}" =~ (false|0) ]] || set -x
# Serialize vnode data as '<name0>,<ram0>,<vcpu0>|<name1>,<ram1>,<vcpu1>[...]'
@@ -346,7 +346,7 @@ else
check_connection
fi
if [ ${USE_EXISTING_INFRA} -lt 2 ]; then
- wait_for 5 "./salt.sh ${LOCAL_PDF_RECLASS} ${virtual_nodes[*]}"
+ wait_for 5 "./salt.sh ${STORAGE_DIR}/pod_config.yml ${virtual_nodes[*]}"
fi
# Openstack cluster setup
diff --git a/mcp/reclass/classes/cluster/virtual-mcp-pike-odl-noha/opendaylight/control_pdf.yml.j2 b/mcp/reclass/classes/cluster/virtual-mcp-pike-odl-noha/opendaylight/control_pdf.yml.j2
index 74f9288f6..fbb7de8b3 100644
--- a/mcp/reclass/classes/cluster/virtual-mcp-pike-odl-noha/opendaylight/control_pdf.yml.j2
+++ b/mcp/reclass/classes/cluster/virtual-mcp-pike-odl-noha/opendaylight/control_pdf.yml.j2
@@ -11,6 +11,11 @@ parameters:
linux:
network:
interface:
+ dhcp_int:
+ enabled: true
+ name: {{ nm.ctl01.nic_admin }}
+ proto: dhcp
+ type: eth
single_int:
enabled: true
name: {{ nm.ctl01.nic_mgmt }}
diff --git a/mcp/scripts/globals.sh b/mcp/scripts/globals.sh
index 8966a0a94..54f015cf6 100644
--- a/mcp/scripts/globals.sh
+++ b/mcp/scripts/globals.sh
@@ -25,22 +25,27 @@ export SSH_SALT="${SALT_MASTER_USER}@${SALT_MASTER}"
##############################################################################
# BEGIN of colored notification wrappers
#
+
+# same as `notify_i` + trailing '\n';
function notify() {
local msg=${1}; shift
notify_i "${msg}\n" "$@"
}
+# Inline (no newline added) colored output notification wrapper
function notify_i() {
tput setaf "${2:-1}" || true
echo -en "${1:-"[WARN] Unsupported opt arg: $3\\n"}"
tput sgr0
}
+# same as `notify` + extra '\n' before and after;
function notify_n() {
local msg=${1}; shift
notify_i "\n${msg}\n\n" "$@"
}
+# same as `notify` + stderr output + exit;
function notify_e() {
local msg=${1}; shift
notify_i "\n${msg}\n\n" "$@" 1>&2
diff --git a/mcp/scripts/lib.sh b/mcp/scripts/lib.sh
index 02c23f365..5b00c7380 100644
--- a/mcp/scripts/lib.sh
+++ b/mcp/scripts/lib.sh
@@ -1,5 +1,5 @@
#!/bin/bash -e
-# shellcheck disable=SC2155,SC1001
+# shellcheck disable=SC2155,SC1001,SC2015
##############################################################################
# Copyright (c) 2017 Mirantis Inc., Enea AB and others.
# All rights reserved. This program and the accompanying materials
@@ -452,7 +452,7 @@ function wait_for {
# shellcheck disable=SC2015
eval "${cmdstr}" && echo "[wait_for] OK: ${cmdstr}" && return 0 || true
else
- !(eval "${cmdstr}" || echo __fuel_wf_failure__) |& tee /dev/stderr | \
+ ! (eval "${cmdstr}" || echo __fuel_wf_failure__) |& tee /dev/stderr | \
grep -Eq '(Not connected|No response|__fuel_wf_failure__)' && \
echo "[wait_for] OK: ${cmdstr}" && return 0 || true
fi
@@ -498,7 +498,6 @@ function do_templates() {
BASE_CONFIG_IDF="${lab_config_uri}/labs/${target_lab}/idf-${target_pod}.yaml"
LOCAL_PDF="${image_dir}/$(basename "${BASE_CONFIG_PDF}")"
LOCAL_IDF="${image_dir}/$(basename "${BASE_CONFIG_IDF}")"
- LOCAL_PDF_RECLASS="${image_dir}/pod_config.yml"
# Two-stage expansion, first stage handles pod_config and scenarios only
if [ -n "${scenario_dir}" ]; then
@@ -511,7 +510,7 @@ function do_templates() {
elif ! curl -o "${LOCAL_IDF}" "${BASE_CONFIG_IDF}"; then
notify_e "[ERROR] Could not retrieve IDF (Installer Descriptor File)!"
elif ! "${PHAROS_GEN_CFG}" -y "${LOCAL_PDF}" \
- -j "${PHAROS_INSTALLER_ADAPTER}" > "${LOCAL_PDF_RECLASS}"; then
+ -j "${PHAROS_INSTALLER_ADAPTER}" > "${image_dir}/pod_config.yml"; then
notify_e "[ERROR] Could not convert PDF+IDF to reclass model input!"
fi
template_dirs="${scenario_dir}"
diff --git a/mcp/scripts/salt.sh b/mcp/scripts/salt.sh
index 310b78a7a..15168c0cc 100755
--- a/mcp/scripts/salt.sh
+++ b/mcp/scripts/salt.sh
@@ -22,6 +22,7 @@ OPNFV_VCP_IMG="mcp/scripts/base_image_opnfv_fuel_vcp.img"
OPNFV_VCP_DIR="/srv/salt/env/prd/salt/files/control/images"
LOCAL_GIT_DIR="${F_GIT_ROOT%${F_GIT_SUBD}}"
LOCAL_PDF_RECLASS=$1; shift
+# shellcheck disable=SC2116,SC2086
LOCAL_VIRT_NODES=$(echo ${*//cfg01/}) # unquoted to filter space
NODE_MASK="${LOCAL_VIRT_NODES// /|}"
diff --git a/mcp/scripts/virsh_net/net_public.xml.j2 b/mcp/scripts/virsh_net/net_public.xml.j2
index e47f69bb4..37a8d9272 100644
--- a/mcp/scripts/virsh_net/net_public.xml.j2
+++ b/mcp/scripts/virsh_net/net_public.xml.j2
@@ -6,6 +6,11 @@
which accompanies this distribution, and is available at
http://www.apache.org/licenses/LICENSE-2.0
-->
+{%- for node in conf.nodes %}
+ {%- if node.node.type == 'virtual' %}
+ {%- set cluster_has_virtual_nodes = True %}
+ {%- endif %}
+{%- endfor %}
{%- if conf.idf.net_config.public is defined %}
{%- set public_network = conf.idf.net_config.public.network %}
{%- set public_prefix = conf.idf.net_config.public.mask %}
@@ -16,6 +21,11 @@
<network>
<name>public</name>
<bridge name="public"/>
+{%- if cluster_has_virtual_nodes %}
+{#- Ideally, jumpserver would have a real Linux bridge we will hook to.
+ In case it doesn't, we use this virsh network as a *mock* public.
+ The *mock* public should NOT overlap with the real public in any way. #}
<forward mode="nat"/>
<ip address="{{ public_network | ipaddr_index(1) }}" netmask="{{ public_prefix | netmask }}"/>
+{%- endif %}
</network>