# Set the repository suite, one of the: 'nightly', 'testing', 'stable', or any other required
{% set REPOSITORY_SUITE = os_env('REPOSITORY_SUITE', 'testing') %}
{% set LAB_CONFIG_NAME = os_env('LAB_CONFIG_NAME', 'cookied-bm-dpdk-pipeline') %}
{% set DOMAIN_NAME = os_env('DOMAIN_NAME', LAB_CONFIG_NAME + '.local') %}
{% set HOSTNAME_CFG01 = os_env('HOSTNAME_CFG01', 'cfg01.' + DOMAIN_NAME) %}
{% set HOSTNAME_KVM01 = os_env('HOSTNAME_KVM01', 'kvm01.' + DOMAIN_NAME) %}
{% set HOSTNAME_KVM02 = os_env('HOSTNAME_KVM02', 'kvm02.' + DOMAIN_NAME) %}
{% set HOSTNAME_KVM03 = os_env('HOSTNAME_KVM03', 'kvm03.' + DOMAIN_NAME) %}
{% set HOSTNAME_CMP01 = os_env('HOSTNAME_CMP01', 'cmp01.' + DOMAIN_NAME) %}
{% set HOSTNAME_CMP02 = os_env('HOSTNAME_CMP02', 'cmp02.' + DOMAIN_NAME) %}
{% set HOSTNAME_GTW01 = os_env('HOSTNAME_GTW01', 'gtw01.' + DOMAIN_NAME) %}
{% set HOSTNAME_GTW02 = os_env('HOSTNAME_GTW02', 'gtw02.' + DOMAIN_NAME) %}
{% set ETH1_IP_ADDRESS_CFG01 = os_env('ETH1_IP_ADDRESS_CFG01', '172.16.49.2') %}
{% set ETH2_IP_ADDRESS_CFG01 = os_env('ETH2_IP_ADDRESS_CFG01', '10.167.11.253') %}
{% set ETH0_IP_ADDRESS_KVM01 = os_env('ETH0_IP_ADDRESS_KVM01', '172.16.49.11') %}
{% set ETH0_IP_ADDRESS_KVM02 = os_env('ETH0_IP_ADDRESS_KVM02', '172.16.49.12') %}
{% set ETH0_IP_ADDRESS_KVM03 = os_env('ETH0_IP_ADDRESS_KVM03', '172.16.49.13') %}
{% set ETH0_IP_ADDRESS_CMP01 = os_env('ETH0_IP_ADDRESS_CMP01', '172.16.49.3') %}
{% set ETH0_IP_ADDRESS_CMP02 = os_env('ETH0_IP_ADDRESS_CMP02', '172.16.49.31') %}
{% set ETH0_IP_ADDRESS_GTW01 = os_env('ETH0_IP_ADDRESS_GTW01', '172.16.49.5') %}
{% set ETH0_IP_ADDRESS_GTW02 = os_env('ETH0_IP_ADDRESS_GTW02', '172.16.49.4') %}

{% import 'cookied-bm-dpdk-pipeline/underlay--meta-data.yaml' as CLOUDINIT_META_DATA with context %}
{% import 'cookied-bm-dpdk-pipeline/underlay--user-data-cfg01.yaml' as CLOUDINIT_USER_DATA_CFG01 with context %}
{% import 'cookied-bm-dpdk-pipeline/underlay--user-data1604.yaml' as CLOUDINIT_USER_DATA_1604 with context %}
{% import 'cookied-bm-dpdk-pipeline/underlay--user-data1604-hwe.yaml' as CLOUDINIT_USER_DATA_1604_HWE 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_1604_hwe {{ CLOUDINIT_USER_DATA_1604_HWE }}

template:
  devops_settings:
    env_name: {{ os_env('ENV_NAME', LAB_CONFIG_NAME + '_' + REPOSITORY_SUITE + "_" + os_env('BUILD_NUMBER', '')) }}

    address_pools:
      admin-pool01:
        net: {{ os_env('ADMIN_ADDRESS_POOL01', '172.16.49.0/26:26') }}
        params:
          ip_reserved:
            gateway: +62
            l2_network_device: +61
            virtual_{{ HOSTNAME_CFG01 }}: {{ ETH1_IP_ADDRESS_CFG01 }}
            default_{{ HOSTNAME_KVM01 }}: {{ ETH0_IP_ADDRESS_KVM01 }}
            default_{{ HOSTNAME_KVM02 }}: {{ ETH0_IP_ADDRESS_KVM02 }}
            default_{{ HOSTNAME_KVM03 }}: {{ ETH0_IP_ADDRESS_KVM03 }}
            default_{{ HOSTNAME_CMP01 }}: {{ ETH0_IP_ADDRESS_CMP01 }}
            default_{{ HOSTNAME_CMP02 }}: {{ ETH0_IP_ADDRESS_CMP02 }}
            default_{{ HOSTNAME_GTW01 }}: {{ ETH0_IP_ADDRESS_GTW01 }}
            default_{{ HOSTNAME_GTW02 }}: {{ ETH0_IP_ADDRESS_GTW02 }}
          ip_ranges:
              dhcp: [+2, -4]
      private-pool01:
        net: {{ os_env('PRIVATE_ADDRESS_POOL01', '10.167.11.0/24:24') }}
        params:
          ip_reserved:
            virtual_{{ HOSTNAME_CFG01 }}: {{ ETH2_IP_ADDRESS_CFG01 }}
            gateway: +1
            l2_network_device: +1

      tenant-pool01:
        net: {{ os_env('TENANT_ADDRESS_POOL01', '10.167.12.0/24:24') }}
        params:
          ip_reserved:
            gateway: +1
            l2_network_device: +1

      external-pool01:
        net: {{ os_env('EXTERNAL_ADDRESS_POOL01', '172.17.42.128/26:26') }}
        params:
          ip_reserved:
            gateway: '172.17.42.129'
          ip_ranges:
              dhcp: ['172.17.42.130', '172.17.42.180']


    groups:
      - name: virtual
        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

        l2_network_devices:
          # Ironic management interface
          admin:
            address_pool: admin-pool01
            dhcp: false
            parent_iface:
              phys_dev: !os_env IRONIC_LAB_PXE_IFACE_0
          private:
            parent_iface:
              phys_dev: !os_env CONTROL_IFACE

        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

        nodes:
          - name: {{ HOSTNAME_CFG01 }}
            role: salt_master
            params:
              vcpu: !os_env SLAVE_NODE_CPU, 4
              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: 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
                  mac_address: !os_env ETH1_MAC_ADDRESS_CFG01
                - label: ens4
                  l2_network_device: private
                  interface_model: *interface_model
              network_config:
                ens3:
                  networks:
                    - admin
                ens4:
                  networks:
                    - private


      - name: default
        driver:
          name: devops_driver_ironic
          params:
            os_auth_token: fake-token
            ironic_url: !os_env IRONIC_URL  # URL that will be used by fuel-devops
                                            # to access Ironic API
            # Agent URL that is accessible from deploying node when nodes
            # are bootstrapped with PXE. Usually PXE/provision network address is used.
            agent_kernel_url: !os_env IRONIC_AGENT_KERNEL_URL
            agent_ramdisk_url: !os_env IRONIC_AGENT_RAMDISK_URL

        network_pools:
          admin: admin-pool01

        nodes:
          - name: {{ HOSTNAME_KVM01 }}
            role: salt_minion
            params:
              ipmi_user: !os_env IPMI_USER
              ipmi_password: !os_env IPMI_PASSWORD
              ipmi_previlegies: OPERATOR
              ipmi_host: !os_env IPMI_HOST_KVM01  # hostname or IP address
              ipmi_lan_interface: lanplus
              ipmi_port: 623

              root_volume_name: system     # see 'volumes' below
              cloud_init_volume_name: iso  # see 'volumes' below
              cloud_init_iface_up: enp3s0f0  # see 'interfaces' below.
              volumes:
                - name: system
                  capacity: !os_env NODE_VOLUME_SIZE, 200

                  # The same as for agent URL, here is an URL to the image that should be
                  # used for deploy the node. It should also be accessible from deploying
                  # node when nodes are provisioned by agent. Usually PXE/provision network address is used.
                  source_image: !os_env IRONIC_SOURCE_IMAGE_URL
                  source_image_checksum: !os_env IRONIC_SOURCE_IMAGE_CHECKSUM

                - name: iso  # Volume with name 'iso' will be used
                             # for store image with cloud-init metadata.

                  cloudinit_meta_data: *cloudinit_meta_data
                  cloudinit_user_data: *cloudinit_user_data_1604

              interfaces:
                - label: enp3s0f0
                  l2_network_device: admin
                  mac_address: !os_env ETH0_MAC_ADDRESS_KVM01
                - label: enp3s0f1
                  mac_address: !os_env ETH1_MAC_ADDRESS_KVM01

              network_config:
                enp3s0f0:
                  networks:
                   - admin
                bond0:
                  networks:
                   - control
                  aggregation: active-backup
                  parents:
                   - enp3s0f1

          - name: {{ HOSTNAME_KVM02 }}
            role: salt_minion
            params:
              ipmi_user: !os_env IPMI_USER
              ipmi_password: !os_env IPMI_PASSWORD
              ipmi_previlegies: OPERATOR
              ipmi_host: !os_env IPMI_HOST_KVM02  # hostname or IP address
              ipmi_lan_interface: lanplus
              ipmi_port: 623

              root_volume_name: system     # see 'volumes' below
              cloud_init_volume_name: iso  # see 'volumes' below
              cloud_init_iface_up: enp3s0f0  # see 'interfaces' below.
              volumes:
                - name: system
                  capacity: !os_env NODE_VOLUME_SIZE, 200

                  # The same as for agent URL, here is an URL to the image that should be
                  # used for deploy the node. It should also be accessible from deploying
                  # node when nodes are provisioned by agent. Usually PXE/provision network address is used.
                  source_image: !os_env IRONIC_SOURCE_IMAGE_URL
                  source_image_checksum: !os_env IRONIC_SOURCE_IMAGE_CHECKSUM

                - name: iso  # Volume with name 'iso' will be used
                             # for store image with cloud-init metadata.

                  cloudinit_meta_data: *cloudinit_meta_data
                  cloudinit_user_data: *cloudinit_user_data_1604

              interfaces:
                - label: enp3s0f0
                  l2_network_device: admin
                  mac_address: !os_env ETH0_MAC_ADDRESS_KVM02
                - label: enp3s0f1
                  mac_address: !os_env ETH1_MAC_ADDRESS_KVM02

              network_config:
                enp3s0f0:
                  networks:
                   - admin
                bond0:
                  networks:
                   - control
                  aggregation: active-backup
                  parents:
                   - enp3s0f1

          - name: {{ HOSTNAME_KVM03 }}
            role: salt_minion
            params:
              ipmi_user: !os_env IPMI_USER
              ipmi_password: !os_env IPMI_PASSWORD
              ipmi_previlegies: OPERATOR
              ipmi_host: !os_env IPMI_HOST_KVM03  # hostname or IP address
              ipmi_lan_interface: lanplus
              ipmi_port: 623

              root_volume_name: system     # see 'volumes' below
              cloud_init_volume_name: iso  # see 'volumes' below
              cloud_init_iface_up: enp3s0f0  # see 'interfaces' below.
              volumes:
                - name: system
                  capacity: !os_env NODE_VOLUME_SIZE, 200

                  # The same as for agent URL, here is an URL to the image that should be
                  # used for deploy the node. It should also be accessible from deploying
                  # node when nodes are provisioned by agent. Usually PXE/provision network address is used.
                  source_image: !os_env IRONIC_SOURCE_IMAGE_URL
                  source_image_checksum: !os_env IRONIC_SOURCE_IMAGE_CHECKSUM

                - name: iso  # Volume with name 'iso' will be used
                             # for store image with cloud-init metadata.

                  cloudinit_meta_data: *cloudinit_meta_data
                  cloudinit_user_data: *cloudinit_user_data_1604

              interfaces:
                - label: enp3s0f0
                  l2_network_device: admin
                  mac_address: !os_env ETH0_MAC_ADDRESS_KVM03
                - label: enp3s0f1
                  mac_address: !os_env ETH1_MAC_ADDRESS_KVM03

              network_config:
                enp3s0f0:
                  networks:
                   - admin
                bond0:
                  networks:
                   - control
                  aggregation: active-backup
                  parents:
                   - enp3s0f1


          - name: {{ HOSTNAME_CMP01 }}
            role: salt_minion
            params:
              ipmi_user: !os_env IPMI_USER
              ipmi_password: !os_env IPMI_PASSWORD
              ipmi_previlegies: OPERATOR
              ipmi_host: !os_env IPMI_HOST_CMP01  # hostname or IP address
              ipmi_lan_interface: lanplus
              ipmi_port: 623

              root_volume_name: system     # see 'volumes' below
              cloud_init_volume_name: iso  # see 'volumes' below
              cloud_init_iface_up: enp5s0f0  # see 'interfaces' below.
              volumes:
                - name: system
                  capacity: !os_env NODE_VOLUME_SIZE, 200

                  # The same as for agent URL, here is an URL to the image that should be
                  # used for deploy the node. It should also be accessible from deploying
                  # node when nodes are provisioned by agent. Usually PXE/provision network address is used.
                  source_image: !os_env IRONIC_SOURCE_IMAGE_URL
                  source_image_checksum: !os_env IRONIC_SOURCE_IMAGE_CHECKSUM

                - name: iso  # Volume with name 'iso' will be used
                             # for store image with cloud-init metadata.

                  cloudinit_meta_data: *cloudinit_meta_data
                  cloudinit_user_data: *cloudinit_user_data_1604_hwe

              interfaces:
                - label: enp3s0f0
                  mac_address: !os_env ETH0_MAC_ADDRESS_CMP01
                - label: enp3s0f1
                  mac_address: !os_env ETH1_MAC_ADDRESS_CMP01
                - label: enp5s0f0
                  l2_network_device: admin
                  mac_address: !os_env ETH2_MAC_ADDRESS_CMP01
                - label: enp5s0f1
                  mac_address: !os_env ETH3_MAC_ADDRESS_CMP01
              network_config:
                enp5s0f0:
                  networks:
                   - admin

          - name: {{ HOSTNAME_CMP02 }}
            role: salt_minion
            params:
              ipmi_user: !os_env IPMI_USER
              ipmi_password: !os_env IPMI_PASSWORD
              ipmi_previlegies: OPERATOR
              ipmi_host: !os_env IPMI_HOST_CMP02  # hostname or IP address
              ipmi_lan_interface: lanplus
              ipmi_port: 623

              root_volume_name: system     # see 'volumes' below
              cloud_init_volume_name: iso  # see 'volumes' below
              cloud_init_iface_up: enp5s0f0  # see 'interfaces' below.
              volumes:
                - name: system
                  capacity: !os_env NODE_VOLUME_SIZE, 200

                  # The same as for agent URL, here is an URL to the image that should be
                  # used for deploy the node. It should also be accessible from deploying
                  # node when nodes are provisioned by agent. Usually PXE/provision network address is used.
                  source_image: !os_env IRONIC_SOURCE_IMAGE_URL
                  source_image_checksum: !os_env IRONIC_SOURCE_IMAGE_CHECKSUM

                - name: iso  # Volume with name 'iso' will be used
                             # for store image with cloud-init metadata.

                  cloudinit_meta_data: *cloudinit_meta_data
                  cloudinit_user_data: *cloudinit_user_data_1604_hwe

              interfaces:
                - label: enp3s0f0
                  mac_address: !os_env ETH0_MAC_ADDRESS_CMP02
                - label: enp3s0f1
                  mac_address: !os_env ETH1_MAC_ADDRESS_CMP02
                - label: enp5s0f0
                  l2_network_device: admin
                  mac_address: !os_env ETH2_MAC_ADDRESS_CMP02
                - label: enp5s0f1
                  mac_address: !os_env ETH3_MAC_ADDRESS_CMP02
              network_config:
                enp5s0f0:
                  networks:
                   - admin

          - name: {{ HOSTNAME_GTW01 }}
            role: salt_minion
            params:
              ipmi_user: !os_env IPMI_USER
              ipmi_password: !os_env IPMI_PASSWORD
              ipmi_previlegies: OPERATOR
              ipmi_host: !os_env IPMI_HOST_GTW01  # hostname or IP address
              ipmi_lan_interface: lanplus
              ipmi_port: 623

              root_volume_name: system     # see 'volumes' below
              cloud_init_volume_name: iso  # see 'volumes' below
              cloud_init_iface_up: enp3s0f0  # see 'interfaces' below.
              volumes:
                - name: system
                  capacity: !os_env NODE_VOLUME_SIZE, 200

                  # The same as for agent URL, here is an URL to the image that should be
                  # used for deploy the node. It should also be accessible from deploying
                  # node when nodes are provisioned by agent. Usually PXE/provision network address is used.
                  source_image: !os_env IRONIC_SOURCE_IMAGE_URL
                  source_image_checksum: !os_env IRONIC_SOURCE_IMAGE_CHECKSUM

                - name: iso  # Volume with name 'iso' will be used
                             # for store image with cloud-init metadata.

                  cloudinit_meta_data: *cloudinit_meta_data
                  cloudinit_user_data: *cloudinit_user_data_1604_hwe

              interfaces:
                - label: enp3s0f0
                  l2_network_device: admin
                  mac_address: !os_env ETH0_MAC_ADDRESS_GTW01
                - label: enp3s0f1
                  mac_address: !os_env ETH1_MAC_ADDRESS_GTW01

              network_config:
                enp3s0f0:
                  networks:
                   - admin
                bond0:
                  networks:
                   - control
                  aggregation: active-backup
                  parents:
                   - enp3s0f1

          - name: {{ HOSTNAME_GTW02 }}
            role: salt_minion
            params:
              ipmi_user: !os_env IPMI_USER
              ipmi_password: !os_env IPMI_PASSWORD
              ipmi_previlegies: OPERATOR
              ipmi_host: !os_env IPMI_HOST_GTW02  # hostname or IP address
              ipmi_lan_interface: lanplus
              ipmi_port: 623

              root_volume_name: system     # see 'volumes' below
              cloud_init_volume_name: iso  # see 'volumes' below
              cloud_init_iface_up: enp3s0f0  # see 'interfaces' below.
              volumes:
                - name: system
                  capacity: !os_env NODE_VOLUME_SIZE, 200

                  # The same as for agent URL, here is an URL to the image that should be
                  # used for deploy the node. It should also be accessible from deploying
                  # node when nodes are provisioned by agent. Usually PXE/provision network address is used.
                  source_image: !os_env IRONIC_SOURCE_IMAGE_URL
                  source_image_checksum: !os_env IRONIC_SOURCE_IMAGE_CHECKSUM

                - name: iso  # Volume with name 'iso' will be used
                             # for store image with cloud-init metadata.

                  cloudinit_meta_data: *cloudinit_meta_data
                  cloudinit_user_data: *cloudinit_user_data_1604_hwe

              interfaces:
                - label: enp3s0f0
                  l2_network_device: admin
                  mac_address: !os_env ETH0_MAC_ADDRESS_GTW02
                - label: enp3s0f1
                  mac_address: !os_env ETH1_MAC_ADDRESS_GTW02

              network_config:
                enp3s0f0:
                  networks:
                   - admin
                bond0:
                  networks:
                   - control
                  aggregation: active-backup
                  parents:
                   - enp3s0f1
