# This file defines the deployment for the MAAS environment which is to be
# deployed and automated.
demo-maas:
    # Contains the virtual machine parameters for creating the Juju bootstrap
    # node virtual machine
    juju-bootstrap:
        name: bootstrap
        interfaces: ['bridge=virbr0,model=virtio']
        memory: 2048
        vcpus: 2
        arch: amd64
        pool: default
        disk_size: 20G
        sticky_ip_address:
            requested_address: 192.168.122.5

    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
        interfaces: ['bridge=virbr0,model=virtio']
        memory: 4096
        vcpus: 2
        arch: amd64
        pool: default
        disk_size: 60G

        # Apt http proxy setting(s)
        #apt_http_proxy:

        # Package sources. These will be used on the MAAS controller.
        apt_sources:
          - ppa:maas/stable
          - 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@192.168.122.1/system

        # Defines the IP Address that the configuration script will use to
        # to access the MAAS controller via SSH.
        ip_address: 192.168.122.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: 114.114.114.114
            maas_name: automaas
            # kernel_opts: "console=tty0 console=ttyS1,115200n8"
            ntp_server: 202.120.2.101

        # 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 192.168.122.2
              netmask 255.255.255.0
              network 192.168.122.0
              broadcast 192.168.122.255
              gateway 192.168.122.1
              dns-nameservers 114.114.114.114 127.0.0.1

        # See https://maas.ubuntu.com/docs/maascli.html#node-groups for
        # description and full list of supported options.
        # NOTE: interfaces are added using the node_group_interfaces section
        #       and only one node_group can be created by this bundle.
        #       Additional node groups can be added post deployment.
        #node_group:
        #    # This is the cluster DNS name.
        #    name: maas

        # 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: 192.168.122.2
              subnet_mask: 255.255.255.0
              broadcast_ip: 192.168.122.255
              router_ip: 192.168.122.1
              static_range:
                  low: 192.168.122.51
                  high: 192.168.122.60
              dynamic_range:
                  low: 192.168.122.5
                  high: 192.168.122.50

        # Physical nodes to be added to the MAAS cluster. Nodes will be
        # configured, commissioned and put into the Ready state so
        # they are ready to be deployed to.
        #nodes:
        #    - name: node1
        #      tags: api
        #      architecture: amd64/generic
        #      mac_addresses:
        #          - "38:63:bb:43:b8:9c"
        #      power:
        #          type: ipmi
        #          address: 10.0.1.1
        #          user: maas
        #          pass: passw0rd
        #          driver: LAN_2_0
        #      sticky_ip_address:
        #          mac_address: "38:63:bb:43:b8:9c"
        #          requested_address: 192.168.122.6
