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

#{% set DOMAIN_NAME = os_env('LAB_CONFIG_NAME', 'physical_mcp11_ovs_dpdk') + '.local' %}
{% set LAB_CONFIG_NAME = os_env('LAB_CONFIG_NAME', 'cookied-bm-mcp-pike-k8s-contrail') %}
{% 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_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_CMP001 = os_env('HOSTNAME_CMP001', 'cmp001.' + DOMAIN_NAME) %}
{% set HOSTNAME_CMP002 = os_env('HOSTNAME_CMP002', 'cmp002.' + DOMAIN_NAME) %}
{% set ETH0_IP_ADDRESS_CFG01 = os_env('ETH0_IP_ADDRESS_CFG01', '172.17.41.3') %}
{% set ETH0_IP_ADDRESS_KVM01 = os_env('ETH0_IP_ADDRESS_KVM01', '172.17.41.4') %}
{% set ETH0_IP_ADDRESS_KVM02 = os_env('ETH0_IP_ADDRESS_KVM02', '172.17.41.5') %}
{% set ETH0_IP_ADDRESS_KVM03 = os_env('ETH0_IP_ADDRESS_KVM03', '172.17.41.6') %}
{% set ETH0_IP_ADDRESS_CMP001 = os_env('ETH0_IP_ADDRESS_CMP001', '172.17.41.7') %}
{% set ETH0_IP_ADDRESS_CMP002 = os_env('ETH0_IP_ADDRESS_CMP002', '172.17.41.8') %}
{% set ETH0_IP_ADDRESS_CTL01 = os_env('ETH0_IP_ADDRESS_CTL01', '172.17.41.9') %}
{% set ETH0_IP_ADDRESS_CTL02 = os_env('ETH0_IP_ADDRESS_CTL02', '172.17.41.10') %}
{% set ETH0_IP_ADDRESS_CTL03 = os_env('ETH0_IP_ADDRESS_CTL03', '172.17.41.11') %}
{% import 'cookied-bm-mcp-pike-k8s-contrail/underlay--meta-data.yaml' as CLOUDINIT_META_DATA with context %}
{% import 'cookied-bm-mcp-pike-k8s-contrail/underlay--user-data-cfg01.yaml' as CLOUDINIT_USER_DATA_CFG01 with context %}
{% import 'cookied-bm-mcp-pike-k8s-contrail/underlay--user-data1604.yaml' as CLOUDINIT_USER_DATA with context %}
{% import 'cookied-bm-mcp-pike-k8s-contrail/underlay--user-data1604-hwe-compute.yaml' as CLOUDINIT_USER_DATA_HWE_CMP 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 {{ CLOUDINIT_USER_DATA }}
 - &cloudinit_user_data_hwe_cmp {{ CLOUDINIT_USER_DATA_HWE_CMP }}


template:
  devops_settings:
    env_name: {{ os_env('ENV_NAME', 'cookied-bm-mcp-pike-k8s-contrail_' + REPOSITORY_SUITE + "_" + os_env('BUILD_NUMBER', '')) }}

    address_pools:
      admin-pool01:
        net: {{ os_env('ADMIN_ADDRESS_POOL01', '172.17.41.0/26:26') }}
        params:
          ip_reserved:
            gateway: +1
            l2_network_device: +61
            default_{{ HOSTNAME_CFG01 }}: {{ ETH0_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_CMP001 }}: {{ ETH0_IP_ADDRESS_CMP001 }}
            default_{{ HOSTNAME_CMP002 }}: {{ ETH0_IP_ADDRESS_CMP002 }}
            default_{{ HOSTNAME_CTL01 }}: {{ ETH0_IP_ADDRESS_CTL01 }}
            default_{{ HOSTNAME_CTL02 }}: {{ ETH0_IP_ADDRESS_CTL02 }}
            default_{{ HOSTNAME_CTL03 }}: {{ ETH0_IP_ADDRESS_CTL03 }}

            virtual_{{ HOSTNAME_CFG01 }}: {{ ETH0_IP_ADDRESS_CFG01 }}
            virtual_{{ HOSTNAME_KVM01 }}: {{ ETH0_IP_ADDRESS_KVM01 }}
            virtual_{{ HOSTNAME_KVM02 }}: {{ ETH0_IP_ADDRESS_KVM02 }}
            virtual_{{ HOSTNAME_KVM03 }}: {{ ETH0_IP_ADDRESS_KVM03 }}
            virtual_{{ HOSTNAME_CMP001 }}: {{ ETH0_IP_ADDRESS_CMP001 }}
            virtual_{{ HOSTNAME_CMP002 }}: {{ ETH0_IP_ADDRESS_CMP002 }}
            virtual_{{ HOSTNAME_CTL01 }}: {{ ETH0_IP_ADDRESS_CTL01 }}
            virtual_{{ HOSTNAME_CTL02 }}: {{ ETH0_IP_ADDRESS_CTL02 }}
            virtual_{{ HOSTNAME_CTL03 }}: {{ ETH0_IP_ADDRESS_CTL03 }}
          #ip_ranges:
          #    dhcp: [+2, -4]
      private-pool01:
        net: {{ os_env('PRIVATE_ADDRESS_POOL01', '10.167.13.0/24:24') }}
        params:
          ip_reserved:
            gateway: +1
            l2_network_device: +1

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

      external-pool01:
        net: {{ os_env('EXTERNAL_ADDRESS_POOL01', '172.17.41.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

        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 ETH0_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_CFG01 }}
        #    role: salt_master
        #    params:
        #      ipmi_user: !os_env IPMI_USER
        #      ipmi_password: !os_env IPMI_PASSWORD
        #      ipmi_previlegies: OPERATOR
        #      ipmi_host: !os_env IPMI_HOST_CFG01  # 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: enp3s0f1  # 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_cfg01

        #      interfaces:
        #        - label: enp3s0f0  # Infra interface
        #          mac_address: !os_env ETH0_MAC_ADDRESS_CFG01
        #        - label: enp3s0f1
        #          l2_network_device: admin
        #          mac_address: !os_env ETH1_MAC_ADDRESS_CFG01

        #      network_config:
        #        enp3s0f0:
        #          networks:
        #           - infra
        #        enp3s0f1:
        #          networks:
        #           - admin
          # - name: {{ HOSTNAME_PRX01 }}
          #   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_PRX01  # 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: enp9s0f0  # 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

          #     interfaces:
          #       - label: enp9s0f0
          #         l2_network_device: admin
          #         mac_address: !os_env ETH0_MAC_ADDRESS_PRX01
          #       - label: enp9s0f1
          #         mac_address: !os_env ETH1_MAC_ADDRESS_PRX01

          #     network_config:
          #       enp9s0f0:
          #         networks:
          #          - admin
          #       bond0:
          #         networks:
          #          - control
          #         aggregation: active-backup
          #         parents:
          #          - enp9s0f1

          - 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: enp9s0f0  # 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

              interfaces:
                - label: enp9s0f0
                  l2_network_device: admin
                  mac_address: !os_env ETH0_MAC_ADDRESS_KVM01
                - label: enp9s0f1
                  mac_address: !os_env ETH1_MAC_ADDRESS_KVM01

              network_config:
                enp9s0f0:
                  networks:
                   - admin
                bond0:
                  networks:
                   - control
                  aggregation: active-backup
                  parents:
                   - enp9s0f1

          - 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: enp9s0f0  # 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

              interfaces:
                - label: enp9s0f0
                  l2_network_device: admin
                  mac_address: !os_env ETH0_MAC_ADDRESS_KVM02
                - label: enp9s0f1
                  mac_address: !os_env ETH1_MAC_ADDRESS_KVM02

              network_config:
                enp9s0f0:
                  networks:
                   - admin
                bond0:
                  networks:
                   - control
                  aggregation: active-backup
                  parents:
                   - enp9s0f1

          - 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: eno1  # see 'interfaces' below.
              cloud_init_iface_up: enp9s0f0  # 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

              interfaces:
                # - label: eno1
                - label: enp9s0f0
                  l2_network_device: admin
                  mac_address: !os_env ETH0_MAC_ADDRESS_KVM03
                # - label: eno2
                - label: enp9s0f1
                  mac_address: !os_env ETH1_MAC_ADDRESS_KVM03

              network_config:
                # eno1:
                enp9s0f0:
                  networks:
                   - admin
                bond0:
                  networks:
                   - control
                  aggregation: active-backup
                  parents:
                   - enp9s0f1

          - name: {{ HOSTNAME_CTL01 }}
            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_CTL01  # 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: enp2s0f0  # 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

              interfaces:
                - label: enp2s0f0
                  l2_network_device: admin
                  mac_address: !os_env ETH0_MAC_ADDRESS_CTL01
                - label: enp2s0f1
                  mac_address: !os_env ETH1_MAC_ADDRESS_CTL01

              network_config:
                enp2s0f0:
                  networks:
                   - admin

          - name: {{ HOSTNAME_CTL02 }}
            role: salt_minion
            params:
              ipmi_user: !os_env IPMI_USER
              ipmi_password: !os_env IPMI_PASSWORD_CTL
              ipmi_previlegies: OPERATOR
              ipmi_host: !os_env IPMI_HOST_CTL02  # 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: enp2s0f0  # 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

              interfaces:
                - label: enp2s0f0
                  l2_network_device: admin
                  mac_address: !os_env ETH0_MAC_ADDRESS_CTL02
                - label: enp2s0f1
                  mac_address: !os_env ETH1_MAC_ADDRESS_CTL02

              network_config:
                enp2s0f0:
                  networks:
                   - admin

          - name: {{ HOSTNAME_CTL03 }}
            role: salt_minion
            params:
              ipmi_user: !os_env IPMI_USER
              ipmi_password: !os_env IPMI_PASSWORD_CTL
              ipmi_previlegies: OPERATOR
              ipmi_host: !os_env IPMI_HOST_CTL03  # 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: eno1  # see 'interfaces' below.
              cloud_init_iface_up: enp2s0f0  # 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

              interfaces:
                # - label: eno1
                - label: enp2s0f0
                  l2_network_device: admin
                  mac_address: !os_env ETH0_MAC_ADDRESS_CTL03
                # - label: eno2
                - label: enp2s0f1
                  mac_address: !os_env ETH1_MAC_ADDRESS_CTL03

              network_config:
                # eno1:
                enp2s0f0:
                  networks:
                   - admin

          - name: {{ HOSTNAME_CMP001 }}
            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_CMP001  # 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.
              cloud_init_iface_up: enp9s0f0  # 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_hwe_cmp

              interfaces:
                - label: enp9s0f0
                  l2_network_device: admin
                  mac_address: !os_env ETH0_MAC_ADDRESS_CMP001
                - label: enp9s0f1
                  mac_address: !os_env ETH1_MAC_ADDRESS_CMP001
                # - label: enp5s0f0
                #   mac_address: !os_env ETH2_MAC_ADDRESS_CMP001
                #   features: ['dpdk', 'dpdk_pci: 0000:05:00.0']
                # - label: enp5s0f1
                #   mac_address: !os_env ETH3_MAC_ADDRESS_CMP001
                #   features: ['dpdk', 'dpdk_pci: 0000:05:00.1']
                # - label: enp5s0f2
                #   mac_address: !os_env ETH4_MAC_ADDRESS_CMP001
                #   features: ['dpdk', 'dpdk_pci: 0000:05:00.2']

              network_config:
                enp9s0f0:
                  networks:
                   - admin
                bond0:
                  networks:
                   - control
                  aggregation: active-backup
                  parents:
                   - enp9s0f1

          - name: {{ HOSTNAME_CMP002 }}
            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_CMP002  # 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.
              cloud_init_iface_up: enp9s0f0  # 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_hwe_cmp

              interfaces:
                - label: enp9s0f0
                  l2_network_device: admin
                  mac_address: !os_env ETH0_MAC_ADDRESS_CMP002
                - label: enp9s0f1
                  mac_address: !os_env ETH1_MAC_ADDRESS_CMP002
              network_config:
                enp9s0f0:
                  networks:
                   - admin
                bond0:
                  networks:
                   - control
                  aggregation: active-backup
                  parents:
                   - enp9s0f1
