Add ability to pass hardware metadata
Related-Prod: PRODX-00000
Change-Id: I4c377558ffe13e28f8ac5ced45262ff67556f46c
diff --git a/de/heat-templates/fragments/SrvInstancesBMCephOSD.yaml b/de/heat-templates/fragments/SrvInstancesBMCephOSD.yaml
index 0991319..92fa9c5 100644
--- a/de/heat-templates/fragments/SrvInstancesBMCephOSD.yaml
+++ b/de/heat-templates/fragments/SrvInstancesBMCephOSD.yaml
@@ -62,6 +62,9 @@
type: string
docker_ee_url:
type: string
+ hardware_metadata:
+ description: The content of lab metadata.
+ type: string
resources:
@@ -92,6 +95,27 @@
$storage_backend_network_interface_ip: { get_attr: [storage_backend_server_port, fixed_ips, 0, ip_address] }
$storage_backend_network_cidr: { get_param: storage_backend_network_cidr }
+ 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:
@@ -103,8 +127,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:
@@ -150,3 +174,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]}