# 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-mcp-ocata-dop-sl2') %}
{% set DOMAIN_NAME = os_env('DOMAIN_NAME', LAB_CONFIG_NAME + '.local') %}
{% set HOSTNAME_CFG01 = os_env('HOSTNAME_CFG01', 'cfg01.' + DOMAIN_NAME) %}
{% set HOSTNAME_CID01 = os_env('HOSTNAME_CID01', 'cid01.' + DOMAIN_NAME) %}
{% set HOSTNAME_CID02 = os_env('HOSTNAME_CID02', 'cid02.' + DOMAIN_NAME) %}
{% set HOSTNAME_CID03 = os_env('HOSTNAME_CID03', 'cid03.' + 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_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_CMP01 = os_env('HOSTNAME_CMP01', 'cmp001.' + DOMAIN_NAME) %}
{% set HOSTNAME_CMP02 = os_env('HOSTNAME_CMP02', 'cmp002.' + DOMAIN_NAME) %}
{% set HOSTNAME_GTW01 = os_env('HOSTNAME_GTW01', 'gtw01.' + DOMAIN_NAME) %}
{% set HOSTNAME_PRX01 = os_env('HOSTNAME_PRX01', 'prx01.' + DOMAIN_NAME) %}

{% import 'cookied-mcp-ocata-dop-sl2/underlay--meta-data.yaml' as CLOUDINIT_META_DATA with context %}
{% import 'cookied-mcp-ocata-dop-sl2/underlay--user-data-cfg01.yaml' as CLOUDINIT_USER_DATA_CFG01 with context %}
{% import 'cookied-mcp-ocata-dop-sl2/underlay--user-data1604.yaml' as CLOUDINIT_USER_DATA_1604 with context %}
{% import 'cookied-mcp-ocata-dop-sl2/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:
      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_CID }}: +90
            default_{{ HOSTNAME_CID01 }}: +91
            default_{{ HOSTNAME_CID02 }}: +92
            default_{{ HOSTNAME_CID03 }}: +93

            default_{{ HOSTNAME_MON }}: +70
            default_{{ HOSTNAME_MON01 }}: +71
            default_{{ HOSTNAME_MON02 }}: +72
            default_{{ HOSTNAME_MON03 }}: +73

            default_{{ HOSTNAME_CTL }}: +10
            default_{{ HOSTNAME_CTL01 }}: +11
            default_{{ HOSTNAME_CTL02 }}: +12
            default_{{ HOSTNAME_CTL03 }}: +13
            default_{{ HOSTNAME_GTW01 }}: +224
            default_{{ HOSTNAME_GTW02 }}: +225
            default_{{ HOSTNAME_PRX }}: +80
            default_{{ HOSTNAME_PRX01 }}: +81
            default_{{ HOSTNAME_PRX02 }}: +82

            default_{{ HOSTNAME_CMP01 }}: +101
            default_{{ HOSTNAME_CMP02 }}: +102
          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_CID }}: +90
            default_{{ HOSTNAME_CID01 }}: +91
            default_{{ HOSTNAME_CID02 }}: +92
            default_{{ HOSTNAME_CID03 }}: +93

            default_{{ HOSTNAME_MON }}: +70
            default_{{ HOSTNAME_MON01 }}: +71
            default_{{ HOSTNAME_MON02 }}: +72
            default_{{ HOSTNAME_MON03 }}: +73

            default_{{ HOSTNAME_CTL }}: +10
            default_{{ HOSTNAME_CTL01 }}: +11
            default_{{ HOSTNAME_CTL02 }}: +12
            default_{{ HOSTNAME_CTL03 }}: +13
            default_{{ HOSTNAME_GTW01 }}: +224
            default_{{ HOSTNAME_GTW02 }}: +225
            default_{{ HOSTNAME_PRX }}: +80
            default_{{ HOSTNAME_PRX01 }}: +81
            default_{{ HOSTNAME_PRX02 }}: +82

            default_{{ HOSTNAME_CMP01 }}: +101
            default_{{ HOSTNAME_CMP02 }}: +102
          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_CID }}: +90
            default_{{ HOSTNAME_CID01 }}: +91
            default_{{ HOSTNAME_CID02 }}: +92
            default_{{ HOSTNAME_CID03 }}: +93

            default_{{ HOSTNAME_MON }}: +70
            default_{{ HOSTNAME_MON01 }}: +71
            default_{{ HOSTNAME_MON02 }}: +72
            default_{{ HOSTNAME_MON03 }}: +73

            default_{{ HOSTNAME_CTL }}: +10
            default_{{ HOSTNAME_CTL01 }}: +11
            default_{{ HOSTNAME_CTL02 }}: +12
            default_{{ HOSTNAME_CTL03 }}: +13
            default_{{ HOSTNAME_GTW01 }}: +6
            default_{{ HOSTNAME_GTW02 }}: +7
            default_{{ HOSTNAME_PRX }}: +80
            default_{{ HOSTNAME_PRX01 }}: +81
            default_{{ HOSTNAME_PRX02 }}: +82

            default_{{ HOSTNAME_CMP01 }}: +101
            default_{{ HOSTNAME_CMP02 }}: +102
          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_CID }}: +90
            default_{{ HOSTNAME_CID01 }}: +91
            default_{{ HOSTNAME_CID02 }}: +92
            default_{{ HOSTNAME_CID03 }}: +93

            default_{{ HOSTNAME_MON }}: +70
            default_{{ HOSTNAME_MON01 }}: +71
            default_{{ HOSTNAME_MON02 }}: +72
            default_{{ HOSTNAME_MON03 }}: +73

            default_{{ HOSTNAME_CTL }}: +10
            default_{{ HOSTNAME_CTL01 }}: +11
            default_{{ HOSTNAME_CTL02 }}: +12
            default_{{ HOSTNAME_CTL03 }}: +13
            default_{{ HOSTNAME_GTW01 }}: +224
            default_{{ HOSTNAME_GTW02 }}: +225
            default_{{ HOSTNAME_PRX }}: +80
            default_{{ HOSTNAME_PRX01 }}: +81
            default_{{ HOSTNAME_PRX02 }}: +82

            default_{{ HOSTNAME_CMP01 }}: +101
            default_{{ HOSTNAME_CMP02 }}: +102
          ip_ranges:
            dhcp: [+10, -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:
          admin:
            address_pool: admin-pool01
            dhcp: true
            forward:
              mode: nat

          private_br:
            vlan_ifaces:
             - 10

          private:
            address_pool: private-pool01
            dhcp: false
            forward:
              mode: route
            parent_iface:
              l2_net_dev: private_br
              tag: 10

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


        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_CFG01 }}
            role: salt_master
            params:
              vcpu: {{ os_env('CFG_NODE_CPU', 2) }}
              memory: {{ os_env('CFG_NODE_MEMORY', 8192) }}
              boot:
                - hd
              cloud_init_volume_name: iso
              cloud_init_iface_up: ens3
              volumes:
                - name: system
                  capacity: {{ os_env('CFG_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_br
                  interface_model: *interface_model
              network_config:
                ens3:
                  networks:
                    - admin
                ens4:
                  networks:
                    - private

          - name: {{ HOSTNAME_CID01 }}
            role: salt_minion
            params:
              vcpu: {{ os_env('CID_NODE_CPU', 3) }}
              memory: {{ os_env('CID_NODE_MEMORY', 6144) }}
              boot:
                - hd
              cloud_init_volume_name: iso
              cloud_init_iface_up: ens3
              volumes:
                - name: system
                  capacity: {{ os_env('CID_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

              interfaces: &interfaces
                - label: ens3
                  l2_network_device: admin
                  interface_model: *interface_model
                - label: ens4
                  l2_network_device: private_br
                  interface_model: *interface_model
              network_config: &network_config
                ens3:
                  networks:
                    - admin
                ens4:
                  networks:
                    - private

          - name: {{ HOSTNAME_CID02 }}
            role: salt_minion
            params:
              vcpu: {{ os_env('CID_NODE_CPU', 3) }}
              memory: {{ os_env('CID_NODE_MEMORY', 6144) }}
              boot:
                - hd
              cloud_init_volume_name: iso
              cloud_init_iface_up: ens3
              volumes:
                - name: system
                  capacity: {{ os_env('CID_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

              interfaces: *interfaces
              network_config: *network_config

          - name: {{ HOSTNAME_CID03 }}
            role: salt_minion
            params:
              vcpu: {{ os_env('CID_NODE_CPU', 3) }}
              memory: {{ os_env('CID_NODE_MEMORY', 6144) }}
              boot:
                - hd
              cloud_init_volume_name: iso
              cloud_init_iface_up: ens3
              volumes:
                - name: system
                  capacity: {{ os_env('CID_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

              interfaces: *interfaces
              network_config: *network_config

          - name: {{ HOSTNAME_CTL01 }}
            role: salt_minion
            params:
              vcpu: {{ os_env('CTL_NODE_CPU', 3) }}
              memory: {{ os_env('CTL_NODE_MEMORY', 14000) }}
              boot:
                - hd
              cloud_init_volume_name: iso
              cloud_init_iface_up: ens3
              volumes:
                - name: system
                  capacity: {{ os_env('CTL_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_CTL02 }}
            role: salt_minion
            params:
              vcpu: {{ os_env('CTL_NODE_CPU', 3) }}
              memory: {{ os_env('CTL_NODE_MEMORY', 14000) }}
              boot:
                - hd
              cloud_init_volume_name: iso
              cloud_init_iface_up: ens3
              volumes:
                - name: system
                  capacity: {{ os_env('CTL_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('CTL_NODE_CPU', 3) }}
              memory: {{ os_env('CTL_NODE_MEMORY', 14000) }}
              boot:
                - hd
              cloud_init_volume_name: iso
              cloud_init_iface_up: ens3
              volumes:
                - name: system
                  capacity: {{ os_env('CTL_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('MON_NODE_CPU', 2) }}
              memory: {{ os_env('MON_NODE_MEMORY', 14000) }}
              boot:
                - hd
              cloud_init_volume_name: iso
              cloud_init_iface_up: ens3
              volumes:
                - name: system
                  capacity: {{ os_env('MON_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_MON02 }}
            role: salt_minion
            params:
              vcpu: {{ os_env('MON_NODE_CPU', 2) }}
              memory: {{ os_env('MON_NODE_MEMORY', 14000) }}
              boot:
                - hd
              cloud_init_volume_name: iso
              cloud_init_iface_up: ens3
              volumes:
                - name: system
                  capacity: {{ os_env('MON_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_MON03 }}
            role: salt_minion
            params:
              vcpu: {{ os_env('MON_NODE_CPU', 2) }}
              memory: {{ os_env('MON_NODE_MEMORY', 14000) }}
              boot:
                - hd
              cloud_init_volume_name: iso
              cloud_init_iface_up: ens3
              volumes:
                - name: system
                  capacity: {{ os_env('MON_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_PRX01 }}
            role: salt_minion
            params:
              vcpu: {{ os_env('PRX_NODE_CPU', 1) }}
              memory: {{ os_env('PRX_NODE_MEMORY', 2048) }}
              boot:
                - hd
              cloud_init_volume_name: iso
              cloud_init_iface_up: ens3
              volumes:
                - name: system
                  capacity: {{ os_env('MON_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('CMP_NODE_CPU', 2) }}
              memory: {{ os_env('CMP_NODE_MEMORY', 3072) }}
              boot:
                - hd
              cloud_init_volume_name: iso
              cloud_init_iface_up: ens3
              volumes:
                - name: system
                  capacity: {{ os_env('CMP_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_hwe


              interfaces: &all_interfaces
                - label: ens3
                  l2_network_device: admin
                  interface_model: *interface_model
                - label: ens4
                  l2_network_device: private_br
                  interface_model: *interface_model
                - label: ens5
                  l2_network_device: private_br
                  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:
                    - private
                ens6:
                  networks:
                    - external

          - name: {{ HOSTNAME_CMP02 }}
            role: salt_minion
            params:
              vcpu: {{ os_env('CMP_NODE_CPU', 2) }}
              memory: {{ os_env('CMP_NODE_MEMORY', 3072) }}
              boot:
                - hd
              cloud_init_volume_name: iso
              cloud_init_iface_up: ens3
              volumes:
                - name: system
                  capacity: {{ os_env('CMP_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_hwe

              interfaces: *all_interfaces
              network_config: *all_network_config

          - name: {{ HOSTNAME_GTW01 }}
            role: salt_minion
            params:
              vcpu: {{ os_env('GTW_NODE_CPU', 4) }}
              memory: {{ os_env('GTW_NODE_MEMORY', 4096) }}
              boot:
                - hd
              cloud_init_volume_name: iso
              cloud_init_iface_up: ens3
              volumes:
                - name: system
                  capacity: {{ os_env('GTW_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_hwe

              interfaces: *all_interfaces
              network_config: *all_network_config
