From d3f5b8219082e473cd98af4ed2033c7520804bff Mon Sep 17 00:00:00 2001 From: David Blaisonneau Date: Wed, 21 Sep 2016 18:29:28 +0200 Subject: [PATCH] In case of public api, we push a DNS record to maas Change-Id: I6f071db240778d8c49f0b129e2f8046b9e3cf71f Signed-off-by: David Blaisonneau --- ci/openstack.sh | 27 ++++++++++++++++++++++++--- labconfig/intel/pod6/labconfig.yaml | 5 +++-- 2 files changed, 27 insertions(+), 5 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 diff --git a/labconfig/intel/pod6/labconfig.yaml b/labconfig/intel/pod6/labconfig.yaml index 35a427e9..251c8607 100644 --- a/labconfig/intel/pod6/labconfig.yaml +++ b/labconfig/intel/pod6/labconfig.yaml @@ -111,10 +111,11 @@ lab: # address: 10.2.117.106 # user: root # pass: root - floating-ip-range: 10.6.15.6,10.6.15.250,10.6.15.1,10.6.15.0/24 + floating-ip-range: 10.6.15.7,10.6.15.250,10.6.15.1,10.6.15.0/24 ext-port: "eth5" dns: 8.8.8.8 - osdomainname: + public-api-ip: 10.6.15.6 + osdomainname: api.maas opnfv: release: c distro: trusty -- 2.16.6