summaryrefslogtreecommitdiffstats
path: root/ci/openstack.sh
diff options
context:
space:
mode:
authorDavid Blaisonneau <david.blaisonneau@orange.com>2016-09-21 18:29:28 +0200
committerDavid Blaisonneau <david.blaisonneau@orange.com>2016-09-22 11:39:22 +0200
commitd3f5b8219082e473cd98af4ed2033c7520804bff (patch)
tree863f71c3545cfd1cdd8fd3d81f32d35027d1825b /ci/openstack.sh
parent4e0cd86da483138d11bd92846bf73a25a0f61571 (diff)
In case of public api, we push a DNS record to maas
Change-Id: I6f071db240778d8c49f0b129e2f8046b9e3cf71f Signed-off-by: David Blaisonneau <david.blaisonneau@orange.com>
Diffstat (limited to 'ci/openstack.sh')
-rwxr-xr-xci/openstack.sh27
1 files changed, 24 insertions, 3 deletions
diff --git a/ci/openstack.sh b/ci/openstack.sh
index 5bee7d08..8efaac53 100755
--- a/ci/openstack.sh
+++ b/ci/openstack.sh
@@ -134,11 +134,32 @@ create_openrc
echo "...... deploy public api proxy ......"
-if [ "$opnfvlab" == "orangepod1" ] && [ "$opnfvsdn" == "nosdn" ]; then # only for first test phase
+if ([ "$opnfvlab" == "orangepod1" ] \
+ || [ "$opnfvlab" == "intelpod6" ]) \
+ && [ "$opnfvsdn" == "nosdn" ] \
+ && [ "$API_FQDN" != "None" ]; then # only for first test phase
if [ -e ./labconfig.yaml ]; then
- PUB_API_NET=$(grep floating-ip-range ./labconfig.yaml |cut -d/ -f2)
+ PUB_API_MASK=$(grep floating-ip-range ./labconfig.yaml |cut -d/ -f2)
+ PUB_API_NET=$(grep floating-ip-range ./labconfig.yaml |cut -d, -f4)
PUB_API_IP=$(grep public-api-ip ./labconfig.yaml |cut -d: -f2)
- juju run --unit nodes/0 "sudo ip a a ${PUB_API_IP}/${PUB_API_NET} dev br-ex" || true
+ if grep "- type: public" ./labconfig.yaml; then
+ # The public network exists on MAAS, so we push the dns record to it
+
+ # Recover maas ips and login to it
+ maas_ip=$(grep " ip_address" deployment.yaml | cut -d ':' -f 2 | sed -e 's/ //')
+ maas_pubip=$(grep floating-ip-range ./labconfig.yaml |cut -d, -f4 |perl -pe 's!^(.*)\.\d+/\d+$!$1.5!')
+ apikey=$(grep maas-oauth: environments.yaml | cut -d "'" -f 2)
+ maas login maas http://${maas_ip}/MAAS/api/1.0 ${apikey}
+
+ # Configure maas to add the record
+ CLUSTER_UUID=$(maas ubuntu node-groups list | grep uuid | cut -d\" -f4)
+ PUBLIC_MAAS_IF=$(maas ubuntu node-group-interfaces list $cluster_uuid |\
+ python -c "import yaml; import sys; cfg=yaml.load(sys.stdin); net_h={net['ip']:net['name'] for net in cfg}; print(net_h['$maas_pubip'])")
+ maas maas node-group-interface update ${CLUSTER_UUID} ${PUBLIC_MAAS_IF} static_ip_range_high=${PUB_API_IP} static_ip_range_low=${PUB_API_IP}
+ maas maas ipaddresses reserve network=${PUB_API_NET} requested_address=${PUB_API_IP} hostname=${API_FQDN}
+ dig ${PUB_API_IP} @${maas_ip} # just for log
+ fi
+ juju run --unit nodes/0 "sudo ip a a ${PUB_API_IP}/${PUB_API_MASK} dev br-ex" || true
juju run --unit nodes/0 "sudo ip l set dev br-ex up" || true
python genPublicAPIProxyBundle.py -l labconfig.yaml >> bundles.yaml
juju-deployer -vW -d -t 7200 -r 5 -c bundles.yaml $opnfvdistro-"$opnfvos" || true