PoC for ironic provisioning of physical_mcp11_ovs_dpdk
Change-Id: I257a061ceaf34bc8ca310a94335371a480db301d
Reviewed-on: https://review.gerrithub.io/363525
Reviewed-by: Dennis Dmitriev <dis.xcom@gmail.com>
Tested-by: Dennis Dmitriev <dis.xcom@gmail.com>
diff --git a/tcp_tests/templates/ironic_standalone/underlay--user-data-ironic.yaml b/tcp_tests/templates/ironic_standalone/underlay--user-data-ironic.yaml
index 0544ae6..f35127d 100644
--- a/tcp_tests/templates/ironic_standalone/underlay--user-data-ironic.yaml
+++ b/tcp_tests/templates/ironic_standalone/underlay--user-data-ironic.yaml
@@ -47,8 +47,8 @@
- echo "172.18.248.114 jenkins.mcp.mirantis.net gerrit.mcp.mirantis.net" >> /etc/hosts;
- echo "185.135.196.10 apt-mk.mirantis.com" >> /etc/hosts;
- - echo "nameserver 172.18.208.44 >> /etc/resolv.conf;
- - echo "nameserver 8.8.8.8 >> /etc/resolv.conf;
+ - echo "nameserver 172.18.208.44" >> /etc/resolv.conf;
+ - echo "nameserver 8.8.8.8" >> /etc/resolv.conf;
- which wget >/dev/null || (apt-get update; apt-get install -y wget);
- apt-get install -y ntp
@@ -63,6 +63,18 @@
- ip a a $IRONIC_PXE_INTERFACE_ADDRESS/$IRONIC_DHCP_POOL_NETMASK_PREFIX dev $IRONIC_PXE_INTERFACE_NAME
- curl https://raw.githubusercontent.com/dis-xcom/underpillar/master/bootstrap.sh -o ./bootstrap.sh && bash ./bootstrap.sh
+ # Disable dnsmasq in favour to external DHCP provider
+ #- systemctl disable dnsmasq
+ # - service dnsmasq stop
+
+ {%- if os_env('IRONIC_DNSMASQ_HOSTFILE', '') %}
+ - echo "dhcp-hostsfile=/var/lib/libvirt/dnsmasq/{{ IRONIC_ENV_NAME }}.hostsfile" >> /etc/dnsmasq.conf
+ - service dnsmasq restart
+ {%- endif %}
+
+ # Enable SNAT to allow internet access for deploying nodes using ironic node as a gateway
+ - iptables -t nat -A POSTROUTING -s {{ os_env('IRONIC_DHCP_POOL_START', '10.0.175.100') }}/{{ os_env('IRONIC_DHCP_POOL_NETMASK_PREFIX', '24') }} ! -d {{ os_env('IRONIC_DHCP_POOL_START', '10.0.175.100') }}/{{ os_env('IRONIC_DHCP_POOL_NETMASK_PREFIX', '24') }} -j MASQUERADE
+
- echo "Building ironic agent image (stable/newton) ..."
- apt-get install -y docker.io gzip uuid-runtime cpio findutils grep gnupg make
- service docker start
@@ -130,3 +142,12 @@
ServerAliveCountMax 10
StrictHostKeyChecking no
UserKnownHostsFile /dev/null
+
+ {%- if os_env('IRONIC_DNSMASQ_HOSTFILE', '') %}
+ - path: /var/lib/libvirt/dnsmasq/{{ IRONIC_ENV_NAME }}.hostsfile
+ permissions: '0644'
+ content: |
+ {%- for host in os_env('IRONIC_DNSMASQ_HOSTFILE').splitlines() %}
+ {{ host }}
+ {%- endfor %}
+ {%- endif %}
diff --git a/tcp_tests/templates/ironic_standalone/underlay.yaml b/tcp_tests/templates/ironic_standalone/underlay.yaml
index 0753174..39a998e 100644
--- a/tcp_tests/templates/ironic_standalone/underlay.yaml
+++ b/tcp_tests/templates/ironic_standalone/underlay.yaml
@@ -1,5 +1,8 @@
# Set the repository suite, one of the: 'nightly', 'testing', 'stable', or any other required
{% set REPOSITORY_SUITE = os_env('REPOSITORY_SUITE', 'stable') %}
+{% set DOMAIN_NAME = os_env('LAB_CONFIG_NAME', 'standalone') + '.local' %}
+{% set HOSTNAME_IRONIC = os_env('HOSTNAME_IRONIC', 'ironic_master') %}
+{% set IRONIC_ENV_NAME = os_env('IRONIC_ENV_NAME', 'ironic_' + DOMAIN_NAME + '_' + REPOSITORY_SUITE + '_' + os_env('BUILD_NUMBER', '')) %}
{% import 'ironic_standalone/underlay--meta-data.yaml' as CLOUDINIT_META_DATA with context %}
{% import 'ironic_standalone/underlay--user-data-ironic.yaml' as CLOUDINIT_USER_DATA_IRONIC with context %}
@@ -10,13 +13,10 @@
- &cloudinit_meta_data {{ CLOUDINIT_META_DATA }}
- &cloudinit_user_data_ironic {{ CLOUDINIT_USER_DATA_IRONIC }}
-{% set DOMAIN_NAME = os_env('LAB_CONFIG_NAME', 'standalone') + '.local' %}
-{% set HOSTNAME_IRONIC = os_env('HOSTNAME_IRONIC', 'ironic_master') %}
-
template:
devops_settings:
- env_name: {{ os_env('IRONIC_ENV_NAME', 'ironic_' + DOMAIN_NAME + '_' + REPOSITORY_SUITE + '_' + os_env('BUILD_NUMBER', '')) }}
+ env_name: {{ IRONIC_ENV_NAME }}
address_pools:
@@ -66,10 +66,11 @@
provisioning:
address_pool: provisioning-pool01
dhcp: false
+ forward:
+ mode: !os_env IRONIC_LAB_PXE_IFACE_MODE, bridge
parent_iface:
phys_dev: !os_env IRONIC_LAB_PXE_IFACE
-
nodes:
- name: {{ HOSTNAME_IRONIC }}
role: ironic_master
diff --git a/tcp_tests/templates/physical_mcp11_ovs_dpdk/underlay--user-data-cfg01.yaml b/tcp_tests/templates/physical_mcp11_ovs_dpdk/underlay--user-data-cfg01.yaml
index 09d56f0..d3a5720 100644
--- a/tcp_tests/templates/physical_mcp11_ovs_dpdk/underlay--user-data-cfg01.yaml
+++ b/tcp_tests/templates/physical_mcp11_ovs_dpdk/underlay--user-data-cfg01.yaml
@@ -45,8 +45,8 @@
- echo "172.18.248.114 jenkins.mcp.mirantis.net gerrit.mcp.mirantis.net" >> /etc/hosts;
- echo "185.135.196.10 apt-mk.mirantis.com" >> /etc/hosts;
- - echo "nameserver 172.18.208.44 >> /etc/resolv.conf;
- - echo "nameserver 8.8.8.8 >> /etc/resolv.conf;
+ - echo "nameserver 172.18.208.44" >> /etc/resolv.conf;
+ - echo "nameserver 8.8.8.8" >> /etc/resolv.conf;
- which wget >/dev/null || (apt-get update; apt-get install -y wget);
- echo "deb [arch=amd64] http://apt-mk.mirantis.com/xenial {{ REPOSITORY_SUITE }} salt extra" > /etc/apt/sources.list.d/mcp_salt.list;
diff --git a/tcp_tests/templates/physical_mcp11_ovs_dpdk/underlay--user-data1604.yaml b/tcp_tests/templates/physical_mcp11_ovs_dpdk/underlay--user-data-hugepages.yaml
similarity index 93%
copy from tcp_tests/templates/physical_mcp11_ovs_dpdk/underlay--user-data1604.yaml
copy to tcp_tests/templates/physical_mcp11_ovs_dpdk/underlay--user-data-hugepages.yaml
index 4ad2d8d..cdc0e8f 100644
--- a/tcp_tests/templates/physical_mcp11_ovs_dpdk/underlay--user-data1604.yaml
+++ b/tcp_tests/templates/physical_mcp11_ovs_dpdk/underlay--user-data-hugepages.yaml
@@ -32,7 +32,7 @@
- sudo resolvconf -u
# Prepare network connection
- - sudo ifup eth0
+ #- sudo ifup eth0
# Create swap
- fallocate -l 4G /swapfile
@@ -56,16 +56,13 @@
- eatmydata apt-get update && apt-get -y upgrade
# Install common packages
- - eatmydata apt-get install -y python-pip git curl tmux byobu iputils-ping traceroute htop tree mc
+ - eatmydata apt-get install -y python-pip git curl tmux byobu iputils-ping traceroute htop tree mc hugepages
+
+ # Enable hugepages to enable OVS setup for dpdk
+ - echo 2048 > /proc/sys/vm/nr_hugepages
########################################################
# Node is ready, allow SSH access
- echo "Allow SSH access ..."
- sudo iptables -D INPUT -p tcp --dport 22 -j DROP
########################################################
-
- write_files:
- - path: /etc/network/interfaces
- content: |
- auto eth0
- iface eth0 inet dhcp
diff --git a/tcp_tests/templates/physical_mcp11_ovs_dpdk/underlay--user-data1604.yaml b/tcp_tests/templates/physical_mcp11_ovs_dpdk/underlay--user-data.yaml
similarity index 94%
rename from tcp_tests/templates/physical_mcp11_ovs_dpdk/underlay--user-data1604.yaml
rename to tcp_tests/templates/physical_mcp11_ovs_dpdk/underlay--user-data.yaml
index 4ad2d8d..06d2638 100644
--- a/tcp_tests/templates/physical_mcp11_ovs_dpdk/underlay--user-data1604.yaml
+++ b/tcp_tests/templates/physical_mcp11_ovs_dpdk/underlay--user-data.yaml
@@ -32,7 +32,7 @@
- sudo resolvconf -u
# Prepare network connection
- - sudo ifup eth0
+ #- sudo ifup eth0
# Create swap
- fallocate -l 4G /swapfile
@@ -63,9 +63,3 @@
- echo "Allow SSH access ..."
- sudo iptables -D INPUT -p tcp --dport 22 -j DROP
########################################################
-
- write_files:
- - path: /etc/network/interfaces
- content: |
- auto eth0
- iface eth0 inet dhcp
diff --git a/tcp_tests/templates/physical_mcp11_ovs_dpdk/underlay.yaml b/tcp_tests/templates/physical_mcp11_ovs_dpdk/underlay.yaml
index 5912f7d..18da06d 100644
--- a/tcp_tests/templates/physical_mcp11_ovs_dpdk/underlay.yaml
+++ b/tcp_tests/templates/physical_mcp11_ovs_dpdk/underlay.yaml
@@ -1,18 +1,8 @@
# Set the repository suite, one of the: 'nightly', 'testing', 'stable', or any other required
{% set REPOSITORY_SUITE = os_env('REPOSITORY_SUITE', 'stable') %}
-{% import 'physical_mcp11_ovs_dpdk/underlay--meta-data.yaml' as CLOUDINIT_META_DATA with context %}
-{% import 'physical_mcp11_ovs_dpdk/underlay--user-data-cfg01.yaml' as CLOUDINIT_USER_DATA_CFG01 with context %}
-{% import 'physical_mcp11_ovs_dpdk/underlay--user-data1604.yaml' as CLOUDINIT_USER_DATA_1604 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_1604 }}
-
-{% set DOMAIN_NAME = os_env('LAB_CONFIG_NAME', 'physical_mcp11_ovs_dpdk') + '.local' %}
+#{% set DOMAIN_NAME = os_env('LAB_CONFIG_NAME', 'physical_mcp11_ovs_dpdk') + '.local' %}
+{% set DOMAIN_NAME = 'mcp11-ovs-dpdk.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) %}
@@ -20,7 +10,30 @@
{% set HOSTNAME_CMP001 = os_env('HOSTNAME_CMP001', 'cmp001.' + DOMAIN_NAME) %}
{% set HOSTNAME_CMP002 = os_env('HOSTNAME_CMP002', 'cmp002.' + DOMAIN_NAME) %}
{% set HOSTNAME_GTW01 = os_env('HOSTNAME_GTW01', 'gtw01.' + DOMAIN_NAME) %}
-{% set HOSTNAME_GTW02 = os_env('HOSTNAME_GTW01', 'gtw02.' + 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_CMP001 = os_env('ETH0_IP_ADDRESS_CMP001', '172.16.49.3') %}
+{% set ETH0_IP_ADDRESS_CMP002 = os_env('ETH0_IP_ADDRESS_CMP002', '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 'physical_mcp11_ovs_dpdk/underlay--meta-data.yaml' as CLOUDINIT_META_DATA with context %}
+{% import 'physical_mcp11_ovs_dpdk/underlay--user-data-cfg01.yaml' as CLOUDINIT_USER_DATA_CFG01 with context %}
+{% import 'physical_mcp11_ovs_dpdk/underlay--user-data.yaml' as CLOUDINIT_USER_DATA with context %}
+{% import 'physical_mcp11_ovs_dpdk/underlay--user-data-hugepages.yaml' as CLOUDINIT_USER_DATA_HUGEPAGES 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_hugepages {{ CLOUDINIT_USER_DATA_HUGEPAGES }}
+
template:
devops_settings:
@@ -31,18 +44,98 @@
net: {{ os_env('ADMIN_ADDRESS_POOL01', '172.16.49.0/26:26') }}
params:
ip_reserved:
- gateway: +1
- l2_network_device: +1
- default_{{ HOSTNAME_CFG01 }}: 172.16.49.2
- default_{{ HOSTNAME_KVM01 }}: 172.16.49.11
- default_{{ HOSTNAME_KVM02 }}: 172.16.49.12
- default_{{ HOSTNAME_KVM03 }}: 172.16.49.13
- default_{{ HOSTNAME_CMP001 }}: 172.16.49.3
- default_{{ HOSTNAME_CMP002 }}: 172.16.49.31
- default_{{ HOSTNAME_GTW01 }}: 172.16.49.5
- default_{{ HOSTNAME_GTW02 }}: 172.16.49.4
+ gateway: +62
+ l2_network_device: +61
+ default_{{ 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_CMP001 }}: {{ ETH0_IP_ADDRESS_CMP001 }}
+ default_{{ HOSTNAME_CMP002 }}: {{ ETH0_IP_ADDRESS_CMP002 }}
+ default_{{ HOSTNAME_GTW01 }}: {{ ETH0_IP_ADDRESS_GTW01 }}
+ default_{{ HOSTNAME_GTW02 }}: {{ ETH0_IP_ADDRESS_GTW02 }}
+ virtual_{{ HOSTNAME_CFG01 }}: {{ ETH1_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_GTW01 }}: {{ ETH0_IP_ADDRESS_GTW01 }}
+ virtual_{{ HOSTNAME_GTW02 }}: {{ ETH0_IP_ADDRESS_GTW02 }}
+ #ip_ranges:
+ # dhcp: [+2, -4]
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 or
+ # http://apt.tcpcloud.eu/images/ubuntu-16-04-x64-201608231004.qcow2
+ format: qcow2
+
+ nodes:
+ - name: {{ HOSTNAME_CFG01 }}
+ role: salt_master
+ params:
+ vcpu: !os_env SLAVE_NODE_CPU, 4
+ memory: !os_env SLAVE_NODE_MEMORY, 2048
+ boot:
+ - hd
+ cloud_init_volume_name: iso
+ cloud_init_iface_up: ens3
+ volumes:
+ - name: system
+ capacity: !os_env NODE_VOLUME_SIZE, 150
+ backing_store: cloudimage1604
+ format: qcow2
+ - name: iso # Volume with name 'iso' will be used
+ # for store image with cloud-init metadata.
+ capacity: 1
+ format: raw
+ device: cdrom
+ bus: ide
+ cloudinit_meta_data: *cloudinit_meta_data
+ cloudinit_user_data: *cloudinit_user_data_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
@@ -58,56 +151,51 @@
network_pools:
admin: admin-pool01
- l2_network_devices:
- admin:
- address_pool: 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
+ # - 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
+ # 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
+ # # 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.
+ # - 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
+ # 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
+ # 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
+ # network_config:
+ # enp3s0f0:
+ # networks:
+ # - infra
+ # enp3s0f1:
+ # networks:
+ # - admin
- name: {{ HOSTNAME_KVM01 }}
role: salt_minion
@@ -278,7 +366,7 @@
# for store image with cloud-init metadata.
cloudinit_meta_data: *cloudinit_meta_data
- cloudinit_user_data: *cloudinit_user_data
+ cloudinit_user_data: *cloudinit_user_data_hugepages
interfaces:
- label: enp3s0f0
@@ -308,6 +396,7 @@
- enp5s0f0
+
- name: {{ HOSTNAME_CMP002 }}
role: salt_minion
params:
@@ -335,7 +424,7 @@
# for store image with cloud-init metadata.
cloudinit_meta_data: *cloudinit_meta_data
- cloudinit_user_data: *cloudinit_user_data
+ cloudinit_user_data: *cloudinit_user_data_hugepages
interfaces:
- label: eno1