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

{% import 'mcp-ocata-local-repo-dvr/underlay--meta-data.yaml' as CLOUDINIT_META_DATA with context %}
{% import 'mcp-ocata-local-repo-dvr/underlay--user-data-cfg01.yaml' as CLOUDINIT_USER_DATA_CFG01 with context %}
{% import 'mcp-ocata-local-repo-dvr/underlay--user-data1604.yaml' as CLOUDINIT_USER_DATA_1604 with context %}
{% import 'mcp-ocata-local-repo-dvr/underlay--user-data-apt01.yaml' as CLOUDINIT_USER_DATA_APT01 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 }}
 - &cloudinit_user_data_apt01 {{ CLOUDINIT_USER_DATA_APT01 }}

{% set LAB_CONFIG_NAME = os_env('LAB_CONFIG_NAME', 'mcp-ocata-local-repo-dvr') %}
{% set DOMAIN_NAME = os_env('DOMAIN_NAME', LAB_CONFIG_NAME + '.local') %}
{% set HOSTNAME_APT01 = os_env('HOSTNAME_APT01', 'apt01.' + DOMAIN_NAME) %}
{% 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_GTW01 = os_env('HOSTNAME_GTW01', 'gtw01.' + DOMAIN_NAME) %}
{% set HOSTNAME_PRX01 = os_env('HOSTNAME_PRX01', 'prx01.' + DOMAIN_NAME) %}

template:
  devops_settings:
    env_name: {{ os_env('ENV_NAME', 'mcp-ocata-local-repo-dvr_' + REPOSITORY_SUITE + "_" + os_env('BUILD_NUMBER', '')) }}

    address_pools:
      private-pool01:
        net: {{ os_env('PRIVATE_ADDRESS_POOL01', '10.60.0.0/16:24') }}
        params:
          ip_reserved:
            l2_network_device: +1
            default_{{ HOSTNAME_APT01 }}: +122
            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_GTW01 }}: +110
            default_{{ HOSTNAME_PRX01 }}: +121
          ip_ranges:
            dhcp: [+90, -10]

      admin-pool01:
        net: {{ os_env('ADMIN_ADDRESS_POOL01', '10.70.0.0/16:24') }}
        params:
          ip_reserved:
            gateway: +122
            l2_network_device: +1
            default_{{ HOSTNAME_APT01 }}: +122
            default_{{ HOSTNAME_CFG01 }}: +90
            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_GTW01 }}: +110
            default_{{ HOSTNAME_PRX01 }}: +121
          ip_ranges:
            dhcp: [+90, -10]

      tenant-pool01:
        net: {{ os_env('TENANT_ADDRESS_POOL01', '10.80.0.0/16:24') }}
        params:
          ip_reserved:
            l2_network_device: +1
            default_{{ HOSTNAME_APT01 }}: +122
            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_GTW01 }}: +110
            default_{{ HOSTNAME_PRX01 }}: +121
          ip_ranges:
            dhcp: [+10, -10]
      external-pool01:
        net: {{ os_env('EXTERNAL_ADDRESS_POOL01', '10.90.0.0/16:24') }}
        params:
          ip_reserved:
            l2_network_device: +1
            default_{{ HOSTNAME_APT01 }}: +122
          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
            use_hugepages: !os_env DRIVER_USE_HUGEPAGES, false

        network_pools:
          admin: admin-pool01
          private: private-pool01
          tenant: tenant-pool01
          external: external-pool01

        l2_network_devices:
          private:
            address_pool: private-pool01
            dhcp: false
            forward:
              mode: route

          admin:
            address_pool: admin-pool01
            dhcp: true

          tenant:
            address_pool: tenant-pool01
            dhcp: false

          external:
            address_pool: external-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
           format: qcow2
         - name: cfg01_day01_image               # Pre-configured day01 image
           source_image: {{ os_env('IMAGE_PATH_CFG01_DAY01', os_env('IMAGE_PATH1604')) }} # http://images.mirantis.com/cfg01-day01.qcow2 or fallback to IMAGE_PATH1604
           format: qcow2
         - name: mcp_ubuntu_1604_image           # Pre-configured image for VCP nodes initially based on kvm nodes.
           # http://images.mirantis.com/ubuntu-16-04-x64-latest.qcow2  (preffered)
           # or
           # https://cloud-images.ubuntu.com/xenial/current/xenial-server-cloudimg-amd64-disk1.img
           source_image: {{ os_env('MCP_IMAGE_PATH1604', os_env('IMAGE_PATH1604')) }}
           format: qcow2

        nodes:
          - name: {{ HOSTNAME_APT01 }}
            role: salt_minion
            params:
              vcpu: !os_env SLAVE_NODE_CPU, 2
              memory: !os_env SLAVE_NODE_MEMORY, 4096
              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: *cloudinit_meta_data
                  cloudinit_user_data: *cloudinit_user_data_apt01

              interfaces:
                - label: ens3
                  l2_network_device: admin
                  interface_model: *interface_model
                - label: ens4
                  l2_network_device: private
                  interface_model: *interface_model
                - label: ens5
                  l2_network_device: tenant
                  interface_model: *interface_model
                - label: ens6
                  l2_network_device: external
                  interface_model: *interface_model
              network_config:
                ens3:
                  networks:
                    - admin
                ens4:
                  networks:
                    - private
                ens5:
                  networks:
                    - tenant
                ens6:
                  networks:
                    - external

          - name: {{ HOSTNAME_CFG01 }}
            role: salt_master
            params:
              vcpu: !os_env SLAVE_NODE_CPU, 2
              memory: !os_env SLAVE_NODE_MEMORY, 8192
              boot:
                - hd
              cloud_init_volume_name: iso
              cloud_init_iface_up: ens3
              volumes:
                - name: system
                  capacity: !os_env NODE_VOLUME_SIZE, 150
                  backing_store: cfg01_day01_image
                  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: *cloudinit_meta_data
                  cloudinit_user_data: *cloudinit_user_data_cfg01

              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, 2
              memory: !os_env SLAVE_NODE_MEMORY, 12288
              boot:
                - hd
              cloud_init_volume_name: iso
              cloud_init_iface_up: ens3
              volumes:
                - name: system
                  capacity: !os_env NODE_VOLUME_SIZE, 150
                  backing_store: mcp_ubuntu_1604_image
                  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: *cloudinit_meta_data
                  cloudinit_user_data: *cloudinit_user_data_1604

              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, 2
              memory: !os_env SLAVE_NODE_MEMORY, 12288
              boot:
                - hd
              cloud_init_volume_name: iso
              cloud_init_iface_up: ens3
              volumes:
                - name: system
                  capacity: !os_env NODE_VOLUME_SIZE, 150
                  backing_store: mcp_ubuntu_1604_image
                  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: *cloudinit_meta_data
                  cloudinit_user_data: *cloudinit_user_data_1604

              interfaces: *interfaces
              network_config: *network_config

          - name: {{ HOSTNAME_CTL03 }}
            role: salt_minion
            params:
              vcpu: !os_env SLAVE_NODE_CPU, 2
              memory: !os_env SLAVE_NODE_MEMORY, 12288
              boot:
                - hd
              cloud_init_volume_name: iso
              cloud_init_iface_up: ens3
              volumes:
                - name: system
                  capacity: !os_env NODE_VOLUME_SIZE, 150
                  backing_store: mcp_ubuntu_1604_image
                  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: *cloudinit_meta_data
                  cloudinit_user_data: *cloudinit_user_data_1604

              interfaces: *interfaces
              network_config: *network_config

          - name: {{ HOSTNAME_MON01 }}
            role: salt_minion
            params:
              vcpu: !os_env SLAVE_NODE_CPU, 3
              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: mcp_ubuntu_1604_image
                  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, 3
              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: mcp_ubuntu_1604_image
                  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, 3
              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: mcp_ubuntu_1604_image
                  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, 1
              memory: !os_env SLAVE_NODE_MEMORY, 8192
              boot:
                - hd
              cloud_init_volume_name: iso
              cloud_init_iface_up: ens3
              volumes:
                - name: system
                  capacity: !os_env NODE_VOLUME_SIZE, 150
                  backing_store: mcp_ubuntu_1604_image
                  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: *cloudinit_meta_data
                  cloudinit_user_data: *cloudinit_user_data_1604

              interfaces: *interfaces
              network_config: *network_config


          - name: {{ HOSTNAME_CMP01 }}
            role: salt_minion
            params:
              vcpu: !os_env SLAVE_NODE_CPU, 3
              memory: !os_env SLAVE_NODE_MEMORY, 4096
              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: *cloudinit_meta_data
                  cloudinit_user_data: *cloudinit_user_data_1604


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

          - name: {{ HOSTNAME_CMP02 }}
            role: salt_minion
            params:
              vcpu: !os_env SLAVE_NODE_CPU, 3
              memory: !os_env SLAVE_NODE_MEMORY, 4096
              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: *cloudinit_meta_data
                  cloudinit_user_data: *cloudinit_user_data_1604

              interfaces: *all_interfaces
              network_config: *all_network_config

          - name: {{ HOSTNAME_GTW01 }}
            role: salt_minion
            params:
              vcpu: !os_env SLAVE_NODE_CPU, 1
              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: *cloudinit_meta_data
                  cloudinit_user_data: *cloudinit_user_data_1604

              interfaces: *all_interfaces
              network_config: *all_network_config
