# 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']
        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.4.1.1/system

        # Defines the IP Address that the configuration script will use to
        # to access the MAAS controller via SSH.
        ip_address: 10.4.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: 10.4.0.2
            maas_name: intelpod6
            # 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.4.1.2
            netmask 255.255.248.0
            network 10.4.0.0
            broadcast 10.4.7.255
            gateway 10.4.0.1
            dns-nameservers 10.4.0.2 127.0.0.1

            auto eth1
            iface eth1 inet static
            address 10.4.9.2
            netmask 255.255.248.0

            auto eth2
            iface eth2 inet static
            address 10.2.66.3
            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.4.1.2
              subnet_mask: 255.255.248.0
              broadcast_ip: 10.4.7.255
              router_ip: 10.4.0.1
              static_range:
                  low: 10.4.2.20
                  high: 10.4.2.254
              dynamic_range:
                  low: 10.4.1.50
                  high: 10.4.1.254
            - device: eth1
              ip: 10.4.9.2
              subnet_mask: 255.255.255.0
              broadcast_ip: 10.4.9.255
              management: 1
              static_range:
                  low: 10.4.9.20
                  high: 10.4.9.150
              dynamic_range:
                  low: 10.4.9.151
                  high: 10.4.9.200
            - device: eth2
              ip: 10.2.66.3
              subnet_mask: 255.255.255.0
              broadcast_ip: 10.2.66.255
              management: 1
              static_range:
                  low: 10.2.66.20
                  high: 10.2.66.150
              dynamic_range:
                  low: 10.2.66.151
                  high: 10.2.66.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:d8:ba:45"
              power:
                  type: ipmi
                  address: 10.4.7.1
                  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:e0:0b:71"
              power:
                  type: ipmi
                  address: 10.4.7.2
                  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:e0:09:32"
              power:
                  type: ipmi
                  address: 10.4.7.3
                  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:09:fa"
              power:
                  type: ipmi
                  address: 10.4.7.4
                  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:cf:bc:f7"
              power:
                  type: ipmi
                  address: 10.4.7.5
                  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']
        memory: 4096
        vcpus: 4
        arch: amd64
        pool: default
        disk_size: 120G