summaryrefslogtreecommitdiffstats
path: root/ci
diff options
context:
space:
mode:
Diffstat (limited to 'ci')
-rwxr-xr-xci/00-maasdeploy.sh16
-rwxr-xr-xci/02-deploybundle.sh1
-rw-r--r--ci/config_tpl/public-api-proxy.yaml22
-rwxr-xr-xci/deploy.sh8
-rw-r--r--ci/genmaasconfig.py339
5 files changed, 25 insertions, 361 deletions
diff --git a/ci/00-maasdeploy.sh b/ci/00-maasdeploy.sh
index 14937730..0dfff050 100755
--- a/ci/00-maasdeploy.sh
+++ b/ci/00-maasdeploy.sh
@@ -139,13 +139,6 @@ fi
# Init Juju
juju init -f
-# Backup deployment.yaml and deployconfig.yaml in .juju folder
-cp ./deployment.yaml ~/.juju/
-
-if [ -e ./deployconfig.yaml ]; then
- cp ./deployconfig.yaml ~/.juju/
-fi
-
#
# MAAS deploy
#
@@ -156,6 +149,15 @@ sudo chown $USER:$USER environments.yaml
echo "... Deployment of maas finish ...."
+# Backup deployment.yaml and deployconfig.yaml in .juju folder
+
+cp ./environments.yaml ~/.juju/
+
+if [ -e ./deployconfig.yaml ]; then
+ cp ./deployconfig.yaml ~/.juju/
+ cp ./labconfig.yaml ~/.juju/
+fi
+
#
# MAAS Customization
#
diff --git a/ci/02-deploybundle.sh b/ci/02-deploybundle.sh
index 7003bcbb..a62aff9f 100755
--- a/ci/02-deploybundle.sh
+++ b/ci/02-deploybundle.sh
@@ -46,6 +46,7 @@ if [ -e ~/.juju/deployment.yaml ]; then
cp ~/.juju/deployment.yaml ./deployment.yaml
if [ -e ~/.juju/deployconfig.yaml ]; then
cp ~/.juju/deployconfig.yaml ./deployconfig.yaml
+ cp ~/.juju/labconfig.yaml ./lanconfig.yaml
extport=`grep "ext-port" deployconfig.yaml | cut -d ' ' -f 4 | sed -e 's/ //' | tr ',' ' '`
datanet=`grep "dataNetwork" deployconfig.yaml | cut -d ' ' -f 4 | sed -e 's/ //'`
admnet=`grep "admNetwork" deployconfig.yaml | cut -d ' ' -f 4 | sed -e 's/ //'`
diff --git a/ci/config_tpl/public-api-proxy.yaml b/ci/config_tpl/public-api-proxy.yaml
index 726945fe..b746850c 100644
--- a/ci/config_tpl/public-api-proxy.yaml
+++ b/ci/config_tpl/public-api-proxy.yaml
@@ -1,13 +1,13 @@
-haproxy:
- charm: "local:{{ opnfv.distro }}/haproxy"
- num_units: 1
- options:
- services: |-
+ haproxy:
+ charm: "local:{{ opnfv.distro }}/haproxy"
+ num_units: 1
+ options:
+ services: |-
{% for service in public_api_services.values() %}
- - service_name: {{ service.name }}
- service_host: {{ public_api_ip }}
- service_port: {{ service.port }}
- servers: [[{{ service.name }},{{ service.ip }},{{ service.port }}]]
+ - service_name: {{ service.name }}
+ service_host: {{ public_api_ip }}
+ service_port: {{ service.port }}
+ servers: [[{{ service.name }},{{ service.ip }},{{ service.port }}]]
{% endfor %}
- to:
- - "nodes=0"
+ to:
+ - "nodes=0"
diff --git a/ci/deploy.sh b/ci/deploy.sh
index b69b5baa..bb7e63bc 100755
--- a/ci/deploy.sh
+++ b/ci/deploy.sh
@@ -167,10 +167,10 @@ echo "...... deploy public api proxy ......"
if [ "$opnfvlab" == "orangepod1" ] && [ "$opnfvsdn" == "nosdn" ]; then # only for first test phase
PUB_API_NET=$(grep floating-ip-range ./labconfig.yaml |cut -d/ -f2)
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"
- juju run --unit nodes/0 "sudo ip l set dev br-ex up"
- python genPublicAPIProxyBundle.py -l labconfig.yaml > haproxy.bundle.yaml
- juju-deployer -vW -d -t 7200 -r 5 -c haproxy.bundle.yaml haproxy
+ juju run --unit nodes/0 "sudo ip a a ${PUB_API_IP}/${PUB_API_NET} 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-"$openstack" || true
fi
echo "...... deployment finished ......."
diff --git a/ci/genmaasconfig.py b/ci/genmaasconfig.py
deleted file mode 100644
index 0ca0b778..00000000
--- a/ci/genmaasconfig.py
+++ /dev/null
@@ -1,339 +0,0 @@
-#!/usr/bin/python
-# -*- coding: utf-8 -*-
-
-"""
-Deploy JOID
-"""
-
-import yaml
-import socket
-import fcntl
-import struct
-import getpass
-
-
-def get_ip_address(ifname):
- """Get local IP"""
- s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
- return socket.inet_ntoa(fcntl.ioctl(
- s.fileno(),
- 0x8915, # SIOCGIFADDR
- struct.pack('256s', ifname[:15])
- )[20:24])
-
-with open('labconfig.yaml', 'r') as labf:
- try:
- labcfg = yaml.load(labf)
- except yaml.YAMLError as exc:
- print(exc)
-
-
-opnfvcfg = {}
-opnfvlabcfg = {}
-
-
-def get_from_dict(dataDict, mapList):
- return reduce(lambda d, k: d[k], mapList, dataDict)
-
-# lets define the bootstrap section
-opnfvcfg['demo-maas'] = {'juju-bootstrap': {'memory': 4096,
- 'name': "bootstrap",
- 'pool': "default",
- 'vcpus': 4,
- 'disk_size': "60G",
- 'arch': "amd64",
- 'interfaces': []},
- 'maas': {'memory': 4096,
- 'pool': "default",
- 'vcpus': 4,
- 'disk_size': "160G",
- 'arch': "amd64",
- 'interfaces': [],
- 'name': "",
- 'network_config': [],
- 'node_group_ifaces': [],
- 'nodes': [],
- 'password': 'ubuntu',
- 'user': 'ubuntu',
- 'release': 'trusty',
- 'apt_sources': [],
- 'ip_address': '',
- 'boot_source': {
- 'keyring_filename': "/usr/share/keyrings/ubuntu-cloudimage-keyring.gpg",
- 'url': "http://maas.ubuntu.com/images/ephemeral-v2/releases/",
- 'selections': {
- '1': {
- 'arches': 'amd64',
- 'labels': 'release',
- 'os': 'ubuntu',
- 'release': 'xenial',
- 'subarches': '*'
- }
- }
- },
- 'settings': {'maas_name': '',
- 'upstream_dns': '',
- 'main_archive': "http://archive.ubuntu.com/ubuntu"
- },
- 'virsh': {'rsa_priv_key': '/home/ubuntu/.ssh/id_rsa',
- 'rsa_pub_key': '/home/ubuntu/.ssh/id_rsa.pub',
- 'uri': ''
- }
- }
- }
-
-opnfvlabcfg['opnfv'] = {'ext-port': '',
- 'floating-ip-range': '',
- 'dataNetwork': '',
- 'ceph-disk': '/srv/',
- 'storageNetwork': '',
- 'interface-enable': '',
- 'publicNetwork': '',
- 'os-domain-name': '',
- 'vip': {'rabbitmq': '',
- 'dashboard': '',
- 'glance': '',
- 'keystone': '',
- 'ceilometer': '',
- 'mysql': '',
- 'nova': '',
- 'neutron': '',
- 'heat': '',
- 'cinder': ''}
- }
-
-
-opnfvcfg['demo-maas']['maas']['apt_sources'].append("ppa:maas/stable")
-opnfvcfg['demo-maas']['maas']['apt_sources'].append("ppa:juju/stable")
-
-# lets modify the maas general settings:
-
-updns = get_from_dict(labcfg, ["lab", "racks", 0, "dns"])
-opnfvcfg["demo-maas"]["maas"]["settings"]["upstream_dns"] = updns
-
-location = get_from_dict(labcfg, ["lab", "location"])
-rack = get_from_dict(labcfg, ["lab", "racks", 0, "rack"])
-value = location+rack
-
-opnfvcfg["demo-maas"]["maas"]["settings"]["maas_name"] = value
-opnfvcfg["demo-maas"]["maas"]["name"] = "opnfv-"+value
-
-ethbrAdm = ""
-ethbrAdmin = ""
-
-c = 0
-y = 0
-# z = 0
-
-while c < len(labcfg["opnfv"]["spaces"]):
- brtype = get_from_dict(labcfg, ["opnfv", "spaces", c, "type"])
- brname = get_from_dict(labcfg, ["opnfv", "spaces", c, "bridge"])
- brcidr = get_from_dict(labcfg, ["opnfv", "spaces", c, "cidr"])
-#
- if brtype == "admin":
- ethbrAdmin = get_from_dict(labcfg, ["opnfv", "spaces", c, "bridge"])
- brgway = get_from_dict(labcfg, ["opnfv", "spaces", c, "gateway"])
- tmpcidr = brcidr[:-4]
- opnfvlabcfg["opnfv"]["admNetwork"] = tmpcidr+"2"
- opnfvlabcfg["opnfv"]["admNetgway"] = brgway
-
- nodegroup = {"device": "eth"+str(y),
- "ip": tmpcidr+"5",
- "subnet_mask": "255.255.255.0",
- "broadcast_ip": tmpcidr+"255",
- "router_ip": brgway,
- "static_range": {"high": tmpcidr+"80",
- "low": tmpcidr+"50"},
- "dynamic_range": {"high": tmpcidr+"250",
- "low": tmpcidr+"81"}}
-
- ethbrAdm = ('auto lo\n'
- ' iface lo inet loopback\n\n'
- 'auto eth'+str(y)+'\n'
- ' iface eth'+str(y)+' inet static\n'
- ' address '+tmpcidr+'5\n'
- ' netmask 255.255.255.0\n'
- ' gateway '+brgway+'\n'
- ' dns-nameservers '+updns+' '+tmpcidr+'5 127.0.0.1\n')
-
- opnfvcfg['demo-maas']['maas']['ip_address'] = tmpcidr+"5"
- opnfvcfg['demo-maas']['maas']['interfaces'].append(
- "bridge="+brname+",model=virtio")
- opnfvcfg['demo-maas']['juju-bootstrap']['interfaces'].append(
- "bridge="+brname+",model=virtio")
- opnfvcfg["demo-maas"]["maas"]["node_group_ifaces"].append(nodegroup)
- y = y+1
- elif brtype:
- opnfvcfg["demo-maas"]["maas"]["interfaces"].append(
- "bridge="+brname+",model=virtio")
- brgway = get_from_dict(labcfg, ["opnfv", "spaces", c, "gateway"])
- if brtype != "external":
- tmpcidr = brcidr[:-4]
- if brgway:
- nodegroup = {"device": "eth"+str(y),
- "ip": tmpcidr+"5",
- "subnet_mask": "255.255.255.0",
- "broadcast_ip": tmpcidr+"255",
- "management": 1,
- "router_ip": brgway,
- "static_range": {"high": tmpcidr+"80",
- "low": tmpcidr+"50"},
- "dynamic_range": {"high": tmpcidr+"250",
- "low": tmpcidr+"81"}}
- else:
- nodegroup = {"device": "eth"+str(y),
- "ip": tmpcidr+"5",
- "subnet_mask": "255.255.255.0",
- "broadcast_ip": tmpcidr+"255",
- "management": 1,
- "static_range": {"high": tmpcidr+"80",
- "low": tmpcidr+"50"},
- "dynamic_range": {"high": tmpcidr+"250",
- "low": tmpcidr+"81"}}
- opnfvcfg["demo-maas"]["maas"]["node_group_ifaces"].append(
- nodegroup)
- ethbrAdm = (ethbrAdm+'\n'
- 'auto eth'+str(y)+'\n'
- ' iface eth'+str(y)+' inet static\n'
- ' address '+tmpcidr+'5\n'
- ' netmask 255.255.255.0\n')
- y = y+1
- if brtype == "public":
- opnfvcfg["demo-maas"]["juju-bootstrap"]["interfaces"].append(
- "bridge="+brname+",model=virtio")
- opnfvlabcfg["opnfv"]["publicNetwork"] = brcidr
- if brtype == "external":
- ipaddress = get_from_dict(labcfg, ["opnfv", "spaces",
- c, "ipaddress"])
- ethbrAdm = (ethbrAdm+'\n'
- 'auto eth'+str(y)+'\n'
- ' iface eth'+str(y)+' inet static\n'
- ' address '+ipaddress+'\n'
- ' netmask 255.255.255.0\n')
- opnfvcfg["demo-maas"]["juju-bootstrap"]["interfaces"].append(
- "bridge="+brname+",model=virtio")
- if brtype == "data":
- opnfvlabcfg["opnfv"]["dataNetwork"] = brcidr
- if brtype == "storage":
- opnfvlabcfg["opnfv"]["storageNetwork"] = brcidr
-
- c = c+1
-
-# lets modify the maas general settings:
-value = get_ip_address(ethbrAdmin)
-value = "qemu+ssh://"+getpass.getuser()+"@"+value+"/system"
-opnfvcfg['demo-maas']['maas']['virsh']['uri'] = value
-opnfvcfg['demo-maas']['maas']['network_config'] = ethbrAdm
-
-if len(labcfg["lab"]["racks"][0]["nodes"]) < 1:
- print("looks like virtual deployment where nodes were not defined")
- opnfvcfg["demo-maas"]["maas"]["nodes"].remove()
- exit()
-
-# lets insert the node details here:
-c = 0
-ifnamelist = []
-#
-while c < len(labcfg["lab"]["racks"][0]["nodes"]):
- valuemac = []
- y = 0
- # setup value of name and tags accordigly
- noderoleslist = labcfg["lab"]["racks"][0]["nodes"][c]["roles"]
- noderoles = " ".join(noderoleslist)
-
- valuetype = get_from_dict(labcfg, ["lab", "racks", 0, "nodes",
- c, "power", "type"])
- namevalue = labcfg["lab"]["racks"][0]["nodes"][c]["name"]
- valuearc = get_from_dict(labcfg, ["lab", "racks", 0,
- "nodes", c, "architecture"])
- # setup value of architecture
- if valuearc == "x86_64":
- valuearc = "amd64/generic"
-
- if valuetype == "wakeonlan":
- macvalue = get_from_dict(labcfg, ["lab", "racks", 0, "nodes",
- c, "power", "mac_address"])
- power = {"type": "ether_wake", "mac_address": macvalue}
- if valuetype == "ipmi":
- valueaddr = get_from_dict(labcfg, ["lab", "racks", 0, "nodes", c,
- "power", "address"])
- valueuser = get_from_dict(labcfg, ["lab", "racks", 0, "nodes", c,
- "power", "user"])
- valuepass = get_from_dict(labcfg, ["lab", "racks", 0, "nodes", c,
- "power", "pass"])
- valuedriver = "LAN_2_0"
- power = {"type": valuetype, "address": valueaddr, "user": valueuser,
- "pass": valuepass, "driver": valuedriver}
-
- opnfvcfg["demo-maas"]["maas"]["nodes"].append(
- {"name": namevalue,
- "architecture": valuearc,
- "interfaces": [],
- "mac_addresses": [],
- "power": power,
- 'tags': noderoles})
-
- y = 0
- while y < len(labcfg["lab"]["racks"][0]["nodes"][c]["nics"]):
- valuespaces = labcfg["lab"]["racks"][0]["nodes"][c][
- "nics"][y]["spaces"]
- valueifname = labcfg["lab"]["racks"][0]["nodes"][c][
- "nics"][y]["ifname"]
- if "admin" not in valuespaces:
- ifnamelist += [valueifname]
- valueifmac = labcfg["lab"]["racks"][0]["nodes"][c]["nics"][y]["mac"][0]
- valuemac += labcfg["lab"]["racks"][0]["nodes"][c]["nics"][y]["mac"]
- opnfvcfg["demo-maas"]["maas"]["nodes"][c]["interfaces"].append(
- {"name": valueifname,
- "mac_address": valueifmac,
- "mode": "auto"})
- y = y+1
-
- if valueifmac:
- opnfvcfg["demo-maas"]["maas"]["nodes"][c]['mac_addresses'] = valuemac
-
- c = c+1
-
-opnfvlabcfg["opnfv"]["floating-ip-range"] =\
- labcfg["lab"]["racks"][0]["floating-ip-range"]
-opnfvlabcfg["opnfv"]["ext-port"] =\
- labcfg["lab"]["racks"][0]["ext-port"]
-opnfvlabcfg["opnfv"]["ceph-disk"] =\
- labcfg["opnfv"]["storage"][0]["disk"]
-opnfvlabcfg["opnfv"]["interface-enable"] =\
- ",".join(list(set(ifnamelist)))
-
-# setup vip addresss for HA
-opnfvlabcfg["opnfv"]["vip"]["rabbitmq"] =\
- opnfvlabcfg["opnfv"]["admNetwork"]+"0"
-opnfvlabcfg["opnfv"]["vip"]["dashboard"] =\
- opnfvlabcfg["opnfv"]["admNetwork"]+"1"
-opnfvlabcfg["opnfv"]["vip"]["glance"] = opnfvlabcfg["opnfv"]["admNetwork"]+"2"
-opnfvlabcfg["opnfv"]["vip"]["keystone"] =\
- opnfvlabcfg["opnfv"]["admNetwork"]+"3"
-opnfvlabcfg["opnfv"]["vip"]["ceilometer"] =\
- opnfvlabcfg["opnfv"]["admNetwork"]+"4"
-opnfvlabcfg["opnfv"]["vip"]["mysql"] = opnfvlabcfg["opnfv"]["admNetwork"]+"5"
-opnfvlabcfg["opnfv"]["vip"]["nova"] = opnfvlabcfg["opnfv"]["admNetwork"]+"6"
-opnfvlabcfg["opnfv"]["vip"]["neutron"] = opnfvlabcfg["opnfv"]["admNetwork"]+"7"
-opnfvlabcfg["opnfv"]["vip"]["heat"] = opnfvlabcfg["opnfv"]["admNetwork"]+"8"
-opnfvlabcfg["opnfv"]["vip"]["cinder"] = opnfvlabcfg["opnfv"]["admNetwork"]+"9"
-
-osdomname = labcfg["lab"]["racks"][0]["osdomainname"]
-
-if osdomname:
- opnfvlabcfg["opnfv"]["os-domain-name"] =\
- labcfg["lab"]["racks"][0]["osdomainname"]
- opnfvlabcfg["opnfv"]["domain"] = labcfg["lab"]["racks"][0]["osdomainname"]
-
-opnfvlabcfg["opnfv"]["ext_port"] = labcfg["lab"]["racks"][0]["ext-port"]
-opnfvlabcfg["opnfv"]["units"] = len(labcfg["lab"]["racks"][0]["nodes"])
-opnfvlabcfg["opnfv"]["admin_password"] = "openstack"
-opnfvlabcfg["opnfv"]["storage"] = labcfg["opnfv"]["storage"]
-opnfvlabcfg["opnfv"]["spaces"] = labcfg["opnfv"]["spaces"]
-
-with open('deployment.yaml', 'wa') as opnfvf:
- yaml.dump(opnfvcfg, opnfvf, default_flow_style=False)
-
-with open('deployconfig.yaml', 'wa') as opnfvf:
- yaml.dump(opnfvlabcfg, opnfvf, default_flow_style=False)