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

{% import 'cookied-small-mcp-ironic/underlay--meta-data.yaml' as CLOUDINIT_META_DATA with context %}
{% import 'cookied-small-mcp-ironic/underlay--user-data1604-swp.yaml' as CLOUDINIT_USER_DATA_1604_SWP with context %}

---
aliases:
 - &interface_model {{ os_env('INTERFACE_MODEL', 'virtio') }}
 - &cloudinit_meta_data {{ CLOUDINIT_META_DATA }}
 - &cloudinit_user_data_1604_swp {{ CLOUDINIT_USER_DATA_1604_SWP }}

{% set LAB_CONFIG_NAME = os_env('LAB_CONFIG_NAME', 'cookied-small-mcp-ironic') %}
{% set DOMAIN_NAME = os_env('DOMAIN_NAME', LAB_CONFIG_NAME) + '.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_GTW01 = os_env('HOSTNAME_GTW01', 'gtw01.' + DOMAIN_NAME) %}
{% set HOSTNAME_PRX01 = os_env('HOSTNAME_PRX01', 'prx01.' + DOMAIN_NAME) %}
{% set HOSTNAME_BMT01 = os_env('HOSTNAME_BMT01', 'bmt01.' + DOMAIN_NAME) %}

template:
  devops_settings:
    env_name: {{ os_env('ENV_NAME', 'cookied-small-mcp-ironic_' + 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:
            gateway: +1
            l2_network_device: +1
            default_{{ HOSTNAME_CFG01 }}: +15
            default_{{ HOSTNAME_CTL01 }}: +101
            default_{{ HOSTNAME_CTL02 }}: +102
            default_{{ HOSTNAME_CTL03 }}: +103
            default_{{ HOSTNAME_GTW01 }}: +110
            default_{{ HOSTNAME_PRX01 }}: +121
            default_{{ HOSTNAME_BMT01 }}: +76
          ip_ranges:
            dhcp: [+90, -10]

      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 }}: +15
            default_{{ HOSTNAME_CTL01 }}: +101
            default_{{ HOSTNAME_CTL02 }}: +102
            default_{{ HOSTNAME_CTL03 }}: +103
            default_{{ HOSTNAME_GTW01 }}: +110
            default_{{ HOSTNAME_PRX01 }}: +121
            default_{{ HOSTNAME_BMT01 }}: +76
          ip_ranges:
            dhcp: [+90, -10]

      tenant-pool01:
        net: {{ os_env('TENANT_ADDRESS_POOL01', '10.80.0.0/16:24') }}
        params:
          ip_reserved:
            gateway: +1
            l2_network_device: +1
            default_{{ HOSTNAME_CFG01 }}: +15
            default_{{ HOSTNAME_CTL01 }}: +101
            default_{{ HOSTNAME_CTL02 }}: +102
            default_{{ HOSTNAME_CTL03 }}: +103
            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:
            gateway: +1
            l2_network_device: +1
            default_{{ HOSTNAME_CFG01 }}: +15
            default_{{ HOSTNAME_CTL01 }}: +101
            default_{{ HOSTNAME_CTL02 }}: +102
            default_{{ HOSTNAME_CTL03 }}: +103
            default_{{ HOSTNAME_GTW01 }}: +110
            default_{{ HOSTNAME_PRX01 }}: +121
          ip_ranges:
            dhcp: [+180, +220]

    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
            forward:
              mode: nat

          tenant:
            address_pool: tenant-pool01
            dhcp: false

          external:
            address_pool: external-pool01
            dhcp: false
            forward:
              mode: route

          baremetal:
            parent_iface:
              phys_dev: {{ os_env('IFACE_IRONIC', 'veth-contdpdk1') }}


        group_volumes:
         - name: cloudimage1604    # This name is used for 'backing_store' option for node volumes.
           source_image: {{ os_env('MCP_IMAGE_PATH1604') }}  # http://ci.mcp.mirantis.net:8085/images/ubuntu-16-04-x64-mcpproposed.qcow2
           format: qcow2
         - name: cfg01_day01_image               # Pre-configured day01 image
           source_image: {{ os_env('IMAGE_PATH_CFG01_DAY01') }} # http://images.mirantis.com/cfg01-day01.qcow2 or fallback to IMAGE_PATH1604
           format: qcow2
         - name: mcp_ubuntu_1604_image           # Pre-configured image for control plane
           source_image: !os_env MCP_IMAGE_PATH1604
           format: qcow2

        nodes:
          - name: {{ HOSTNAME_CFG01 }}
            role: salt_master
            params:
              vcpu: {{ os_env('CFG_NODE_CPU', 3) }}
              memory: {{ os_env('CFG_NODE_MEMORY', 8192) }}
              boot:
                - hd
              volumes:
                - name: system
                  capacity: {{ os_env('CFG_NODE_VOLUME_SIZE', 150) }}
                  backing_store: cfg01_day01_image
                  format: qcow2
                - name: config
                  capacity: 1
                  format: raw
                  device: cdrom
                  bus: ide
                  # source_image: !os_env CFG01_CONFIG_PATH # no source image required.
                                                            # it will be uploaded after config drive generation
              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, 3
              memory: !os_env SLAVE_NODE_MEMORY, 16384
              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: *cloudinit_meta_data
                  cloudinit_user_data: *cloudinit_user_data_1604_swp

              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, 3
              memory: !os_env SLAVE_NODE_MEMORY, 16384
              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: *cloudinit_meta_data
                  cloudinit_user_data: *cloudinit_user_data_1604_swp

              interfaces: *interfaces
              network_config: *network_config

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

              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, 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: *cloudinit_meta_data
                  cloudinit_user_data: *cloudinit_user_data_1604_swp

              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: external
                  interface_model: *interface_model
              network_config:
                ens3:
                  networks:
                    - admin
                ens4:
                  networks:
                    - private
                ens5:
                  networks:
                    - external

          - name: {{ HOSTNAME_GTW01 }}
            role: salt_minion
            params:
              vcpu: !os_env SLAVE_NODE_CPU, 2
              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_swp

              interfaces: &all_gtw_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
                - label: ens7
                  l2_network_device: baremetal
                  interface_model: *interface_model
              network_config: &all_gtw_network_config
                ens3:
                  networks:
                    - admin
                ens4:
                  networks:
                    - private
                ens5:
                  networks:
                    - tenant
                ens6:
                  networks:
                    - external
                ens7:
                  networks:
                    - baremetal

          - name: {{ HOSTNAME_BMT01 }}
            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_1604_swp

              interfaces: *all_gtw_interfaces
              network_config: *all_gtw_network_config
