Adding Ceph network for baremetal deployment
Related-PROD: PRODX-2799
Change-Id: I396bae0846f58c581a69bab8faad03d3ff82ae6d
diff --git a/de/heat-templates/fragments/SrvInstancesBMCeph.yaml b/de/heat-templates/fragments/SrvInstancesBMCeph.yaml
new file mode 100644
index 0000000..19e6543
--- /dev/null
+++ b/de/heat-templates/fragments/SrvInstancesBMCeph.yaml
@@ -0,0 +1,130 @@
+heat_template_version: queens
+
+parameters:
+
+ metadata:
+ type: json
+ default: {}
+ node_type:
+ type: string
+ key_name:
+ type: string
+ description: Name of keypair to assign to servers
+ image:
+ type: string
+ description: Name of image to use for servers
+ flavor:
+ type: string
+ description: Flavor to use for servers
+ accessible_network:
+ type: string
+ accessible_subnet_id:
+ type: string
+ private_floating_network:
+ type: string
+ private_floating_network_cidr:
+ type: string
+ private_floating_subnet_id:
+ type: string
+ private_floating_interface:
+ type: string
+ storage_frontend_network_cidr:
+ type: string
+ storage_frontend_network:
+ type: string
+ storage_frontend_subnet_id:
+ type: string
+ host_interface:
+ type: string
+ functions_override:
+ type: string
+ boot_timeout:
+ type: number
+ description: Boot timeout for instance
+ default: 1200
+ ucp_master_host:
+ type: string
+ default: ''
+ public_net_id:
+ type: string
+ default: ''
+ docker_ee_release:
+ type: string
+ docker_ee_url:
+ type: string
+
+resources:
+
+ software_config:
+ type: OS::Heat::SoftwareConfig
+ properties:
+ group: ungrouped
+ config:
+ str_replace:
+ template: { get_file: ../scripts/instance_boot.sh }
+ params:
+ $node_type: { get_param: node_type }
+ $wait_condition_notify: { get_attr: [ wait_handle, curl_cli ] }
+ $ucp_license_key: { get_file: ../scripts/license.lic }
+ $docker_ee_url: { get_param: docker_ee_url }
+ $docker_ee_release: { get_param: docker_ee_release }
+ $ucp_master_host: { get_param: ucp_master_host }
+ $node_metadata: { get_param: metadata }
+ $host_interface: { get_param: host_interface }
+ $private_floating_interface: { get_param: private_floating_interface }
+ $private_floating_network_cidr: { get_param: private_floating_network_cidr }
+ $private_floating_interface_ip: { get_attr: [private_floating_server_port, fixed_ips, 0, ip_address] }
+ $functions_override: { get_param: functions_override }
+ $storage_frontend_network_interface_ip: { get_attr: [storage_frontend_server_port, fixed_ips, 0, ip_address] }
+ $storage_frontend_network_cidr: { get_param: storage_frontend_network_cidr }
+
+ server:
+ type: OS::Nova::Server
+ properties:
+ image: { get_param: image }
+ flavor: { get_param: flavor }
+ key_name: { get_param: key_name }
+ availability_zone: nova
+ networks:
+ - 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 }
+ metadata: { get_param: metadata }
+
+ private_floating_server_port:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_param: private_floating_network }
+ port_security_enabled: false
+ fixed_ips:
+ - subnet: { get_param: private_floating_subnet_id }
+
+ storage_frontend_server_port:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_param: storage_frontend_network }
+ port_security_enabled: false
+ fixed_ips:
+ - subnet: { get_param: storage_frontend_subnet_id }
+
+ wait_handle:
+ type: OS::Heat::WaitConditionHandle
+ wait_condition:
+ type: OS::Heat::WaitCondition
+ properties:
+ handle: { get_resource: wait_handle }
+ timeout: { get_param: boot_timeout }
+
+
+outputs:
+ server_private_ip:
+ description: IP address of server in private network
+ value: { get_attr: [server, networks, { get_param: accessible_network}, 0]}
+ server_private_floating_ip:
+ description: IP address of server in private floating network
+ value: { get_attr: [private_floating_server_port, fixed_ips, 0, ip_address] }
+ server_public_ip:
+ description: Floating IP address of server in public network
+ value: { get_attr: [server, networks, { get_param: accessible_network}, 0]}