Merge "updated heat templates for ceph nodes"
diff --git a/de/heat-templates/env/compute.yaml b/de/heat-templates/env/compute.yaml
index f3008e1..0a2bf60 100644
--- a/de/heat-templates/env/compute.yaml
+++ b/de/heat-templates/env/compute.yaml
@@ -1,7 +1,10 @@
resource_registry:
"MCP2::NetworkAcc": ../fragments/NetworkAccVM.yaml
+ "MCP2::NetworkAccStorage": ../fragments/NetworkAccVMStorage.yaml
"MCP2::NetworkPrvFl": ../fragments/NetworkPrvFl.yaml
"MCP2::SrvInstances": ../fragments/SrvInstancesVM.yaml
+ "MCP2::SrvInstancesCeph": ../fragments/SrvInstancesVMCeph.yaml
+ "MCP2::SrvInstancesCephOSD": ../fragments/SrvInstancesVMCephOSD.yaml
parameters:
image: bionic-server-cloudimg-amd64-20190612
diff --git a/de/heat-templates/env/converged.yaml b/de/heat-templates/env/converged.yaml
index fa9298c..041dfcb 100644
--- a/de/heat-templates/env/converged.yaml
+++ b/de/heat-templates/env/converged.yaml
@@ -1,7 +1,10 @@
resource_registry:
"MCP2::NetworkAcc": ../fragments/NetworkAccVM.yaml
+ "MCP2::NetworkAccStorage": ../fragments/NetworkAccVMStorage.yaml
"MCP2::NetworkPrvFl": ../fragments/NetworkPrvFl.yaml
"MCP2::SrvInstances": ../fragments/SrvInstancesVM.yaml
+ "MCP2::SrvInstancesCeph": ../fragments/SrvInstancesVMCeph.yaml
+ "MCP2::SrvInstancesCephOSD": ../fragments/SrvInstancesVMCephOSD.yaml
parameters:
image: bionic-server-cloudimg-amd64-20190612
diff --git a/de/heat-templates/env/mstr1-wrkr3-cmp0-gtw0-lma3.yaml b/de/heat-templates/env/mstr1-wrkr3-cmp0-gtw0-lma3.yaml
index 46da856..82d6e38 100644
--- a/de/heat-templates/env/mstr1-wrkr3-cmp0-gtw0-lma3.yaml
+++ b/de/heat-templates/env/mstr1-wrkr3-cmp0-gtw0-lma3.yaml
@@ -1,7 +1,10 @@
resource_registry:
"MCP2::NetworkAcc": ../fragments/NetworkAccVM.yaml
+ "MCP2::NetworkAccStorage": ../fragments/NetworkAccVMStorage.yaml
"MCP2::NetworkPrvFl": ../fragments/NetworkPrvFl.yaml
"MCP2::SrvInstances": ../fragments/SrvInstancesVM.yaml
+ "MCP2::SrvInstancesCeph": ../fragments/SrvInstancesVMCeph.yaml
+ "MCP2::SrvInstancesCephOSD": ../fragments/SrvInstancesVMCephOSD.yaml
parameters:
image: bionic-server-cloudimg-amd64-20190612
diff --git a/de/heat-templates/env/mstr1-wrkr3-cmp0-gtw0.yaml b/de/heat-templates/env/mstr1-wrkr3-cmp0-gtw0.yaml
index 80690c6..2d9b1f9 100644
--- a/de/heat-templates/env/mstr1-wrkr3-cmp0-gtw0.yaml
+++ b/de/heat-templates/env/mstr1-wrkr3-cmp0-gtw0.yaml
@@ -1,7 +1,10 @@
resource_registry:
"MCP2::NetworkAcc": ../fragments/NetworkAccVM.yaml
+ "MCP2::NetworkAccStorage": ../fragments/NetworkAccVMStorage.yaml
"MCP2::NetworkPrvFl": ../fragments/NetworkPrvFl.yaml
"MCP2::SrvInstances": ../fragments/SrvInstancesVM.yaml
+ "MCP2::SrvInstancesCeph": ../fragments/SrvInstancesVMCeph.yaml
+ "MCP2::SrvInstancesCephOSD": ../fragments/SrvInstancesVMCephOSD.yaml
parameters:
image: bionic-server-cloudimg-amd64-20190612
diff --git a/de/heat-templates/env/mstr1-wrkr3-cmp2-gtw0-lma3.yaml b/de/heat-templates/env/mstr1-wrkr3-cmp2-gtw0-lma3.yaml
index d71b639..7078c88 100644
--- a/de/heat-templates/env/mstr1-wrkr3-cmp2-gtw0-lma3.yaml
+++ b/de/heat-templates/env/mstr1-wrkr3-cmp2-gtw0-lma3.yaml
@@ -1,7 +1,10 @@
resource_registry:
"MCP2::NetworkAcc": ../fragments/NetworkAccVM.yaml
+ "MCP2::NetworkAccStorage": ../fragments/NetworkAccVMStorage.yaml
"MCP2::NetworkPrvFl": ../fragments/NetworkPrvFl.yaml
"MCP2::SrvInstances": ../fragments/SrvInstancesVM.yaml
+ "MCP2::SrvInstancesCeph": ../fragments/SrvInstancesVMCeph.yaml
+ "MCP2::SrvInstancesCephOSD": ../fragments/SrvInstancesVMCephOSD.yaml
parameters:
image: bionic-server-cloudimg-amd64-20190612
diff --git a/de/heat-templates/env/mstr1-wrkr3-cmp2-gtw0.yaml b/de/heat-templates/env/mstr1-wrkr3-cmp2-gtw0.yaml
index 542a5cd..11ec72e 100644
--- a/de/heat-templates/env/mstr1-wrkr3-cmp2-gtw0.yaml
+++ b/de/heat-templates/env/mstr1-wrkr3-cmp2-gtw0.yaml
@@ -1,7 +1,10 @@
resource_registry:
"MCP2::NetworkAcc": ../fragments/NetworkAccVM.yaml
+ "MCP2::NetworkAccStorage": ../fragments/NetworkAccVMStorage.yaml
"MCP2::NetworkPrvFl": ../fragments/NetworkPrvFl.yaml
"MCP2::SrvInstances": ../fragments/SrvInstancesVM.yaml
+ "MCP2::SrvInstancesCeph": ../fragments/SrvInstancesVMCeph.yaml
+ "MCP2::SrvInstancesCephOSD": ../fragments/SrvInstancesVMCephOSD.yaml
parameters:
image: bionic-server-cloudimg-amd64-20190612
diff --git a/de/heat-templates/env/mstr1-wrkr3-cmp3-gtw0.yaml b/de/heat-templates/env/mstr1-wrkr3-cmp3-gtw0.yaml
index 8952627..90b6992 100644
--- a/de/heat-templates/env/mstr1-wrkr3-cmp3-gtw0.yaml
+++ b/de/heat-templates/env/mstr1-wrkr3-cmp3-gtw0.yaml
@@ -1,7 +1,10 @@
resource_registry:
"MCP2::NetworkAcc": ../fragments/NetworkAccVM.yaml
+ "MCP2::NetworkAccStorage": ../fragments/NetworkAccVMStorage.yaml
"MCP2::NetworkPrvFl": ../fragments/NetworkPrvFl.yaml
"MCP2::SrvInstances": ../fragments/SrvInstancesVM.yaml
+ "MCP2::SrvInstancesCeph": ../fragments/SrvInstancesVMCeph.yaml
+ "MCP2::SrvInstancesCephOSD": ../fragments/SrvInstancesVMCephOSD.yaml
parameters:
image: bionic-server-cloudimg-amd64-20190612
diff --git a/de/heat-templates/env/mstr1-wrkr5-cmp0-gtw0.yaml b/de/heat-templates/env/mstr1-wrkr5-cmp0-gtw0.yaml
index 44ac2b2..2005c00 100644
--- a/de/heat-templates/env/mstr1-wrkr5-cmp0-gtw0.yaml
+++ b/de/heat-templates/env/mstr1-wrkr5-cmp0-gtw0.yaml
@@ -1,7 +1,10 @@
resource_registry:
"MCP2::NetworkAcc": ../fragments/NetworkAccVM.yaml
+ "MCP2::NetworkAccStorage": ../fragments/NetworkAccVMStorage.yaml
"MCP2::NetworkPrvFl": ../fragments/NetworkPrvFl.yaml
"MCP2::SrvInstances": ../fragments/SrvInstancesVM.yaml
+ "MCP2::SrvInstancesCeph": ../fragments/SrvInstancesVMCeph.yaml
+ "MCP2::SrvInstancesCephOSD": ../fragments/SrvInstancesVMCephOSD.yaml
parameters:
image: bionic-server-cloudimg-amd64-20190612
diff --git a/de/heat-templates/env/mstr1-wrkr5-cmp2-gtw0.yaml b/de/heat-templates/env/mstr1-wrkr5-cmp2-gtw0.yaml
index 542a5cd..11ec72e 100644
--- a/de/heat-templates/env/mstr1-wrkr5-cmp2-gtw0.yaml
+++ b/de/heat-templates/env/mstr1-wrkr5-cmp2-gtw0.yaml
@@ -1,7 +1,10 @@
resource_registry:
"MCP2::NetworkAcc": ../fragments/NetworkAccVM.yaml
+ "MCP2::NetworkAccStorage": ../fragments/NetworkAccVMStorage.yaml
"MCP2::NetworkPrvFl": ../fragments/NetworkPrvFl.yaml
"MCP2::SrvInstances": ../fragments/SrvInstancesVM.yaml
+ "MCP2::SrvInstancesCeph": ../fragments/SrvInstancesVMCeph.yaml
+ "MCP2::SrvInstancesCephOSD": ../fragments/SrvInstancesVMCephOSD.yaml
parameters:
image: bionic-server-cloudimg-amd64-20190612
diff --git a/de/heat-templates/env/mstr3-wrkr3-cmp0-gtw0-lma3.yaml b/de/heat-templates/env/mstr3-wrkr3-cmp0-gtw0-lma3.yaml
index bd050b7..90ccdfb 100644
--- a/de/heat-templates/env/mstr3-wrkr3-cmp0-gtw0-lma3.yaml
+++ b/de/heat-templates/env/mstr3-wrkr3-cmp0-gtw0-lma3.yaml
@@ -1,7 +1,10 @@
resource_registry:
"MCP2::NetworkAcc": ../fragments/NetworkAccVM.yaml
+ "MCP2::NetworkAccStorage": ../fragments/NetworkAccVMStorage.yaml
"MCP2::NetworkPrvFl": ../fragments/NetworkPrvFl.yaml
"MCP2::SrvInstances": ../fragments/SrvInstancesVM.yaml
+ "MCP2::SrvInstancesCeph": ../fragments/SrvInstancesVMCeph.yaml
+ "MCP2::SrvInstancesCephOSD": ../fragments/SrvInstancesVMCephOSD.yaml
parameters:
image: bionic-server-cloudimg-amd64-20190612
diff --git a/de/heat-templates/env/mstr3-wrkr3-cmp2-gtw0-lma3-osd3.yaml b/de/heat-templates/env/mstr3-wrkr3-cmp2-gtw0-lma3-osd3.yaml
index 5cd406d..9283426 100644
--- a/de/heat-templates/env/mstr3-wrkr3-cmp2-gtw0-lma3-osd3.yaml
+++ b/de/heat-templates/env/mstr3-wrkr3-cmp2-gtw0-lma3-osd3.yaml
@@ -1,7 +1,10 @@
resource_registry:
"MCP2::NetworkAcc": ../fragments/NetworkAccVM.yaml
+ "MCP2::NetworkAccStorage": ../fragments/NetworkAccVMStorage.yaml
"MCP2::NetworkPrvFl": ../fragments/NetworkPrvFl.yaml
"MCP2::SrvInstances": ../fragments/SrvInstancesVM.yaml
+ "MCP2::SrvInstancesCeph": ../fragments/SrvInstancesVMCeph.yaml
+ "MCP2::SrvInstancesCephOSD": ../fragments/SrvInstancesVMCephOSD.yaml
parameters:
image: bionic-server-cloudimg-amd64-20190612
diff --git a/de/heat-templates/env/mstr3-wrkr3-cmp2-gtw0-lma3.yaml b/de/heat-templates/env/mstr3-wrkr3-cmp2-gtw0-lma3.yaml
index eeb0004..5e84844 100644
--- a/de/heat-templates/env/mstr3-wrkr3-cmp2-gtw0-lma3.yaml
+++ b/de/heat-templates/env/mstr3-wrkr3-cmp2-gtw0-lma3.yaml
@@ -1,7 +1,10 @@
resource_registry:
"MCP2::NetworkAcc": ../fragments/NetworkAccVM.yaml
+ "MCP2::NetworkAccStorage": ../fragments/NetworkAccVMStorage.yaml
"MCP2::NetworkPrvFl": ../fragments/NetworkPrvFl.yaml
"MCP2::SrvInstances": ../fragments/SrvInstancesVM.yaml
+ "MCP2::SrvInstancesCeph": ../fragments/SrvInstancesVMCeph.yaml
+ "MCP2::SrvInstancesCephOSD": ../fragments/SrvInstancesVMCephOSD.yaml
parameters:
image: bionic-server-cloudimg-amd64-20190612
diff --git a/de/heat-templates/env/mstr3-wrkr3-cmp2-gtw3-lma3-osd3.yaml b/de/heat-templates/env/mstr3-wrkr3-cmp2-gtw3-lma3-osd3.yaml
index d4465ca..2f17823 100644
--- a/de/heat-templates/env/mstr3-wrkr3-cmp2-gtw3-lma3-osd3.yaml
+++ b/de/heat-templates/env/mstr3-wrkr3-cmp2-gtw3-lma3-osd3.yaml
@@ -1,7 +1,10 @@
resource_registry:
"MCP2::NetworkAcc": ../fragments/NetworkAccVM.yaml
+ "MCP2::NetworkAccStorage": ../fragments/NetworkAccVMStorage.yaml
"MCP2::NetworkPrvFl": ../fragments/NetworkPrvFl.yaml
"MCP2::SrvInstances": ../fragments/SrvInstancesVM.yaml
+ "MCP2::SrvInstancesCeph": ../fragments/SrvInstancesVMCeph.yaml
+ "MCP2::SrvInstancesCephOSD": ../fragments/SrvInstancesVMCephOSD.yaml
parameters:
image: bionic-server-cloudimg-amd64-20190612
diff --git a/de/heat-templates/env/mstr3-wrkr3-cmp2-gtw3-lma3.yaml b/de/heat-templates/env/mstr3-wrkr3-cmp2-gtw3-lma3.yaml
index 9c87fb9..42ef343 100644
--- a/de/heat-templates/env/mstr3-wrkr3-cmp2-gtw3-lma3.yaml
+++ b/de/heat-templates/env/mstr3-wrkr3-cmp2-gtw3-lma3.yaml
@@ -1,7 +1,10 @@
resource_registry:
"MCP2::NetworkAcc": ../fragments/NetworkAccVM.yaml
+ "MCP2::NetworkAccStorage": ../fragments/NetworkAccVMStorage.yaml
"MCP2::NetworkPrvFl": ../fragments/NetworkPrvFl.yaml
"MCP2::SrvInstances": ../fragments/SrvInstancesVM.yaml
+ "MCP2::SrvInstancesCeph": ../fragments/SrvInstancesVMCeph.yaml
+ "MCP2::SrvInstancesCephOSD": ../fragments/SrvInstancesVMCephOSD.yaml
parameters:
image: bionic-server-cloudimg-amd64-20190612
diff --git a/de/heat-templates/env/mstr3-wrkr3-cmp2-lma3-osd3-ntw3.yaml b/de/heat-templates/env/mstr3-wrkr3-cmp2-lma3-osd3-ntw3.yaml
index 4f88206..c22df52 100644
--- a/de/heat-templates/env/mstr3-wrkr3-cmp2-lma3-osd3-ntw3.yaml
+++ b/de/heat-templates/env/mstr3-wrkr3-cmp2-lma3-osd3-ntw3.yaml
@@ -1,7 +1,10 @@
resource_registry:
"MCP2::NetworkAcc": ../fragments/NetworkAccVM.yaml
+ "MCP2::NetworkAccStorage": ../fragments/NetworkAccVMStorage.yaml
"MCP2::NetworkPrvFl": ../fragments/NetworkPrvFl.yaml
"MCP2::SrvInstances": ../fragments/SrvInstancesVM.yaml
+ "MCP2::SrvInstancesCeph": ../fragments/SrvInstancesVMCeph.yaml
+ "MCP2::SrvInstancesCephOSD": ../fragments/SrvInstancesVMCephOSD.yaml
parameters:
image: bionic-server-cloudimg-amd64-20190612
diff --git a/de/heat-templates/env/mstr3-wrkr6-cmp3-osd3.yaml b/de/heat-templates/env/mstr3-wrkr6-cmp3-osd3.yaml
index 70da5a9..40fb08f 100644
--- a/de/heat-templates/env/mstr3-wrkr6-cmp3-osd3.yaml
+++ b/de/heat-templates/env/mstr3-wrkr6-cmp3-osd3.yaml
@@ -1,7 +1,10 @@
resource_registry:
"MCP2::NetworkAcc": ../fragments/NetworkAccVM.yaml
+ "MCP2::NetworkAccStorage": ../fragments/NetworkAccVMStorage.yaml
"MCP2::NetworkPrvFl": ../fragments/NetworkPrvFl.yaml
"MCP2::SrvInstances": ../fragments/SrvInstancesVM.yaml
+ "MCP2::SrvInstancesCeph": ../fragments/SrvInstancesVMCeph.yaml
+ "MCP2::SrvInstancesCephOSD": ../fragments/SrvInstancesVMCephOSD.yaml
parameters:
image: bionic-server-cloudimg-amd64-20190612
diff --git a/de/heat-templates/env/telco.yaml b/de/heat-templates/env/telco.yaml
index ff8aec4..e884ddb 100644
--- a/de/heat-templates/env/telco.yaml
+++ b/de/heat-templates/env/telco.yaml
@@ -1,7 +1,10 @@
resource_registry:
"MCP2::NetworkAcc": ../fragments/NetworkAccVM.yaml
+ "MCP2::NetworkAccStorage": ../fragments/NetworkAccVMStorage.yaml
"MCP2::NetworkPrvFl": ../fragments/NetworkPrvFl.yaml
"MCP2::SrvInstances": ../fragments/SrvInstancesVM.yaml
+ "MCP2::SrvInstancesCeph": ../fragments/SrvInstancesVMCeph.yaml
+ "MCP2::SrvInstancesCephOSD": ../fragments/SrvInstancesVMCephOSD.yaml
parameters:
image: bionic-server-cloudimg-amd64-20190612
diff --git a/de/heat-templates/fragments/NetworkAccVMStorage.yaml b/de/heat-templates/fragments/NetworkAccVMStorage.yaml
new file mode 100644
index 0000000..154976f
--- /dev/null
+++ b/de/heat-templates/fragments/NetworkAccVMStorage.yaml
@@ -0,0 +1,39 @@
+heat_template_version: queens
+
+parameters:
+ storage_backend_network_cidr:
+ type: string
+ storage_frontend_network_cidr:
+ type: string
+
+resources:
+
+ storage_backend_network:
+ type: OS::Neutron::Net
+ storage_backend_subnet:
+ type: OS::Neutron::Subnet
+ properties:
+ network: { get_resource: storage_backend_network }
+ enable_dhcp: true
+ cidr: { get_param: storage_backend_network_cidr }
+ gateway_ip: ~
+
+ storage_frontend_network:
+ type: OS::Neutron::Net
+ storage_frontend_subnet:
+ type: OS::Neutron::Subnet
+ properties:
+ network: { get_resource: storage_frontend_network }
+ enable_dhcp: true
+ cidr: { get_param: storage_frontend_network_cidr }
+ gateway_ip: ~
+
+outputs:
+ storage_backend_network_id:
+ value: { get_resource: storage_backend_network }
+ storage_backend_subnet_id:
+ value: { get_resource: storage_backend_subnet }
+ storage_frontend_network_id:
+ value: { get_resource: storage_frontend_network }
+ storage_frontend_subnet_id:
+ value: { get_resource: storage_frontend_subnet }
diff --git a/de/heat-templates/fragments/SrvInstancesVMCeph.yaml b/de/heat-templates/fragments/SrvInstancesVMCeph.yaml
new file mode 100644
index 0000000..12bdc2b
--- /dev/null
+++ b/de/heat-templates/fragments/SrvInstancesVMCeph.yaml
@@ -0,0 +1,138 @@
+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:
+ 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
+ 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_interface_ip: { get_attr: [private_floating_server_port, fixed_ips, 0, ip_address] }
+ $private_floating_network_cidr: { get_param: private_floating_network_cidr }
+ $functions_override: { get_param: functions_override }
+
+ server:
+ type: OS::Nova::Server
+ properties:
+ image: { get_param: image }
+ flavor: { get_param: flavor }
+ key_name: { get_param: key_name }
+ availability_zone: nova
+ networks:
+ - port: { get_resource: accessible_server_port }
+ - port: { get_resource: private_floating_server_port }
+ - port: { get_resource: storage_frontend_server_port }
+ user_data_format: RAW
+ user_data: { get_resource: software_config }
+ metadata: { get_param: metadata }
+
+ accessible_server_port:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_param: accessible_network }
+ port_security_enabled: false
+ fixed_ips:
+ - subnet: { get_param: accessible_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 }
+
+ 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 }
+
+ server_floating_ip:
+ type: OS::Neutron::FloatingIP
+ properties:
+ floating_network_id: { get_param: public_net_id }
+ port_id: { get_resource: accessible_server_port }
+
+ 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_floating_ip, floating_ip_address ] }
diff --git a/de/heat-templates/fragments/SrvInstancesVMCephOSD.yaml b/de/heat-templates/fragments/SrvInstancesVMCephOSD.yaml
new file mode 100644
index 0000000..51d5228
--- /dev/null
+++ b/de/heat-templates/fragments/SrvInstancesVMCephOSD.yaml
@@ -0,0 +1,151 @@
+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_backend_network:
+ type: string
+ storage_backend_subnet_id:
+ 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
+ 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_interface_ip: { get_attr: [private_floating_server_port, fixed_ips, 0, ip_address] }
+ $private_floating_network_cidr: { get_param: private_floating_network_cidr }
+ $functions_override: { get_param: functions_override }
+
+ server:
+ type: OS::Nova::Server
+ properties:
+ image: { get_param: image }
+ flavor: { get_param: flavor }
+ key_name: { get_param: key_name }
+ availability_zone: nova
+ networks:
+ - port: { get_resource: accessible_server_port }
+ - port: { get_resource: private_floating_server_port }
+ - port: { get_resource: storage_backend_server_port }
+ - port: { get_resource: storage_frontend_server_port }
+ user_data_format: RAW
+ user_data: { get_resource: software_config }
+ metadata: { get_param: metadata }
+
+ accessible_server_port:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_param: accessible_network }
+ port_security_enabled: false
+ fixed_ips:
+ - subnet: { get_param: accessible_subnet_id }
+
+ storage_backend_server_port:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_param: storage_backend_network }
+ port_security_enabled: false
+ fixed_ips:
+ - subnet: { get_param: storage_backend_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 }
+
+ 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 }
+
+ server_floating_ip:
+ type: OS::Neutron::FloatingIP
+ properties:
+ floating_network_id: { get_param: public_net_id }
+ port_id: { get_resource: accessible_server_port }
+
+ 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_floating_ip, floating_ip_address ] }
diff --git a/de/heat-templates/top.yaml b/de/heat-templates/top.yaml
index d3c3a1c..397a75e 100644
--- a/de/heat-templates/top.yaml
+++ b/de/heat-templates/top.yaml
@@ -70,6 +70,12 @@
private_floating_interface:
description: Interface which carries floating network for child OpenStack.
type: string
+ storage_backend_network_cidr:
+ type: string
+ default: '10.11.0.0/24'
+ storage_frontend_network_cidr:
+ type: string
+ default: '10.12.0.0/24'
worker_metadata:
type: json
default: {}
@@ -108,7 +114,7 @@
default: 'system.compact.openstack.control'
osds_flavor:
type: string
- default: 'system.compact.openstack.control'
+ default: 'system.virtual.ceph.osd'
ntws_flavor:
type: string
default: 'system.compact.openstack.control'
@@ -151,8 +157,16 @@
private_floating_network_ipam_pool_start: { get_param: private_floating_network_ipam_pool_start }
private_floating_network_ipam_pool_end: { get_param: private_floating_network_ipam_pool_end }
+ storage_network:
+ type: MCP2::NetworkAccStorage
+ properties:
+ storage_backend_network_cidr: { get_param: storage_backend_network_cidr }
+ storage_frontend_network_cidr: { get_param: storage_frontend_network_cidr }
+
ucp:
- depends_on: accessible_network
+ depends_on:
+ - accessible_network
+ - storage_network
type: MCP2::SrvInstances
properties:
metadata: {"role":"ucp"}
@@ -208,22 +222,26 @@
properties:
count: { get_param: worker_size }
resource_def:
- type: MCP2::SrvInstances
+ type: MCP2::SrvInstancesCephOSD
properties:
metadata: { get_param: worker_metadata}
node_type: "worker"
key_name: { get_param: "OS::stack_name" }
image: { get_param: image }
- flavor: { get_param: workers_flavor }
+ flavor: { get_param: osds_flavor }
key_name: { get_param: "OS::stack_name" }
docker_ee_url: { get_param: docker_ee_url }
docker_ee_release: { get_param: docker_ee_release }
accessible_network: { get_attr: [accessible_network, public_network] }
+ storage_backend_network: { get_attr: [storage_network, storage_backend_network_id]}
+ storage_frontend_network: { get_attr: [storage_network, storage_frontend_network_id]}
private_floating_network: { get_attr: [private_floating_network, private_floating_network_id] }
private_floating_subnet_id: { get_attr: [private_floating_network, private_floating_subnet_id] }
private_floating_interface: { get_param: private_floating_interface }
private_floating_network_cidr: { get_param: private_floating_network_cidr }
accessible_subnet_id: { get_attr: [accessible_network, accessible_subnet_id]}
+ storage_backend_subnet_id: { get_attr: [storage_network, storage_backend_subnet_id]}
+ storage_frontend_subnet_id: { get_attr: [storage_network, storage_frontend_subnet_id]}
public_net_id: { get_param: public_net_id }
host_interface: { get_param: host_interface }
ucp_master_host: { get_attr: [ucp, server_private_ip] }
@@ -236,21 +254,25 @@
properties:
count: { get_param: cmp_size }
resource_def:
- type: MCP2::SrvInstances
+ type: MCP2::SrvInstancesCephOSD
properties:
metadata: { get_param: cmp_metadata }
node_type: "worker"
key_name: { get_param: "OS::stack_name" }
image: { get_param: image }
- flavor: { get_param: cmps_flavor }
+ flavor: { get_param: osds_flavor }
docker_ee_url: { get_param: docker_ee_url }
docker_ee_release: { get_param: docker_ee_release }
accessible_network: { get_attr: [accessible_network, public_network] }
+ storage_backend_network: { get_attr: [storage_network, storage_backend_network_id] }
+ storage_frontend_network: { get_attr: [storage_network, storage_frontend_network_id] }
private_floating_network: { get_attr: [private_floating_network, private_floating_network_id] }
private_floating_subnet_id: { get_attr: [private_floating_network, private_floating_subnet_id] }
private_floating_interface: { get_param: private_floating_interface }
private_floating_network_cidr: { get_param: private_floating_network_cidr }
accessible_subnet_id: { get_attr: [accessible_network, accessible_subnet_id]}
+ storage_backend_subnet_id: { get_attr: [storage_network, storage_backend_subnet_id]}
+ storage_frontend_subnet_id: { get_attr: [storage_network, storage_frontend_subnet_id]}
public_net_id: { get_param: public_net_id }
host_interface: { get_param: host_interface }
ucp_master_host: { get_attr: [ucp, server_private_ip] }
@@ -290,7 +312,7 @@
properties:
count: { get_param: lma_size }
resource_def:
- type: MCP2::SrvInstances
+ type: MCP2::SrvInstancesCeph
properties:
metadata: { get_param: lma_metadata }
node_type: "worker"
@@ -300,11 +322,13 @@
docker_ee_url: { get_param: docker_ee_url }
docker_ee_release: { get_param: docker_ee_release }
accessible_network: { get_attr: [accessible_network, public_network] }
+ storage_frontend_network: { get_attr: [storage_network, storage_frontend_network_id] }
private_floating_network: { get_attr: [private_floating_network, private_floating_network_id] }
private_floating_subnet_id: { get_attr: [private_floating_network, private_floating_subnet_id] }
private_floating_interface: { get_param: private_floating_interface }
private_floating_network_cidr: { get_param: private_floating_network_cidr }
accessible_subnet_id: { get_attr: [accessible_network, accessible_subnet_id]}
+ storage_frontend_subnet_id: { get_attr: [storage_network, storage_frontend_subnet_id]}
public_net_id: { get_param: public_net_id }
host_interface: { get_param: host_interface }
ucp_master_host: { get_attr: [ucp, server_private_ip] }
@@ -317,7 +341,7 @@
properties:
count: { get_param: osd_size }
resource_def:
- type: MCP2::SrvInstances
+ type: MCP2::SrvInstancesCephOSD
properties:
metadata: { get_param: osd_metadata }
node_type: "worker"
@@ -327,11 +351,15 @@
docker_ee_url: { get_param: docker_ee_url }
docker_ee_release: { get_param: docker_ee_release }
accessible_network: { get_attr: [accessible_network, public_network] }
+ storage_backend_network: { get_attr: [storage_network, storage_backend_network_id] }
+ storage_frontend_network: { get_attr: [storage_network, storage_frontend_network_id] }
private_floating_network: { get_attr: [private_floating_network, private_floating_network_id] }
private_floating_subnet_id: { get_attr: [private_floating_network, private_floating_subnet_id] }
private_floating_interface: { get_param: private_floating_interface }
private_floating_network_cidr: { get_param: private_floating_network_cidr }
accessible_subnet_id: { get_attr: [accessible_network, accessible_subnet_id]}
+ storage_backend_subnet_id: { get_attr: [storage_network, storage_backend_subnet_id]}
+ storage_frontend_subnet_id: { get_attr: [storage_network, storage_frontend_subnet_id]}
public_net_id: { get_param: public_net_id }
host_interface: { get_param: host_interface }
ucp_master_host: { get_attr: [ucp, server_private_ip] }