# 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-mcp-ovs-dpdk') %}
{% 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 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-mcp-ovs-dpdk/underlay--meta-data.yaml' as CLOUDINIT_META_DATA with context %}
{% import 'cookied-bm-mcp-ovs-dpdk/underlay--user-data-cfg01.yaml' as CLOUDINIT_USER_DATA_CFG01 with context %}
{% import 'cookied-bm-mcp-ovs-dpdk/underlay--user-data1604.yaml' as CLOUDINIT_USER_DATA_1604 with context %}
{% import 'cookied-bm-mcp-ovs-dpdk/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:
            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: +1
            l2_network_device: -2


    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

        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, 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
                  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: 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_CMP01
                - label: enp3s0f1
                  mac_address: !os_env ETH1_MAC_ADDRESS_CMP01
                - label: enp5s0f0
                  mac_address: !os_env ETH2_MAC_ADDRESS_CMP01
                  features: ['dpdk', 'dpdk_pci: 0000:05:00.0']
                - label: enp5s0f1
                  mac_address: !os_env ETH3_MAC_ADDRESS_CMP01
                  features: ['dpdk', 'dpdk_pci: 0000:05:00.1']

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



          - 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: 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_CMP02
                - label: enp3s0f1
                  mac_address: !os_env ETH1_MAC_ADDRESS_CMP02
                - label: enp5s0f0
                  mac_address: !os_env ETH2_MAC_ADDRESS_CMP02
                  features: ['dpdk', 'dpdk_pci: 0000:05:00.0']
                - label: enp5s0f1
                  mac_address: !os_env ETH3_MAC_ADDRESS_CMP02
                  features: ['dpdk', 'dpdk_pci: 0000:05:00.1']
              network_config:
                enp3s0f0:
                  networks:
                   - admin
                bond0:
                  networks:
                   - control
                  aggregation: active-backup
                  parents:
                   - enp3s0f0
                   - enp3s0f1


          - 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
