summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xci/02-maasdeploy.sh17
-rw-r--r--ci/deploy.py173
-rwxr-xr-xci/maas/deployment.yaml94
-rwxr-xr-xlabconfig/intel/pod5/deployment.yaml257
-rw-r--r--labconfig/intel/pod5/labconfig.yaml81
-rwxr-xr-xlabconfig/intel/pod6/deployment.yaml94
-rw-r--r--labconfig/intel/pod6/labconfig.yaml81
-rwxr-xr-xlabconfig/intel/pod9/deployment.yaml230
-rw-r--r--labconfig/intel/pod9/labconfig.yaml63
-rw-r--r--labconfig/labconfig.yaml81
10 files changed, 1134 insertions, 37 deletions
diff --git a/ci/02-maasdeploy.sh b/ci/02-maasdeploy.sh
index be978667..20357803 100755
--- a/ci/02-maasdeploy.sh
+++ b/ci/02-maasdeploy.sh
@@ -4,12 +4,17 @@ set -ex
virtinstall=0
+cp maas/deployment.yaml ./deployment.yaml
+cp ../labconfig/intel/pod6/labconfig.yaml ./
+
case "$1" in
'intelpod5' )
cp maas/intel/pod5/deployment.yaml ./deployment.yaml
;;
'intelpod6' )
- cp maas/intel/pod6/deployment.yaml ./deployment.yaml
+ cp ../labconfig/intel/pod6/labconfig.yaml ./
+ #to be removed later once converted for all labs.
+ python deploy.py
;;
'intelpod9' )
cp maas/intel/pod9/deployment.yaml ./deployment.yaml
@@ -39,9 +44,6 @@ case "$1" in
;;
esac
-#just make sure the ssh keys added into maas for the current user
-sed --i "s@/home/ubuntu@$HOME@g" ./deployment.yaml
-sed --i "s@qemu+ssh://ubuntu@qemu+ssh://$USER@g" ./deployment.yaml
#make sure no password asked during the deployment.
@@ -145,6 +147,13 @@ crnodevlanint() {
done
}
+#convert labconfig file to deployment.yaml to consume by MAAS.
+#python deploy.py
+
+#just make sure the ssh keys added into maas for the current user
+sed --i "s@/home/ubuntu@$HOME@g" ./deployment.yaml
+sed --i "s@qemu+ssh://ubuntu@qemu+ssh://$USER@g" ./deployment.yaml
+
sudo maas-deployer -c deployment.yaml -d --force
sudo chown $USER:$USER environments.yaml
diff --git a/ci/deploy.py b/ci/deploy.py
index d52bd609..c1a714d8 100644
--- a/ci/deploy.py
+++ b/ci/deploy.py
@@ -1,12 +1,24 @@
import yaml
import pprint
-
-with open('example.yaml', 'r') as f:
- doc = yaml.load(f)
-txt = doc["nodes"][0]["power"]
-
-with open('deployment.yaml', 'r') as ft:
- doc1 = yaml.load(ft)
+import socket
+import fcntl
+import struct
+import os
+import getpass
+
+def get_ip_address(ifname):
+ 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:
+ labcfg = yaml.load(labf)
+
+with open('deployment.yaml', 'r') as opnfvf:
+ opnfvcfg = yaml.load(opnfvf)
def setInDict(dataDict, mapList, value):
getFromDict(dataDict, mapList[:-1])[mapList[-1]] = value
@@ -14,46 +26,141 @@ def setInDict(dataDict, mapList, value):
def getFromDict(dataDict, mapList):
return reduce(lambda d, k: d[k], mapList, dataDict)
-if len(doc["nodes"]) > len(doc1["demo-maas"]["maas"]["nodes"]):
- exit 0
+if len(labcfg["labconfig"]["nodes"]) < 3:
+ print("minimum three nodes are needed for opnfv architecture deployment")
+ exit()
+
+# lets modify the maas general settings:
+
+updns = getFromDict(labcfg, ["labconfig","labsettings","upstream_dns"])
+setInDict(opnfvcfg, ["demo-maas", "maas", "settings", "upstream_dns"], updns)
+value = getFromDict(labcfg, ["labconfig","lab_location"])
+setInDict(opnfvcfg, ["demo-maas", "maas", "settings", "maas_name"], value)
+setInDict(opnfvcfg, ["demo-maas", "maas", "name"], "opnfv-"+value)
+
+#lets figure out the interfaces data
+
+ethbrAdm=""
+ethbrAdmin=""
c=0
-while c < len(doc["nodes"]):
+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"])
+ if brtype == "admin":
+ ethbrAdmin = getFromDict(labcfg, ["labconfig","bridges",c,"bridge"])
+ brgway = getFromDict(labcfg, ["labconfig","bridges",c,"gateway"])
+ tmpcidr = brcidr[:-4]
+ setInDict(opnfvcfg, ["demo-maas", "maas", "ip_address"], tmpcidr+"5")
+ opnfvcfg["demo-maas"]["maas"]["interfaces"][y] = "bridge="+brname+",model=virtio"
+ opnfvcfg["demo-maas"]["maas"]["node_group_ifaces"][y]["device"] = "eth"+str(y)
+ opnfvcfg["demo-maas"]["maas"]["node_group_ifaces"][y]["ip"] = tmpcidr+"5"
+ opnfvcfg["demo-maas"]["maas"]["node_group_ifaces"][y]["subnet_mask"] = "255.255.255.0"
+ opnfvcfg["demo-maas"]["maas"]["node_group_ifaces"][y]["broadcast_ip"] = tmpcidr+"255"
+ opnfvcfg["demo-maas"]["maas"]["node_group_ifaces"][y]["router_ip"] = brgway
+ opnfvcfg["demo-maas"]["maas"]["node_group_ifaces"][y]["static_range"]["low"] = tmpcidr+"50"
+ opnfvcfg["demo-maas"]["maas"]["node_group_ifaces"][y]["static_range"]["high"] = tmpcidr+"80"
+ opnfvcfg["demo-maas"]["maas"]["node_group_ifaces"][y]["dynamic_range"]["low"] = tmpcidr+"81"
+ opnfvcfg["demo-maas"]["maas"]["node_group_ifaces"][y]["dynamic_range"]["high"] = tmpcidr+"250"
+ opnfvcfg["demo-maas"]["juju-bootstrap"]["interfaces"][z] = "bridge="+brname+",model=virtio"
+ 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')
+ z=z+1
+ y=y+1
+ elif brtype:
+ opnfvcfg["demo-maas"]["maas"]["interfaces"].append("bridge="+brname+",model=virtio")
+ brgway = getFromDict(labcfg, ["labconfig","bridges",c,"gateway"])
+ if brtype != "external":
+ tmpcidr = brcidr[:-4]
+ opnfvcfg["demo-maas"]["maas"]["node_group_ifaces"][y]["device"] = "eth"+str(y)
+ opnfvcfg["demo-maas"]["maas"]["node_group_ifaces"][y]["ip"] = tmpcidr+"5"
+ opnfvcfg["demo-maas"]["maas"]["node_group_ifaces"][y]["subnet_mask"] = "255.255.255.0"
+ opnfvcfg["demo-maas"]["maas"]["node_group_ifaces"][y]["broadcast_ip"] = tmpcidr+"255"
+ if brgway:
+ opnfvcfg["demo-maas"]["maas"]["node_group_ifaces"][y]["router_ip"] = brgway
+ opnfvcfg["demo-maas"]["maas"]["node_group_ifaces"][y]["management"] = 1
+ opnfvcfg["demo-maas"]["maas"]["node_group_ifaces"][y]["static_range"]["low"] = tmpcidr+"20"
+ opnfvcfg["demo-maas"]["maas"]["node_group_ifaces"][y]["static_range"]["high"] = tmpcidr+"150"
+ opnfvcfg["demo-maas"]["maas"]["node_group_ifaces"][y]["dynamic_range"]["low"] = tmpcidr+"151"
+ opnfvcfg["demo-maas"]["maas"]["node_group_ifaces"][y]["dynamic_range"]["high"] = tmpcidr+"200"
+ 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')
+ if brtype == "public":
+ opnfvcfg["demo-maas"]["juju-bootstrap"]["interfaces"].append("bridge="+brname+",model=virtio")
+ z=z+1
+ if brtype == "external":
+ ipaddress = getFromDict(labcfg, ["labconfig","bridges",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")
+ z=z+1
+ y=y+1
+
- value = getFromDict(doc, ["nodes",c, "name"])
- setInDict(doc1, ["demo-maas", "maas", "nodes", c, "name"], value)
+ c=c+1
- value = getFromDict(doc, ["nodes",c, "tags"])
- setInDict(doc1, ["demo-maas", "maas", "nodes", c, "tags"], value)
+setInDict(opnfvcfg, ["demo-maas", "maas", "network_config"], ethbrAdm)
- value = getFromDict(doc, ["nodes",c, "arch"])
- if value == "x86_64":
- value="amd64/generic"
- setInDict(doc1, ["demo-maas", "maas", "nodes", c, "architecture"], value)
+# lets modify the maas general settings:
+value = get_ip_address(ethbrAdmin)
+value = "qemu+ssh://"+getpass.getuser()+"@"+value+"/system"
+setInDict(opnfvcfg, ["demo-maas", "maas", "virsh", "uri"], value)
- value = getFromDict(doc, ["nodes",c, "mac_address"])
- setInDict(doc1, ["demo-maas", "maas", "nodes", c, "mac_addresses"], value)
+#lets insert the node details here:
+c=0
- value = getFromDict(doc, ["nodes",c, "power", "type"])
- setInDict(doc1, ["demo-maas", "maas", "nodes", c, "power", "type"], value)
+while c < len(labcfg["labconfig"]["nodes"]):
+ # setup value of name and tags accordigly
+ value = getFromDict(labcfg, ["labconfig","nodes",c, "type"])
+ namevalue = "node" + str(c+1) + "-" + value
+ opnfvcfg["demo-maas"]["maas"]["nodes"][c]["name"] = namevalue
+ opnfvcfg["demo-maas"]["maas"]["nodes"][c]["tags"] = value
+ # setup value of architecture
+ value = getFromDict(labcfg, ["labconfig","nodes",c, "architecture"])
+ if value == "x86_64":
+ value="amd64/generic"
+ opnfvcfg["demo-maas"]["maas"]["nodes"][c]["architecture"] = value
+
+ # setup mac_addresses
+ value = getFromDict(labcfg, ["labconfig","nodes",c, "pxe_mac_address"])
+ opnfvcfg["demo-maas"]["maas"]["nodes"][c]["mac_addresses"] = value
+
+ value = getFromDict(labcfg, ["labconfig","nodes",c, "power", "type"])
+ opnfvcfg["demo-maas"]["maas"]["nodes"][c]["power"]["type"] = value
if value == "wakeonlan":
- value = getFromDict(doc, ["nodes",c, "power", "mac_address"])
- setInDict(doc1, ["demo-maas", "maas", "nodes", c, "power", "mac_address"], value)
+ value = getFromDict(labcfg, ["labconfig","nodes",c, "power", "mac_address"])
+ opnfvcfg["demo-maas"]["maas"]["nodes"][c]["power"]["mac_address"] = value
if value == "ipmi":
- value = getFromDict(doc, ["nodes",c, "power", "address"])
- setInDict(doc1, ["demo-maas", "maas", "nodes", c, "power", "address"], value)
-
- value = getFromDict(doc, ["nodes",c, "power", "user"])
- setInDict(doc1, ["demo-maas", "maas", "nodes", c, "power", "user"], value)
+ value = getFromDict(labcfg, ["labconfig","nodes",c, "power", "address"])
+ opnfvcfg["demo-maas"]["maas"]["nodes"][c]["power"]["address"] = value
+ value = getFromDict(labcfg, ["labconfig","nodes",c, "power", "user"])
+ opnfvcfg["demo-maas"]["maas"]["nodes"][c]["power"]["user"] = value
+ value = getFromDict(labcfg, ["labconfig","nodes",c, "power", "pass"])
+ opnfvcfg["demo-maas"]["maas"]["nodes"][c]["power"]["pass"] = value
+ opnfvcfg["demo-maas"]["maas"]["nodes"][c]["power"]["driver"] = "LAN_2_0"
- value = getFromDict(doc, ["nodes",c, "power", "pass"])
- setInDict(doc1, ["demo-maas", "maas", "nodes", c, "power", "pass"], value)
c=c+1
-with open('deployment.yaml', 'w') as ft:
- yaml.dump(doc1, ft)
+with open('deployment.yaml', 'w') as opnfvf:
+ yaml.dump(opnfvcfg, opnfvf, default_flow_style=False)
diff --git a/ci/maas/deployment.yaml b/ci/maas/deployment.yaml
new file mode 100755
index 00000000..82f49b81
--- /dev/null
+++ b/ci/maas/deployment.yaml
@@ -0,0 +1,94 @@
+demo-maas:
+ juju-bootstrap:
+ arch: amd64
+ disk_size: 120G
+ interfaces:
+ - bridge=brAdm,model=virtio
+ memory: 4096
+ name: bootstrap
+ pool: default
+ vcpus: 4
+ maas:
+ apt_http_proxy: null
+ apt_sources:
+ - ppa:maas/stable
+ - ppa:juju/stable
+ arch: amd64
+ boot_source:
+ keyring_filename: /usr/share/keyrings/ubuntu-cloudimage-keyring.gpg
+ selections:
+ 1:
+ arches: amd64
+ labels: release
+ os: ubuntu
+ release: xenial
+ subarches: '*'
+ url: http://maas.ubuntu.com/images/ephemeral-v2/releases/
+ disk_size: 160G
+ interfaces:
+ - bridge=brAdm,model=virtio
+ ip_address:
+ memory: 4096
+ name: opnfv-intelpod6
+ network_config:
+ node_group_ifaces:
+ - broadcast_ip:
+ dynamic_range:
+ high:
+ low:
+ static_range:
+ high:
+ low:
+ - broadcast_ip:
+ dynamic_range:
+ high:
+ low:
+ static_range:
+ high:
+ low:
+ - broadcast_ip:
+ dynamic_range:
+ high:
+ low:
+ static_range:
+ high:
+ low:
+ nodes:
+ - architecture:
+ mac_addresses:
+ -
+ power:
+ address:
+ - architecture:
+ mac_addresses:
+ -
+ power:
+ address:
+ - architecture:
+ mac_addresses:
+ -
+ power:
+ address:
+ - architecture:
+ mac_addresses:
+ -
+ power:
+ address:
+ - architecture:
+ mac_addresses:
+ -
+ power:
+ address:
+ password: ubuntu
+ pool: default
+ release: trusty
+ settings:
+ maas_name:
+ main_archive: http://us.archive.ubuntu.com/ubuntu
+ upstream_dns:
+ user: ubuntu
+ vcpus: 4
+ virsh:
+ rsa_priv_key: /home/ubuntu/.ssh/id_rsa
+ rsa_pub_key: /home/ubuntu/.ssh/id_rsa.pub
+ uri:
diff --git a/labconfig/intel/pod5/deployment.yaml b/labconfig/intel/pod5/deployment.yaml
new file mode 100755
index 00000000..be8a7732
--- /dev/null
+++ b/labconfig/intel/pod5/deployment.yaml
@@ -0,0 +1,257 @@
+# This file defines the deployment for the MAAS environment which is to be
+# deployed and automated.
+demo-maas:
+ maas:
+ # Defines the general setup for the MAAS environment, including the
+ # username and password for the host as well as the MAAS server.
+ user: ubuntu
+ password: ubuntu
+
+ # Contains the virtual machine parameters for creating the MAAS virtual
+ # server. Here you can configure the name of the virsh domain, the
+ # parameters for how the network is attached.
+ name: opnfv-maas-intel
+ interfaces: ['bridge=brAdm,model=virtio', 'bridge=brData,model=virtio', 'bridge=brPublic,model=virtio', 'bridge=brExt,model=virtio']
+ memory: 4096
+ vcpus: 4
+ arch: amd64
+ pool: default
+ disk_size: 160G
+ release: trusty
+
+ # Apt http proxy setting(s)
+ apt_http_proxy:
+
+ apt_sources:
+ - ppa:maas/stable
+ - ppa:juju/stable
+
+ boot_source:
+ url: http://maas.ubuntu.com/images/ephemeral-v2/daily/
+ keyring_filename: /usr/share/keyrings/ubuntu-cloudimage-keyring.gpg
+ exclusive: true
+ selections:
+ 1:
+ release: trusty
+ os: ubuntu
+ arches: amd64
+ subarches: "*"
+ labels: daily
+ 2:
+ release: xenial
+ os: ubuntu
+ arches: amd64
+ subarches: "*"
+ labels: daily
+
+ # Virsh power settings
+ # Specifies the uri and keys to use for virsh power control of the
+ # juju virtual machine. If the uri is omitted, the value for the
+ # --remote is used. If no power settings are desired, then do not
+ # supply the virsh block.
+ virsh:
+ rsa_priv_key: /home/ubuntu/.ssh/id_rsa
+ rsa_pub_key: /home/ubuntu/.ssh/id_rsa.pub
+ uri: qemu+ssh://jenkins@10.5.1.1/system
+
+ # Defines the IP Address that the configuration script will use to
+ # to access the MAAS controller via SSH.
+ ip_address: 10.5.1.2
+
+ # This section allows the user to set a series of options on the
+ # MAAS server itself. The list of config options can be found in
+ # the upstream MAAS documentation:
+ # - http://maas.ubuntu.com/docs/api.html#maas-server
+ settings:
+ main_archive: http://us.archive.ubuntu.com/ubuntu
+ upstream_dns: 8.8.8.8
+ maas_name: intelpod5
+ # kernel_opts: "console=tty0 console=ttyS1,115200n8"
+ # ntp_server: ntp.ubuntu.com
+
+ # This section is used to define the networking parameters for when
+ # the node first comes up. It is fed into the meta-data cloud-init
+ # configuration and is used to configure the networking piece of the
+ # service. The contents of this section are written directly to the
+ # /etc/network/interfaces file.
+ #
+ # Please note, this is slightly different than the
+ # node-group-interfaces section below. This will configure the
+ # machine's networking params, and the node-group-interfaces will
+ # configure the maas node-group interfaces which is used for
+ # controlling the dhcp, dns, etc.
+ network_config: |
+ auto lo
+ iface lo inet loopback
+
+ auto eth0
+ iface eth0 inet static
+ address 10.5.1.2
+ netmask 255.255.255.0
+ network 10.5.1.0
+ broadcast 10.5.1.255
+ gateway 10.5.1.1
+ dns-nameservers 8.8.8.8 10.5.1.2 127.0.0.1
+
+ auto eth1
+ iface eth1 inet static
+ address 10.5.12.2
+ netmask 255.255.255.0
+
+ auto eth2
+ iface eth2 inet static
+ address 10.5.15.2
+ netmask 255.255.255.0
+
+ auto eth3
+ iface eth3 inet static
+ address 10.2.117.92
+ netmask 255.255.255.0
+ #auto lo
+ #iface lo inet loopback
+
+ #auto eth0
+ #iface eth0 inet static
+ # address 192.168.122.2
+ # netmask 255.255.248.0
+ # network 192.168.122.0
+ # broadcast 192.168.122.255
+ # gateway 192.168.122.1
+ # dns-nameservers 192.168.122.1 127.0.0.1
+
+ # The node-group-interfaces section is used to configure the MAAS
+ # network interfaces. Basic configuration is supported, such as which
+ # device should be bound, the range of IP addresses, etc.
+ # Note: this may contain the special identifiers:
+ # ${maas_net} - the first 3 octets of the ipv4 address
+ # ${maas_ip} - the ip address of the MAAS controller
+ node_group_ifaces:
+ - device: eth0
+ ip: 10.5.1.2
+ subnet_mask: 255.255.255.0
+ broadcast_ip: 10.5.1.255
+ router_ip: 10.5.1.1
+ static_range:
+ low: 10.5.1.50
+ high: 10.5.1.80
+ dynamic_range:
+ low: 10.5.1.81
+ high: 10.5.1.250
+ - device: eth1
+ ip: 10.5.12.2
+ subnet_mask: 255.255.255.0
+ broadcast_ip: 10.5.12.255
+ management: 1
+ static_range:
+ low: 10.5.12.20
+ high: 10.5.12.150
+ dynamic_range:
+ low: 10.5.12.151
+ high: 10.5.12.200
+ - device: eth2
+ ip: 10.5.15.2
+ subnet_mask: 255.255.255.0
+ broadcast_ip: 10.5.15.255
+ router_ip: 10.5.15.254
+ management: 1
+ static_range:
+ low: 10.5.15.20
+ high: 10.5.15.150
+ dynamic_range:
+ low: 10.5.15.151
+ high: 10.5.15.200
+
+ # Defines the physical nodes which are added to the MAAS cluster
+ # controller upon startup of the node.
+ nodes:
+ - name: node1-control
+ tags: control
+ architecture: amd64/generic
+ mac_addresses:
+ - "00:1e:67:cf:bb:54"
+ power:
+ type: ipmi
+ address: 10.2.117.81
+ user: root
+ pass: root
+ driver: LAN_2_0
+# sticky_ip_address:
+# mac_address: "38:63:bb:43:b8:9c"
+# requested_address: 192.168.122.5
+#
+ - name: node2-control
+ tags: control
+ architecture: amd64/generic
+ mac_addresses:
+ - "00:1e:67:cf:b8:93"
+ power:
+ type: ipmi
+ address: 10.2.117.82
+ user: root
+ pass: root
+ driver: LAN_2_0
+
+ - name: node3-control
+ tags: control
+ architecture: amd64/generic
+ mac_addresses:
+ - "00:1e:67:e0:08:7f"
+ power:
+ type: ipmi
+ address: 10.2.117.83
+ user: root
+ pass: root
+ driver: LAN_2_0
+# sticky_ip_address:
+# mac_address: "38:63:bb:43:b8:9c"
+# requested_address: 192.168.122.5
+
+ - name: node4-compute
+ tags: compute
+ architecture: amd64/generic
+ mac_addresses:
+ - "00:1e:67:e0:08:b1"
+ power:
+ type: ipmi
+ address: 10.2.117.84
+ user: root
+ pass: root
+ driver: LAN_2_0
+# sticky_ip_address:
+# mac_address: "38:63:bb:43:b8:9c"
+# requested_address: 192.168.122.5
+
+ - name: node5-compute
+ tags: compute
+ architecture: amd64/generic
+ mac_addresses:
+ - "00:1e:67:e0:0a:4b"
+ power:
+ type: ipmi
+ address: 10.2.117.85
+ user: root
+ pass: root
+ driver: LAN_2_0
+# sticky_ip_address:
+# mac_address: "38:63:bb:43:b8:9c"
+# requested_address: 192.168.122.5
+
+# - name: jenkins-slave
+# tags: jenkins-slave
+# architecture: amd64/generic
+# mac_addresses:
+# - "52:54:00:f0:5c:53"
+# power:
+# type: virsh
+# address: qemu+ssh://ubuntu@10.4.1.1/system
+
+ # Contains the virtual machine parameters for creating the Juju bootstrap
+ # node virtual machine
+ juju-bootstrap:
+ name: bootstrap
+ interfaces: ['bridge=brAdm,model=virtio', 'bridge=brPublic,model=virtio', 'bridge=brExt,model=virtio']
+ memory: 4096
+ vcpus: 4
+ arch: amd64
+ pool: default
+ disk_size: 120G
diff --git a/labconfig/intel/pod5/labconfig.yaml b/labconfig/intel/pod5/labconfig.yaml
new file mode 100644
index 00000000..ce1688c6
--- /dev/null
+++ b/labconfig/intel/pod5/labconfig.yaml
@@ -0,0 +1,81 @@
+labconfig:
+ lab_location: intelpod5
+ bridges:
+ - type: admin
+ bridge: brAdm
+ cidr: 10.5.1.0/24
+ gateway: 10.5.1.1
+ - type: data
+ bridge: brData
+ cidr: 10.5.12.0/24
+ gateway:
+ - type: public
+ bridge: brPublic
+ cidr: 10.5.15.0/24
+ gateway: 10.5.15.254
+ - type: external
+ bridge: brExt
+ cidr:
+ gateway:
+ ipaddress: 10.2.117.92
+ labsettings:
+ upstream_dns: 8.8.8.8
+ nodes:
+ - type: control
+ architecture: x86_64
+ pxe_mac_address:
+ - "00:1e:67:d8:ba:46"
+ power:
+ type: ipmi
+ address: 10.2.117.81
+ user: root
+ pass: root
+ - type: control
+ architecture: x86_64
+ pxe_mac_address:
+ - "00:1e:67:e0:0b:72"
+ power:
+ type: ipmi
+ address: 10.2.117.82
+ user: root
+ pass: root
+ - type: control
+ architecture: x86_64
+ pxe_mac_address:
+ - "00:1e:67:e0:08:7f"
+ power:
+ type: ipmi
+ address: 10.2.117.83
+ user: root
+ pass: root
+ - type: compute
+ architecture: x86_64
+ pxe_mac_address:
+ - "00:1e:67:e0:08:b1"
+ power:
+ type: ipmi
+ address: 10.2.117.84
+ user: root
+ pass: root
+ - type: compute
+ architecture: x86_64
+ pxe_mac_address:
+ - "00:1e:67:e0:0a:4b"
+ power:
+ type: ipmi
+ address: 10.2.117.85
+ user: root
+ pass: root
+opnfv:
+ release: c
+ distro: trusty
+ type: nonha
+ openstack: liberty
+ sdncontroller:
+ - type: nosdn
+ storage:
+ - type: ceph
+ disk: /srv/osd
+ floating-ip-range:
+ feature: odl_l2
+ ext-port: eth5
diff --git a/labconfig/intel/pod6/deployment.yaml b/labconfig/intel/pod6/deployment.yaml
new file mode 100755
index 00000000..82f49b81
--- /dev/null
+++ b/labconfig/intel/pod6/deployment.yaml
@@ -0,0 +1,94 @@
+demo-maas:
+ juju-bootstrap:
+ arch: amd64
+ disk_size: 120G
+ interfaces:
+ - bridge=brAdm,model=virtio
+ memory: 4096
+ name: bootstrap
+ pool: default
+ vcpus: 4
+ maas:
+ apt_http_proxy: null
+ apt_sources:
+ - ppa:maas/stable
+ - ppa:juju/stable
+ arch: amd64
+ boot_source:
+ keyring_filename: /usr/share/keyrings/ubuntu-cloudimage-keyring.gpg
+ selections:
+ 1:
+ arches: amd64
+ labels: release
+ os: ubuntu
+ release: xenial
+ subarches: '*'
+ url: http://maas.ubuntu.com/images/ephemeral-v2/releases/
+ disk_size: 160G
+ interfaces:
+ - bridge=brAdm,model=virtio
+ ip_address:
+ memory: 4096
+ name: opnfv-intelpod6
+ network_config:
+ node_group_ifaces:
+ - broadcast_ip:
+ dynamic_range:
+ high:
+ low:
+ static_range:
+ high:
+ low:
+ - broadcast_ip:
+ dynamic_range:
+ high:
+ low:
+ static_range:
+ high:
+ low:
+ - broadcast_ip:
+ dynamic_range:
+ high:
+ low:
+ static_range:
+ high:
+ low:
+ nodes:
+ - architecture:
+ mac_addresses:
+ -
+ power:
+ address:
+ - architecture:
+ mac_addresses:
+ -
+ power:
+ address:
+ - architecture:
+ mac_addresses:
+ -
+ power:
+ address:
+ - architecture:
+ mac_addresses:
+ -
+ power:
+ address:
+ - architecture:
+ mac_addresses:
+ -
+ power:
+ address:
+ password: ubuntu
+ pool: default
+ release: trusty
+ settings:
+ maas_name:
+ main_archive: http://us.archive.ubuntu.com/ubuntu
+ upstream_dns:
+ user: ubuntu
+ vcpus: 4
+ virsh:
+ rsa_priv_key: /home/ubuntu/.ssh/id_rsa
+ rsa_pub_key: /home/ubuntu/.ssh/id_rsa.pub
+ uri:
diff --git a/labconfig/intel/pod6/labconfig.yaml b/labconfig/intel/pod6/labconfig.yaml
new file mode 100644
index 00000000..52775d78
--- /dev/null
+++ b/labconfig/intel/pod6/labconfig.yaml
@@ -0,0 +1,81 @@
+labconfig:
+ lab_location: intelpod6
+ bridges:
+ - type: admin
+ bridge: brAdm
+ cidr: 10.6.1.0/24
+ gateway: 10.6.1.1
+ - type: data
+ bridge: brData
+ cidr: 10.6.12.0/24
+ gateway:
+ - type: public
+ bridge: brPublic
+ cidr: 10.6.15.0/24
+ gateway: 10.6.15.254
+ - type: external
+ bridge: brExt
+ cidr:
+ gateway:
+ ipaddress: 10.2.117.107
+ labsettings:
+ upstream_dns: 8.8.8.8
+ nodes:
+ - type: control
+ architecture: x86_64
+ pxe_mac_address:
+ - "00:1e:67:d8:ba:46"
+ power:
+ type: ipmi
+ address: 10.2.117.96
+ user: root
+ pass: root
+ - type: control
+ architecture: x86_64
+ pxe_mac_address:
+ - "00:1e:67:e0:0b:72"
+ power:
+ type: ipmi
+ address: 10.2.117.97
+ user: root
+ pass: root
+ - type: control
+ architecture: x86_64
+ pxe_mac_address:
+ - "00:1e:67:e0:09:33"
+ power:
+ type: ipmi
+ address: 10.2.117.98
+ user: root
+ pass: root
+ - type: compute
+ architecture: x86_64
+ pxe_mac_address:
+ - "00:1e:67:e0:09:fb"
+ power:
+ type: ipmi
+ address: 10.2.117.99
+ user: root
+ pass: root
+ - type: compute
+ architecture: x86_64
+ pxe_mac_address:
+ - "00:1e:67:cf:bc:f8"
+ power:
+ type: ipmi
+ address: 10.2.117.100
+ user: root
+ pass: root
+opnfv:
+ release: c
+ distro: trusty
+ type: nonha
+ openstack: liberty
+ sdncontroller:
+ - type: nosdn
+ storage:
+ - type: ceph
+ disk: sda,sdb
+ floating-ip-range:
+ feature: odl_l2
+ ext-port: eth0
diff --git a/labconfig/intel/pod9/deployment.yaml b/labconfig/intel/pod9/deployment.yaml
new file mode 100755
index 00000000..dcb2068b
--- /dev/null
+++ b/labconfig/intel/pod9/deployment.yaml
@@ -0,0 +1,230 @@
+# This file defines the deployment for the MAAS environment which is to be
+# deployed and automated.
+demo-maas:
+ maas:
+ # Defines the general setup for the MAAS environment, including the
+ # username and password for the host as well as the MAAS server.
+ user: ubuntu
+ password: ubuntu
+
+ # Contains the virtual machine parameters for creating the MAAS virtual
+ # server. Here you can configure the name of the virsh domain, the
+ # parameters for how the network is attached.
+ name: opnfv-maas-intel
+ interfaces: ['bridge=brAdm,model=virtio', 'bridge=brData,model=virtio', 'bridge=brPublic,model=virtio', 'bridge=brExt,model=virtio']
+ memory: 4096
+ vcpus: 4
+ arch: amd64
+ pool: default
+ disk_size: 160G
+ release: trusty
+
+ # Apt http proxy setting(s)
+ apt_http_proxy:
+
+ apt_sources:
+ - ppa:maas/stable
+ - ppa:juju/stable
+
+ boot_source:
+ url: http://maas.ubuntu.com/images/ephemeral-v2/daily/
+ keyring_filename: /usr/share/keyrings/ubuntu-cloudimage-keyring.gpg
+ exclusive: true
+ selections:
+ 1:
+ release: trusty
+ os: ubuntu
+ arches: amd64
+ subarches: "*"
+ labels: daily
+ 2:
+ release: xenial
+ os: ubuntu
+ arches: amd64
+ subarches: "*"
+ labels: daily
+
+ # Virsh power settings
+ # Specifies the uri and keys to use for virsh power control of the
+ # juju virtual machine. If the uri is omitted, the value for the
+ # --remote is used. If no power settings are desired, then do not
+ # supply the virsh block.
+ virsh:
+ rsa_priv_key: /home/ubuntu/.ssh/id_rsa
+ rsa_pub_key: /home/ubuntu/.ssh/id_rsa.pub
+ uri: qemu+ssh://jenkins@10.9.1.1/system
+
+ # Defines the IP Address that the configuration script will use to
+ # to access the MAAS controller via SSH.
+ ip_address: 10.9.1.2
+
+ # This section allows the user to set a series of options on the
+ # MAAS server itself. The list of config options can be found in
+ # the upstream MAAS documentation:
+ # - http://maas.ubuntu.com/docs/api.html#maas-server
+ settings:
+ main_archive: http://us.archive.ubuntu.com/ubuntu
+ upstream_dns: 8.8.8.8
+ maas_name: intelpod9
+ # kernel_opts: "console=tty0 console=ttyS1,115200n8"
+ # ntp_server: ntp.ubuntu.com
+
+ # This section is used to define the networking parameters for when
+ # the node first comes up. It is fed into the meta-data cloud-init
+ # configuration and is used to configure the networking piece of the
+ # service. The contents of this section are written directly to the
+ # /etc/network/interfaces file.
+ #
+ # Please note, this is slightly different than the
+ # node-group-interfaces section below. This will configure the
+ # machine's networking params, and the node-group-interfaces will
+ # configure the maas node-group interfaces which is used for
+ # controlling the dhcp, dns, etc.
+ network_config: |
+ auto lo
+ iface lo inet loopback
+
+ auto eth0
+ iface eth0 inet static
+ address 10.9.1.2
+ netmask 255.255.255.0
+ network 10.9.1.0
+ broadcast 10.9.1.255
+ gateway 10.9.1.1
+ dns-nameservers 8.8.8.8 10.9.1.2 127.0.0.1
+
+ auto eth1
+ iface eth1 inet static
+ address 10.9.12.2
+ netmask 255.255.255.0
+
+ auto eth2
+ iface eth2 inet static
+ address 10.9.15.2
+ netmask 255.255.255.0
+
+ auto eth3
+ iface eth3 inet static
+ address 10.2.117.143
+ netmask 255.255.255.0
+ #auto lo
+ #iface lo inet loopback
+
+ #auto eth0
+ #iface eth0 inet static
+ # address 192.168.122.2
+ # netmask 255.255.248.0
+ # network 192.168.122.0
+ # broadcast 192.168.122.255
+ # gateway 192.168.122.1
+ # dns-nameservers 192.168.122.1 127.0.0.1
+
+ # The node-group-interfaces section is used to configure the MAAS
+ # network interfaces. Basic configuration is supported, such as which
+ # device should be bound, the range of IP addresses, etc.
+ # Note: this may contain the special identifiers:
+ # ${maas_net} - the first 3 octets of the ipv4 address
+ # ${maas_ip} - the ip address of the MAAS controller
+ node_group_ifaces:
+ - device: eth0
+ ip: 10.9.1.2
+ subnet_mask: 255.255.255.0
+ broadcast_ip: 10.9.1.255
+ router_ip: 10.9.1.1
+ static_range:
+ low: 10.9.1.50
+ high: 10.9.1.80
+ dynamic_range:
+ low: 10.9.1.81
+ high: 10.9.1.250
+ - device: eth1
+ ip: 10.9.12.2
+ subnet_mask: 255.255.255.0
+ broadcast_ip: 10.9.12.255
+ management: 1
+ static_range:
+ low: 10.9.12.20
+ high: 10.9.12.150
+ dynamic_range:
+ low: 10.9.12.151
+ high: 10.9.12.200
+ - device: eth2
+ ip: 10.9.15.2
+ subnet_mask: 255.255.255.0
+ broadcast_ip: 10.9.15.255
+ router_ip: 10.9.15.254
+ management: 1
+ static_range:
+ low: 10.9.15.20
+ high: 10.9.15.150
+ dynamic_range:
+ low: 10.9.15.151
+ high: 10.9.15.200
+
+ # Defines the physical nodes which are added to the MAAS cluster
+ # controller upon startup of the node.
+ nodes:
+ - name: node1-compute
+ tags: compute
+ architecture: amd64/generic
+ mac_addresses:
+ - "00:1E:67:D4:30:38"
+ power:
+ type: ipmi
+ address: 10.2.117.142
+ user: root
+ pass: root
+ driver: LAN_2_0
+# sticky_ip_address:
+# mac_address: "38:63:bb:43:b8:9c"
+# requested_address: 192.168.122.5
+
+ - name: node2-compute
+ tags: compute
+ architecture: amd64/generic
+ mac_addresses:
+ - "00:1E:67:D4:33:A3"
+ power:
+ type: ipmi
+ address: 10.2.117.144
+ user: root
+ pass: root
+ driver: LAN_2_0
+# sticky_ip_address:
+# mac_address: "38:63:bb:43:b8:9c"
+# requested_address: 192.168.122.5
+
+ - name: node3-control
+ tags: control
+ architecture: amd64/generic
+ mac_addresses:
+ - "00:1E:67:D4:2F:BA"
+ power:
+ type: ipmi
+ address: 10.2.117.146
+ user: root
+ pass: root
+ driver: LAN_2_0
+# sticky_ip_address:
+# mac_address: "38:63:bb:43:b8:9c"
+# requested_address: 192.168.122.5
+
+# - name: jenkins-slave
+# tags: jenkins-slave
+# architecture: amd64/generic
+# mac_addresses:
+# - "52:54:00:f0:5c:53"
+# power:
+# type: virsh
+# address: qemu+ssh://ubuntu@10.4.1.1/system
+
+ # Contains the virtual machine parameters for creating the Juju bootstrap
+ # node virtual machine
+ juju-bootstrap:
+ name: bootstrap
+ interfaces: ['bridge=brAdm,model=virtio', 'bridge=brPublic,model=virtio', 'bridge=brExt,model=virtio']
+ memory: 4096
+ vcpus: 4
+ arch: amd64
+ pool: default
+ disk_size: 120G
diff --git a/labconfig/intel/pod9/labconfig.yaml b/labconfig/intel/pod9/labconfig.yaml
new file mode 100644
index 00000000..2f0b72e2
--- /dev/null
+++ b/labconfig/intel/pod9/labconfig.yaml
@@ -0,0 +1,63 @@
+labconfig:
+ lab_location: intelpod9
+ bridges:
+ - type: admin
+ bridge: brAdm
+ cidr: 10.9.1.0/24
+ gateway: 10.9.1.1
+ - type: data
+ bridge: brData
+ cidr: 10.9.12.0/24
+ gateway:
+ - type: public
+ bridge: brPublic
+ cidr: 10.9.15.0/24
+ gateway: 10.9.15.254
+ - type: external
+ bridge: brExt
+ cidr:
+ gateway:
+ ipaddress: 10.2.117.143
+ labsettings:
+ upstream_dns: 8.8.8.8
+ nodes:
+ - type: control
+ architecture: x86_64
+ pxe_mac_address:
+ - "00:1E:67:D4:30:38"
+ power:
+ type: ipmi
+ address: 10.2.117.142
+ user: root
+ pass: root
+ - type: compute
+ architecture: x86_64
+ pxe_mac_address:
+ - "00:1E:67:D4:33:A3"
+ power:
+ type: ipmi
+ address: 10.2.117.144
+ user: root
+ pass: root
+ - type: compute
+ architecture: x86_64
+ pxe_mac_address:
+ - "00:1E:67:D4:2F:BA"
+ power:
+ type: ipmi
+ address: 10.2.117.146
+ user: root
+ pass: root
+opnfv:
+ release: c
+ distro: trusty
+ type: nonha
+ openstack: liberty
+ sdncontroller:
+ - type: nosdn
+ storage:
+ - type: ceph
+ disk: sda,sdb
+ floating-ip-range:
+ feature: odl_l2
+ ext-port: eth0
diff --git a/labconfig/labconfig.yaml b/labconfig/labconfig.yaml
new file mode 100644
index 00000000..52775d78
--- /dev/null
+++ b/labconfig/labconfig.yaml
@@ -0,0 +1,81 @@
+labconfig:
+ lab_location: intelpod6
+ bridges:
+ - type: admin
+ bridge: brAdm
+ cidr: 10.6.1.0/24
+ gateway: 10.6.1.1
+ - type: data
+ bridge: brData
+ cidr: 10.6.12.0/24
+ gateway:
+ - type: public
+ bridge: brPublic
+ cidr: 10.6.15.0/24
+ gateway: 10.6.15.254
+ - type: external
+ bridge: brExt
+ cidr:
+ gateway:
+ ipaddress: 10.2.117.107
+ labsettings:
+ upstream_dns: 8.8.8.8
+ nodes:
+ - type: control
+ architecture: x86_64
+ pxe_mac_address:
+ - "00:1e:67:d8:ba:46"
+ power:
+ type: ipmi
+ address: 10.2.117.96
+ user: root
+ pass: root
+ - type: control
+ architecture: x86_64
+ pxe_mac_address:
+ - "00:1e:67:e0:0b:72"
+ power:
+ type: ipmi
+ address: 10.2.117.97
+ user: root
+ pass: root
+ - type: control
+ architecture: x86_64
+ pxe_mac_address:
+ - "00:1e:67:e0:09:33"
+ power:
+ type: ipmi
+ address: 10.2.117.98
+ user: root
+ pass: root
+ - type: compute
+ architecture: x86_64
+ pxe_mac_address:
+ - "00:1e:67:e0:09:fb"
+ power:
+ type: ipmi
+ address: 10.2.117.99
+ user: root
+ pass: root
+ - type: compute
+ architecture: x86_64
+ pxe_mac_address:
+ - "00:1e:67:cf:bc:f8"
+ power:
+ type: ipmi
+ address: 10.2.117.100
+ user: root
+ pass: root
+opnfv:
+ release: c
+ distro: trusty
+ type: nonha
+ openstack: liberty
+ sdncontroller:
+ - type: nosdn
+ storage:
+ - type: ceph
+ disk: sda,sdb
+ floating-ip-range:
+ feature: odl_l2
+ ext-port: eth0