# 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-juniper
        interfaces: ['bridge=brAdm,model=virtio', 'bridge=brPublic,model=virtio']
        memory: 4096
        vcpus: 1
        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://ubuntu@172.16.50.51/system

        # Defines the IP Address that the configuration script will use to
        # to access the MAAS controller via SSH.
        ip_address: 172.16.50.50

        # 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: juniperpod1
            # 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 172.16.50.50
            netmask 255.255.255.0
            network 172.16.50.0
            broadcast 172.16.50.255
            dns-nameservers 8.8.8.8 127.0.0.1

            auto eth1
            iface eth1 inet static
            address 10.10.15.50
            netmask 255.255.240.0
            network 10.10.0.0
            broadcast 10.10.15.255
            gateway 10.10.10.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: 172.16.50.50
              subnet_mask: 255.255.255.0
              broadcast_ip: 172.16.50.255
              router_ip: 172.16.50.50
              static_range:
                  low: 172.16.50.60
                  high: 172.16.50.90
              dynamic_range:
                  low: 172.16.50.91
                  high: 172.16.50.254

        # Defines the physical nodes which are added to the MAAS cluster
        # controller upon startup of the node.
        nodes:
            - name: 2-R4N4B2-control
              tags: control
              architecture: amd64/generic
              mac_addresses:
                  - "0c:c4:7a:16:2a:70"
              power:
                  type: ipmi
                  address: 10.10.7.92
                  user: ADMIN
                  pass: ADMIN
                  driver: LAN_2_0

            - name: 3-R4N3B1-compute
              tags: compute
              architecture: amd64/generic
              mac_addresses:
                  - "0c:c4:7a:53:57:c2"
              power:
                  type: ipmi
                  address: 10.10.7.84
                  user: ADMIN
                  pass: ADMIN
                  driver: LAN_2_0

            - name: 4-R4N4B4-control
              tags: control
              architecture: amd64/generic
              mac_addresses:
                  - "0c:c4:7a:16:22:9c"
              power:
                  type: ipmi
                  address: 10.10.7.95
                  user: ADMIN
                  pass: ADMIN
                  driver: LAN_2_0

            - name: 5-R4N3B2-compute
              tags: compute
              architecture: amd64/generic
              mac_addresses:
                  - "0c:c4:7a:53:57:16"
              power:
                  type: ipmi
                  address: 10.10.7.85
                  user: ADMIN
                  pass: ADMIN
                  driver: LAN_2_0

            - name: 6-R4N4B3-control
              tags: control
              architecture: amd64/generic
              mac_addresses:
                  - "0c:c4:7a:16:2a:0a"
              power:
                  type: ipmi
                  address: 10.10.7.93
                  user: ADMIN
                  pass: ADMIN
                  driver: LAN_2_0

    # 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: 2
        arch: amd64
        pool: default
        disk_size: 120G