Add ability to pass hardware metadata
Related-Prod: PRODX-00000
Change-Id: I4c377558ffe13e28f8ac5ced45262ff67556f46c
diff --git a/de/heat-templates/fragments/SrvInstancesBM.yaml b/de/heat-templates/fragments/SrvInstancesBM.yaml
index 46f8e68..cf247db 100644
--- a/de/heat-templates/fragments/SrvInstancesBM.yaml
+++ b/de/heat-templates/fragments/SrvInstancesBM.yaml
@@ -46,6 +46,10 @@
type: string
docker_ee_url:
type: string
+ hardware_metadata:
+ description: The content of lab metadata.
+ default: ''
+ type: string
resources:
@@ -70,6 +74,27 @@
$private_floating_interface_ip: { get_attr: [private_floating_server_port, fixed_ips, 0, ip_address] }
$functions_override: { get_param: functions_override }
+ inject_files:
+ type: "OS::Heat::CloudConfig"
+ properties:
+ cloud_config:
+ write_files:
+ - path: /usr/sbin/prepare-metadata.py
+ owner: "root:root"
+ permissions: "0755"
+ content: {get_file: ../scripts/prepare-metadata.py}
+ - path: /usr/share/metadata/lab-metadata.yaml
+ owner: "root:root"
+ permissions: "0644"
+ content: { get_param: hardware_metadata}
+
+ install_config_agent:
+ type: "OS::Heat::MultipartMime"
+ properties:
+ parts:
+ - config: {get_resource: software_config}
+ - config: {get_resource: inject_files}
+
server:
type: OS::Nova::Server
properties:
@@ -81,8 +106,8 @@
- network: { get_param: accessible_network }
# NOTE(ohryhorov): connect to accessible network only as ironic doesn't
# support multitenancy use-case. Use private_floating_network for IPAM only.
- user_data_format: RAW
- user_data: { get_resource: software_config }
+ user_data_format: SOFTWARE_CONFIG
+ user_data: { get_resource: install_config_agent}
metadata: { get_param: metadata }
private_floating_server_port:
@@ -112,3 +137,6 @@
server_public_ip:
description: Floating IP address of server in public network
value: { get_attr: [server, networks, { get_param: accessible_network}, 0]}
+ wc_data:
+ description: Metadata from instance
+ value: { get_attr: [wait_condition, data]}