X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;ds=sidebyside;f=ci%2Fdeploy.py;h=99dce0df87dc6a8cd74082861805c1b3e33bac8c;hb=619773c3be56822439e26c828bbdb3f173b03cff;hp=03c6027ee208572ca098b5f7200c5e66a9e8e201;hpb=cfec7d3cd0d733d9b952a43f5f7264eb8e17e6a1;p=joid.git diff --git a/ci/deploy.py b/ci/deploy.py index 03c6027e..99dce0df 100644 --- a/ci/deploy.py +++ b/ci/deploy.py @@ -18,6 +18,7 @@ with open('labconfig.yaml', 'r') as labf: labcfg = yaml.load(labf) opnfvcfg={} +opnfvlabcfg={} def getFromDict(dataDict, mapList): return reduce(lambda d, k: d[k], mapList, dataDict) @@ -52,16 +53,21 @@ opnfvcfg['demo-maas']={'juju-bootstrap':{'memory': 4096,'name': "bootstrap",\ }\ } +opnfvlabcfg['opnfv']={'ext-port':'','floating-ip-range':'','dataNetwork':'','ceph-disk':'/srv/',\ + 'storageNetwork':'','interface-enable':'','publicNetwork':''} -opnfvcfg['demo-maas']['maas']['apt_sources'].append("ppa:maas/stable") -opnfvcfg['demo-maas']['maas']['apt_sources'].append("ppa:juju/stable") +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 = getFromDict(labcfg, ["labconfig","labsettings","upstream_dns"]) +updns = getFromDict(labcfg, ["lab","racks",0,"dns"]) opnfvcfg["demo-maas"]["maas"]["settings"]["upstream_dns"]=updns -value = getFromDict(labcfg, ["labconfig","lab_location"]) +location = getFromDict(labcfg, ["lab","location"]) +rack = getFromDict(labcfg, ["lab","racks",0,"rack"]) +value=location+rack + opnfvcfg["demo-maas"]["maas"]["settings"]["maas_name"]=value opnfvcfg["demo-maas"]["maas"]["name"]="opnfv-"+value @@ -72,15 +78,17 @@ c=0 y=0 #z=0 -while c < len(labcfg["labconfig"]["bridges"]): - brtype = getFromDict(labcfg, ["labconfig","bridges",c,"type"]) - brname = getFromDict(labcfg, ["labconfig","bridges",c,"bridge"]) - brcidr = getFromDict(labcfg, ["labconfig","bridges",c,"cidr"]) +while c < len(labcfg["opnfv"]["spaces"]): + brtype = getFromDict(labcfg, ["opnfv","spaces",c,"type"]) + brname = getFromDict(labcfg, ["opnfv","spaces",c,"bridge"]) + brcidr = getFromDict(labcfg, ["opnfv","spaces",c,"cidr"]) # if brtype == "admin": - ethbrAdmin = getFromDict(labcfg, ["labconfig","bridges",c,"bridge"]) - brgway = getFromDict(labcfg, ["labconfig","bridges",c,"gateway"]) + ethbrAdmin = getFromDict(labcfg, ["opnfv","spaces",c,"bridge"]) + brgway = getFromDict(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,\ @@ -97,13 +105,13 @@ while c < len(labcfg["labconfig"]["bridges"]): ' 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']['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 = getFromDict(labcfg, ["labconfig","bridges",c,"gateway"]) + brgway = getFromDict(labcfg, ["opnfv","spaces",c,"gateway"]) if brtype != "external": tmpcidr = brcidr[:-4] if brgway: @@ -125,59 +133,90 @@ while c < len(labcfg["labconfig"]["bridges"]): 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 = getFromDict(labcfg, ["labconfig","bridges",c,"ipaddress"]) + ipaddress = getFromDict(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 = 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["labconfig"]["nodes"]) < 1: +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() + exit() #lets insert the node details here: c=0 +ifnamelist=[] # -while c < len(labcfg["labconfig"]["nodes"]): +while c < len(labcfg["lab"]["racks"][0]["nodes"]): + valuemac=[] + y = 0 # setup value of name and tags accordigly - value = getFromDict(labcfg, ["labconfig","nodes",c, "type"]) - valuemac = getFromDict(labcfg, ["labconfig","nodes",c, "pxe_mac_address"]) - valuetype = getFromDict(labcfg, ["labconfig","nodes",c, "power", "type"]) - namevalue = "node" + str(c+1) + "-" + value - value = getFromDict(labcfg, ["labconfig","nodes",c, "architecture"]) + noderoleslist = labcfg["lab"]["racks"][0]["nodes"][c]["roles"] + noderoles = " ".join(noderoleslist) + + valuetype = getFromDict(labcfg, ["lab","racks",0,"nodes",c, "power", "type"]) + namevalue = labcfg["lab"]["racks"][0]["nodes"][c]["name"] + valuearc = getFromDict(labcfg, ["lab","racks",0,"nodes",c, "architecture"]) # setup value of architecture - if value == "x86_64": - value="amd64/generic" + if valuearc == "x86_64": + valuearc="amd64/generic" if valuetype == "wakeonlan": - macvalue = getFromDict(labcfg, ["labconfig","nodes",c, "power", "mac_address"]) + macvalue = getFromDict(labcfg, ["lab","racks",0,"nodes",c, "power", "mac_address"]) power={"type": "ether_wake", "mac_address": macvalue} if valuetype == "ipmi": - valueaddr = getFromDict(labcfg, ["labconfig","nodes",c, "power", "address"]) - valueuser = getFromDict(labcfg, ["labconfig","nodes",c, "power", "user"]) - valuepass = getFromDict(labcfg, ["labconfig","nodes",c, "power", "pass"]) + valueaddr = getFromDict(labcfg, ["lab","racks",0,"nodes",c, "power", "address"]) + valueuser = getFromDict(labcfg, ["lab","racks",0,"nodes",c, "power", "user"]) + valuepass = getFromDict(labcfg, ["lab","racks",0,"nodes",c, "power", "pass"]) valuedriver = "LAN_2_0" - power={"type": valuetype, "address": valueaddr,"user": valueuser, "pass": valuepass, "driver": valuedriver} + 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"}) - opnfvcfg["demo-maas"]["maas"]["nodes"].append({"name": namevalue, "architecture":value,"mac_addresses":[],"power":power}) + y=y+1 - if valuemac: + 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))) + 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)