# 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