From b6f3736872b6c06a345da2f16e82d8688c469dd7 Mon Sep 17 00:00:00 2001 From: Markus Kullberg Date: Tue, 26 Jul 2016 09:37:43 +0300 Subject: Adds overcloud external connectivity test and adds NAT to instack VM if needed JIRA: APEX-198 Adds support for baremetal deployments where external connectivity is only provided via the jumphost. The connectivity test is done by pinging an external IP (8.8.8.8 by default) for each node. If ping fails for any of the nodes then NAT is added. Change-Id: I8d59beb03c3b2998deaec5dc7536fa7a5b1f7718 Signed-off-by: Markus Kullberg --- lib/common-functions.sh | 13 +++++++++++++ lib/post-install-functions.sh | 3 ++- 2 files changed, 15 insertions(+), 1 deletion(-) (limited to 'lib') diff --git a/lib/common-functions.sh b/lib/common-functions.sh index 391d9405..6941093c 100644 --- a/lib/common-functions.sh +++ b/lib/common-functions.sh @@ -293,3 +293,16 @@ function verify_internet { return 1 fi } + +##tests if overcloud nodes have external connectivity +#params:none +function test_overcloud_connectivity { + for node in $(undercloud_connect stack ". stackrc && nova list" | grep -Eo "controller-[0-9]+|compute-[0-9]+" | tr -d -) ; do + if ! overcloud_connect $node "ping -c 2 $ping_site > /dev/null"; then + echo "${blue}Node ${node} was unable to ping site ${ping_site}${reset}" + return 1 + fi + done + echo "${blue}Overcloud external connectivity OK${reset}" +} + diff --git a/lib/post-install-functions.sh b/lib/post-install-functions.sh index bf0b4446..a7499feb 100755 --- a/lib/post-install-functions.sh +++ b/lib/post-install-functions.sh @@ -123,7 +123,8 @@ fi EOI # for virtual, we NAT public network through Undercloud - if [ "$virtual" == "TRUE" ] && [ "$public_network_ipv6" != "True" ]; then + # same goes for baremetal if only jumphost has external connectivity + if [ "$virtual" == "TRUE" ] || ! test_overcloud_connectivity && [ "$public_network_ipv6" != "True" ]; then if ! configure_undercloud_nat ${public_network_cidr}; then echo -e "${red}ERROR: Unable to NAT undercloud with external net: ${public_network_cidr}${reset}" exit 1 -- cgit 1.2.3-korg