# Set the repository suite, one of the: 'nightly', 'testing', 'stable', or any other required
{% set REPOSITORY_SUITE = os_env('REPOSITORY_SUITE', 'stable') %}

{% import 'virtual-mcp11-k8s-calico/underlay--meta-data.yaml' as CLOUDINIT_META_DATA with context %}
{% import 'virtual-mcp11-k8s-calico/underlay--user-data-cfg01.yaml' as CLOUDINIT_USER_DATA_CFG01 with context %}
{% import 'virtual-mcp11-k8s-calico/underlay--user-data1604.yaml' as CLOUDINIT_USER_DATA_1604 with context %}

---
aliases:
 - &interface_model {{ os_env('INTERFACE_MODEL', 'virtio') }}
 - &cloudinit_meta_data {{ CLOUDINIT_META_DATA }}
 - &cloudinit_user_data_cfg01 {{ CLOUDINIT_USER_DATA_CFG01 }}
 - &cloudinit_user_data_1604 {{ CLOUDINIT_USER_DATA_1604 }}

{% set DOMAIN_NAME = os_env('LAB_CONFIG_NAME', 'virtual-mcp11-k8s-calico.local') + '.local' %}
{% set HOSTNAME_CFG01 = os_env('HOSTNAME_CFG01', 'cfg01.' + DOMAIN_NAME) %}
{% set HOSTNAME_CTL01 = os_env('HOSTNAME_CTL01', 'ctl01.' + DOMAIN_NAME) %}
{% set HOSTNAME_CTL02 = os_env('HOSTNAME_CTL02', 'ctl02.' + DOMAIN_NAME) %}
{% set HOSTNAME_CTL03 = os_env('HOSTNAME_CTL03', 'ctl03.' + DOMAIN_NAME) %}
{% set HOSTNAME_CMP01 = os_env('HOSTNAME_CMP01', 'cmp01.' + DOMAIN_NAME) %}
{% set HOSTNAME_CMP02 = os_env('HOSTNAME_CMP02', 'cmp02.' + DOMAIN_NAME) %}
{% set HOSTNAME_MON01 = os_env('HOSTNAME_MON01', 'mon01.' + DOMAIN_NAME) %}
{% set HOSTNAME_MON02 = os_env('HOSTNAME_MON02', 'mon02.' + DOMAIN_NAME) %}
{% set HOSTNAME_MON03 = os_env('HOSTNAME_MON03', 'mon03.' + DOMAIN_NAME) %}
{% set HOSTNAME_PRX01 = os_env('HOSTNAME_PRX01', 'prx01.' + DOMAIN_NAME) %}

template:
  devops_settings:
    env_name: {{ os_env('ENV_NAME', 'virtual-mcp11-k8s-calico_' + REPOSITORY_SUITE + "_" + os_env('BUILD_NUMBER', '')) }}

    address_pools:
      admin-pool01:
        net: {{ os_env('ADMIN_ADDRESS_POOL01', '10.70.0.0/16:24') }}
        params:
          ip_reserved:
            gateway: +1
            l2_network_device: +1
            default_{{ HOSTNAME_CFG01 }}: +100
            default_{{ HOSTNAME_CTL01 }}: +101
            default_{{ HOSTNAME_CTL02 }}: +102
            default_{{ HOSTNAME_CTL03 }}: +103
            default_{{ HOSTNAME_CMP01 }}: +105
            default_{{ HOSTNAME_CMP02 }}: +106
            default_{{ HOSTNAME_MON01 }}: +107
            default_{{ HOSTNAME_MON02 }}: +108
            default_{{ HOSTNAME_MON03 }}: +109
            default_{{ HOSTNAME_PRX01 }}: +110
          ip_ranges:
            dhcp: [+90, -10]

      private-pool01:
        net: {{ os_env('PRIVATE_ADDRESS_POOL01', '10.60.0.0/16:24') }}
        params:
          ip_reserved:
            gateway: +1
            l2_network_device: +1
            default_{{ HOSTNAME_CFG01 }}: +100
            default_{{ HOSTNAME_CTL01 }}: +101
            default_{{ HOSTNAME_CTL02 }}: +102
            default_{{ HOSTNAME_CTL03 }}: +103
            default_{{ HOSTNAME_CMP01 }}: +105
            default_{{ HOSTNAME_CMP02 }}: +106
            default_{{ HOSTNAME_MON01 }}: +107
            default_{{ HOSTNAME_MON02 }}: +108
            default_{{ HOSTNAME_MON03 }}: +109
            default_{{ HOSTNAME_PRX01 }}: +110
          ip_ranges:
            dhcp: [+90, -10]

    groups:
      - name: default
        driver:
          name: devops.driver.libvirt
          params:
            connection_string: !os_env CONNECTION_STRING, qemu:///system
            storage_pool_name: !os_env STORAGE_POOL_NAME, default
            stp: False
            hpet: False
            enable_acpi: true
            use_host_cpu: !os_env DRIVER_USE_HOST_CPU, true

        network_pools:
          admin: admin-pool01
          private: private-pool01

        l2_network_devices:
          private:
            address_pool: private-pool01
            dhcp: true

          admin:
            address_pool: admin-pool01
            dhcp: true
            forward:
              mode: nat

        group_volumes:
         - name: cloudimage1604    # This name is used for 'backing_store' option for node volumes.
           source_image: !os_env IMAGE_PATH1604  # https://cloud-images.ubuntu.com/xenial/current/xenial-server-cloudimg-amd64-disk1.img or
                                             # http://apt.tcpcloud.eu/images/ubuntu-16-04-x64-201608231004.qcow2
           format: qcow2

        nodes:
          - name: {{ HOSTNAME_CFG01 }}
            role: salt_master
            params:
              vcpu: !os_env SLAVE_NODE_CPU, 4
              memory: !os_env SLAVE_NODE_MEMORY, 1536
              boot:
                - hd
              cloud_init_volume_name: iso
              cloud_init_iface_up: ens3
              volumes:
                - name: system
                  capacity: !os_env NODE_VOLUME_SIZE, 150
                  backing_store: cloudimage1604
                  format: qcow2
                - name: iso  # Volume with name 'iso' will be used
                             # for store image with cloud-init metadata.
                  capacity: 1
                  format: raw
                  device: cdrom
                  bus: ide
                  cloudinit_meta_data: !include underlay--meta-data.yaml
                  cloudinit_user_data: !include underlay--user-data-cfg01.yaml

              interfaces:
                - label: ens3
                  l2_network_device: admin
                  interface_model: *interface_model
                - label: ens4
                  l2_network_device: private
                  interface_model: *interface_model
              network_config:
                ens3:
                  networks:
                    - admin
                ens4:
                  networks:
                    - private

          - name: {{ HOSTNAME_CTL01 }}
            role: salt_minion
            params:
              vcpu: !os_env SLAVE_NODE_CPU, 4
              memory: !os_env SLAVE_NODE_MEMORY, 6144
              boot:
                - hd
              cloud_init_volume_name: iso
              cloud_init_iface_up: ens3
              volumes:
                - name: system
                  capacity: !os_env NODE_VOLUME_SIZE, 150
                  backing_store: cloudimage1604
                  format: qcow2
                - name: cinder
                  capacity: 50
                  format: qcow2
                - name: iso  # Volume with name 'iso' will be used
                             # for store image with cloud-init metadata.
                  capacity: 1
                  format: raw
                  device: cdrom
                  bus: ide
                  cloudinit_meta_data: !include underlay--meta-data.yaml
                  cloudinit_user_data: !include underlay--user-data1604.yaml

              interfaces: &interfaces
                - label: ens3
                  l2_network_device: admin
                  interface_model: *interface_model
                - label: ens4
                  l2_network_device: private
                  interface_model: *interface_model
              network_config: &network_config
                ens3:
                  networks:
                    - admin
                ens4:
                  networks:
                    - private

          - name: {{ HOSTNAME_CTL02 }}
            role: salt_minion
            params:
              vcpu: !os_env SLAVE_NODE_CPU, 4
              memory: !os_env SLAVE_NODE_MEMORY, 6144
              boot:
                - hd
              cloud_init_volume_name: iso
              cloud_init_iface_up: ens3
              volumes:
                - name: system
                  capacity: !os_env NODE_VOLUME_SIZE, 150
                  backing_store: cloudimage1604
                  format: qcow2
                - name: cinder
                  capacity: 50
                  format: qcow2
                - name: iso  # Volume with name 'iso' will be used
                             # for store image with cloud-init metadata.
                  capacity: 1
                  format: raw
                  device: cdrom
                  bus: ide
                  cloudinit_meta_data: !include underlay--meta-data.yaml
                  cloudinit_user_data: !include underlay--user-data1604.yaml

              interfaces: *interfaces
              network_config: *network_config

          - name: {{ HOSTNAME_CTL03 }}
            role: salt_minion
            params:
              vcpu: !os_env SLAVE_NODE_CPU, 4
              memory: !os_env SLAVE_NODE_MEMORY, 6144
              boot:
                - hd
              cloud_init_volume_name: iso
              cloud_init_iface_up: ens3
              volumes:
                - name: system
                  capacity: !os_env NODE_VOLUME_SIZE, 150
                  backing_store: cloudimage1604
                  format: qcow2
                - name: cinder
                  capacity: 50
                  format: qcow2
                - name: iso  # Volume with name 'iso' will be used
                             # for store image with cloud-init metadata.
                  capacity: 1
                  format: raw
                  device: cdrom
                  bus: ide
                  cloudinit_meta_data: !include underlay--meta-data.yaml
                  cloudinit_user_data: !include underlay--user-data1604.yaml

              interfaces: *interfaces
              network_config: *network_config

          - name: {{ HOSTNAME_CMP01 }}
            role: salt_minion
            params:
              vcpu: !os_env SLAVE_NODE_CPU, 4
              memory: !os_env SLAVE_NODE_MEMORY, 2048
              boot:
                - hd
              cloud_init_volume_name: iso
              cloud_init_iface_up: ens3
              volumes:
                - name: system
                  capacity: !os_env NODE_VOLUME_SIZE, 150
                  backing_store: cloudimage1604
                  format: qcow2
                - name: iso  # Volume with name 'iso' will be used
                             # for store image with cloud-init metadata.
                  capacity: 1
                  format: raw
                  device: cdrom
                  bus: ide
                  cloudinit_meta_data: !include underlay--meta-data.yaml
                  cloudinit_user_data: !include underlay--user-data1604.yaml

              interfaces: &all_interfaces
                - label: ens3
                  l2_network_device: admin
                  interface_model: *interface_model
                - label: ens4
                  l2_network_device: private
                  interface_model: *interface_model
              network_config: &all_network_config
                ens3:
                  networks:
                    - admin
                ens4:
                  networks:
                    - private

          - name: {{ HOSTNAME_CMP02 }}
            role: salt_minion
            params:
              vcpu: !os_env SLAVE_NODE_CPU, 4
              memory: !os_env SLAVE_NODE_MEMORY, 2048
              boot:
                - hd
              cloud_init_volume_name: iso
              cloud_init_iface_up: ens3
              volumes:
                - name: system
                  capacity: !os_env NODE_VOLUME_SIZE, 150
                  backing_store: cloudimage1604
                  format: qcow2
                - name: iso  # Volume with name 'iso' will be used
                             # for store image with cloud-init metadata.
                  capacity: 1
                  format: raw
                  device: cdrom
                  bus: ide
                  cloudinit_meta_data: !include underlay--meta-data.yaml
                  cloudinit_user_data: !include underlay--user-data1604.yaml

              interfaces: *interfaces
              network_config: *network_config

          - name: {{ HOSTNAME_MON01 }}
            role: salt_minion
            params:
              vcpu: !os_env SLAVE_NODE_CPU, 4
              memory: !os_env SLAVE_NODE_MEMORY, 1024
              boot:
                - hd
              cloud_init_volume_name: iso
              cloud_init_iface_up: ens3
              volumes:
                - name: system
                  capacity: !os_env NODE_VOLUME_SIZE, 150
                  backing_store: cloudimage1604
                  format: qcow2
                - name: iso  # Volume with name 'iso' will be used
                             # for store image with cloud-init metadata.
                  capacity: 1
                  format: raw
                  device: cdrom
                  bus: ide
                  cloudinit_meta_data: !include underlay--meta-data.yaml
                  cloudinit_user_data: !include underlay--user-data1604.yaml

              interfaces: *interfaces
              network_config: *network_config

          - name: {{ HOSTNAME_MON02 }}
            role: salt_minion
            params:
              vcpu: !os_env SLAVE_NODE_CPU, 4
              memory: !os_env SLAVE_NODE_MEMORY, 1024
              boot:
                - hd
              cloud_init_volume_name: iso
              cloud_init_iface_up: ens3
              volumes:
                - name: system
                  capacity: !os_env NODE_VOLUME_SIZE, 150
                  backing_store: cloudimage1604
                  format: qcow2
                - name: iso  # Volume with name 'iso' will be used
                             # for store image with cloud-init metadata.
                  capacity: 1
                  format: raw
                  device: cdrom
                  bus: ide
                  cloudinit_meta_data: !include underlay--meta-data.yaml
                  cloudinit_user_data: !include underlay--user-data1604.yaml

              interfaces: *interfaces
              network_config: *network_config

          - name: {{ HOSTNAME_MON03 }}
            role: salt_minion
            params:
              vcpu: !os_env SLAVE_NODE_CPU, 4
              memory: !os_env SLAVE_NODE_MEMORY, 1024
              boot:
                - hd
              cloud_init_volume_name: iso
              cloud_init_iface_up: ens3
              volumes:
                - name: system
                  capacity: !os_env NODE_VOLUME_SIZE, 150
                  backing_store: cloudimage1604
                  format: qcow2
                - name: iso  # Volume with name 'iso' will be used
                             # for store image with cloud-init metadata.
                  capacity: 1
                  format: raw
                  device: cdrom
                  bus: ide
                  cloudinit_meta_data: !include underlay--meta-data.yaml
                  cloudinit_user_data: !include underlay--user-data1604.yaml

              interfaces: *interfaces
              network_config: *network_config

          - name: {{ HOSTNAME_PRX01 }}
            role: salt_minion
            params:
              vcpu: !os_env SLAVE_NODE_CPU, 4
              memory: !os_env SLAVE_NODE_MEMORY, 1024
              boot:
                - hd
              cloud_init_volume_name: iso
              cloud_init_iface_up: ens3
              volumes:
                - name: system
                  capacity: !os_env NODE_VOLUME_SIZE, 150
                  backing_store: cloudimage1604
                  format: qcow2
                - name: iso  # Volume with name 'iso' will be used
                             # for store image with cloud-init metadata.
                  capacity: 1
                  format: raw
                  device: cdrom
                  bus: ide
                  cloudinit_meta_data: !include underlay--meta-data.yaml
                  cloudinit_user_data: !include underlay--user-data1604.yaml

              interfaces: *interfaces
              network_config: *network_config
