modfied to take care of labconfig.yaml file copy and change the 97/19097/2
authorNarinder Gupta <narinder.gupta@canonical.com>
Fri, 19 Aug 2016 22:53:52 +0000 (17:53 -0500)
committerNarinder Gupta <narinder.gupta@canonical.com>
Fri, 19 Aug 2016 22:59:21 +0000 (17:59 -0500)
bundle to deploy with haproxy

Change-Id: Iec5126562e4a78b8b4984ce2992ab81a197f90b0
Signed-off-by: Narinder Gupta <narinder.gupta@canonical.com>
ci/00-maasdeploy.sh
ci/02-deploybundle.sh
ci/config_tpl/public-api-proxy.yaml
ci/deploy.sh
ci/genmaasconfig.py [deleted file]

index 1493773..0dfff05 100755 (executable)
@@ -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
 #
index 7003bcb..a62aff9 100755 (executable)
@@ -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/ //'`
index 726945f..b746850 100644 (file)
@@ -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"
index b69b5ba..bb7e63b 100755 (executable)
@@ -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 (file)
index 0ca0b77..0000000
+++ /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)