From: Alexandru Avadanii Date: Thu, 17 Aug 2017 18:54:16 +0200 Subject: [PATCH] states/network: parametrize Openstack public net Determine public network based on public IPs of compute nodes. Change-Id: I5a6b29a0458b0b839f8fdb3e32616a41d7a621f7 Signed-off-by: Alexandru Avadanii --- mcp/config/states/networks | 28 +++++++++++++++++++++++++--- 1 file changed, 25 insertions(+), 3 deletions(-) diff --git a/mcp/config/states/networks b/mcp/config/states/networks index 205e0a9..6f294ce 100755 --- a/mcp/config/states/networks +++ b/mcp/config/states/networks @@ -1,3 +1,25 @@ -salt 'ctl01*' cmd.run ". /root/keystonercv3; openstack compute service list; openstack network agent list; openstack stack list; openstack volume service list" -salt 'ctl01*' cmd.run ". /root/keystonercv3; openstack network create --external --default --provider-network-type flat --provider-physical-network physnet1 floating_net" -salt 'ctl01*' cmd.run ". /root/keystonercv3; openstack subnet create --gateway 10.16.0.1 --no-dhcp --allocation-pool start=10.16.0.130,end=10.16.0.254 --network floating_net --subnet-range 10.16.0.0/24 floating_subnet" +#!/bin/bash + +# Determine public network based on external IPs from compute node +# NOTE: mask currently hardcoded to /24 +PUBLIC_NET=$(salt --out yaml 'cmp*' pillar.get _param:external_address | \ + awk --re-interval '/[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}/{print $2; exit}') + +[ -n "${PUBLIC_NET}" ] || PUBLIC_NET=$(salt --out yaml 'cmp*' \ + pillar.get _param:openstack_compute_node01_external_address | \ + awk --re-interval '/[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}/{print $2; exit}') + +[ -n "${PUBLIC_NET}" ] && PUBLIC_NET="${PUBLIC_NET%.*}.0/24" || PUBLIC_NET="10.16.0.0/24" + +salt 'ctl01*' cmd.run ". /root/keystonercv3; \ + openstack compute service list; \ + openstack network agent list; \ + openstack stack list; \ + openstack volume service list" +salt 'ctl01*' cmd.run ". /root/keystonercv3; \ + openstack network create --external --default --provider-network-type flat \ + --provider-physical-network physnet1 floating_net" +salt 'ctl01*' cmd.run ". /root/keystonercv3; \ + openstack subnet create --gateway ${PUBLIC_NET%.*}.1 --no-dhcp \ + --allocation-pool start=${PUBLIC_NET%.*}.130,end=${PUBLIC_NET%.*}.254 \ + --network floating_net --subnet-range ${PUBLIC_NET} floating_subnet"