Integrate JOID to CENGN Lynx Lab 95/7795/1
authorDave Urschatz <dave.urschatz@cengn.ca>
Fri, 15 Jan 2016 02:31:52 +0000 (21:31 -0500)
committerNarinder Gupta <narinder.gupta@canonical.com>
Fri, 22 Jan 2016 23:49:02 +0000 (23:49 +0000)
The intent of this commit is to add the CENGN pod1 configuration
data as well as required changes to deployment scripts to
consume the configuration.

JIRA: JOID-45

Change-Id: Ib517898d48cafbb26f6f39d8930e38fb6e9112c8
Signed-off-by: Dave Urschatz <dave.urschatz@cengn.ca>
(cherry picked from commit b6ed3294f42593bc3bc45414965ba3e62b53b903)

ci/01-deploybundle.sh
ci/02-maasdeploy.sh
ci/maas/cengn_lynx/pod1/deployment.yaml [new file with mode: 0755]
ci/maas/cengn_lynx/pod1/environments.yaml [new file with mode: 0644]

index 9452d7a..8164c7e 100755 (executable)
@@ -50,6 +50,10 @@ case "$3" in
         # Choose the external port to go out from gateway to use.
          sed -i -- 's/#        "ext-port": "eth1"/        "ext-port": "eth1"/g' ./bundles.yaml
         ;;
+     'cengnlynxpod1' )
+         sed -i -- 's/10.4.1.1/10.120.0.1/g' ./bundles.yaml
+         sed -i -- 's/#        "ext-port": "eth1"/        "ext-port": "eth2.1202"/g' ./bundles.yaml
+        ;;
      'default' )
          sed -i -- 's/10.4.1.1/192.168.122.1/g' ./bundles.yaml
          sed -i -- 's/#        "ext-port": "eth1"/        "ext-port": "eth1"/g' ./bundles.yaml
index fc42574..cc34e34 100755 (executable)
@@ -20,6 +20,9 @@ case "$1" in
     'juniperpod1' )
         cp maas/juniper/pod1/deployment.yaml ./deployment.yaml
         ;;
+    'cengnlynxpod1' )
+        cp maas/cengn_lynx/pod1/deployment.yaml ./deployment.yaml
+        ;;
     * )
         virtinstall=1
         ./cleanvm.sh
@@ -194,6 +197,15 @@ case "$1" in
         ;;
     'juniperpod1' )
         ;;
+    'cengnlynxpod1' )
+        maas refresh
+        crvlanupdsubnet vlan1201 1 "DataNetwork" 1201 2 || true
+        crvlanupdsubnet vlan1202 2 "PublicNetwork" 1202 3 || true
+        crnodevlanint $vlan1201 || true
+        crnodevlanint $vlan1202 || true
+        enableautomode eth2.1201 AUTO "172.16.121.3/24" compute || true
+        enableautomode eth2.1201 AUTO "172.16.121.3/24" control || true
+        ;;
 esac
 
 echo " .... MAAS deployment finished successfully ...."
diff --git a/ci/maas/cengn_lynx/pod1/deployment.yaml b/ci/maas/cengn_lynx/pod1/deployment.yaml
new file mode 100755 (executable)
index 0000000..0652dcc
--- /dev/null
@@ -0,0 +1,211 @@
+# This file defines the deployment for the MAAS environment which is to be
+# deployed and automated.
+cengn-lynx-pod1:
+    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-cengn-lynx
+        # TODO interfaces: ['bridge=brAdm,model=virtio','bridge=brData,model=virtio','bridge=brPublic,model=virtio']
+        interfaces: ['bridge=brAdm,model=virtio','bridge=brPublic,model=virtio']
+        memory: 4096
+        vcpus: 4
+        arch: amd64
+        pool: default
+        disk_size: 160G
+
+        # Apt http proxy setting(s)
+        apt_http_proxy:
+
+        apt_sources:
+          - ppa:maas/next
+          - ppa:juju/stable
+
+        # 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://ubuntu@10.120.0.2/system
+
+        # Defines the IP Address that the configuration script will use to
+        # to access the MAAS controller via SSH.
+        ip_address: 10.120.0.3
+
+        # 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:
+            upstream_dns: 192.168.60.1
+            maas_name: cengnlynxpod1
+            # 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.120.0.3
+            netmask 255.255.255.0
+            network 10.120.0.0
+            broadcast 10.120.0.255
+            gateway 10.120.0.254
+            dns-nameservers 192.168.60.1 8.8.8.8 127.0.0.1
+
+            auto eth1
+            iface eth1 inet static
+            address 172.16.121.3
+            netmask 255.255.255.0
+            
+            auto eth2
+            iface eth2 inet static
+            address 172.16.122.3
+            netmask 255.255.255.0
+            
+
+        # 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.120.0.3
+              subnet_mask: 255.255.255.0
+              broadcast_ip: 10.120.0.255
+              router_ip: 10.120.0.254
+              static_range:
+                  low: 10.120.0.20
+                  high: 10.120.0.100
+              dynamic_range:
+                  low: 10.120.0.101
+                  high: 10.120.0.200
+            - device: eth1
+              ip: 172.16.121.3
+              subnet_mask: 255.255.255.0
+              broadcast_ip: 172.16.121.255
+              management: 1
+              static_range:
+                low: 172.16.121.20
+                high: 172.16.121.100
+              dynamic_range:
+                low: 172.16.121.101
+                high: 172.16.121.200
+            - device: eth2
+              ip: 172.16.122.3
+              subnet_mask: 255.255.255.0
+              broadcast_ip: 172.16.122.255
+              management: 1
+              static_range:
+                low: 172.16.122.20
+                high: 172.16.122.100
+              dynamic_range:
+                low: 172.16.122.101
+                high: 172.16.122.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:
+              - "0c:c4:7a:3a:c5:b6"
+            power:
+                type: ipmi
+                address: 192.168.42.72
+                user: root
+                pass: root
+                driver: LAN_2_0
+
+          - name: node2-compute
+            tags: compute
+            architecture: amd64/generic
+            mac_addresses:
+              - "0c:c4:7a:3a:b2:ae"
+            power:
+                type: ipmi
+                address: 192.168.42.40
+                user: root
+                pass: root
+                driver: LAN_2_0
+
+          - name: node3-control
+            tags: control
+            architecture: amd64/generic
+            mac_addresses:
+              - "0c:c4:7a:1f:6f:c0"
+            power:
+                type: ipmi
+                address: 192.168.42.33
+                user: root
+                pass: root
+                driver: LAN_2_0
+
+          - name: node4-control
+            tags: control
+            architecture: amd64/generic
+            mac_addresses:
+              - "0c:c4:7a:31:9d:bc"
+            power:
+                type: ipmi
+                address: 192.168.42.6
+                user: root
+                pass: root
+                driver: LAN_2_0
+
+          - name: node5-control
+            tags: control
+            architecture: amd64/generic
+            mac_addresses:
+               - "00:25:90:fd:2e:48"
+            power:
+                 type: ipmi
+                 address: 192.168.42.35
+                 user: root
+                 pass: root
+                 driver: LAN_2_0
+
+
+#            - 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']
+        memory: 4096
+        vcpus: 4
+        arch: amd64
+        pool: default
+        disk_size: 120G
diff --git a/ci/maas/cengn_lynx/pod1/environments.yaml b/ci/maas/cengn_lynx/pod1/environments.yaml
new file mode 100644 (file)
index 0000000..e1b1869
--- /dev/null
@@ -0,0 +1,40 @@
+default: cengn-lynx-pod1
+
+environments:
+
+    # https://juju.ubuntu.com/docs/config-maas.html
+    cengn-lynx-pod1:
+        type: maas
+
+        # maas-server specifies the location of the MAAS server. It must
+        # specify the base path.
+        #
+        maas-server: 'http://10.120.0.3:80/MAAS'
+
+        # maas-oauth holds the OAuth credentials from MAAS.
+        #
+        maas-oauth: '2RqvWSuUgT6EM9JDZT:QDMascKSWm67p92D6s:VZBhsHPUJs9TD4VPHqTzLrTqT3zPGya4'
+
+        # maas-server bootstrap ssh connection options
+        #
+
+        # bootstrap-timeout time to wait contacting a state server, in seconds.
+        bootstrap-timeout: 1800
+
+        # Whether or not to refresh the list of available updates for an
+        # OS. The default option of true is recommended for use in
+        # production systems, but disabling this can speed up local
+        # deployments for development or testing.
+        #
+        enable-os-refresh-update: false
+
+        # Whether or not to perform OS upgrades when machines are
+        # provisioned. The default option of true is recommended for use
+        # in production systems, but disabling this can speed up local
+        # deployments for development or testing.
+        #
+        enable-os-upgrade: false   
+   
+   
+        admin-secret: admin
+        default-series: trusty