Add context with advanced computes
The patch adds context which adds compute
nodes with advanced computing features
Related-PROD: PRODX-8314
Change-Id: Ib516dac4f3079fa35223c6430b208c1bad991490
diff --git a/de/heat-templates/env/mstr1-wrkr3-cmp3-acmp2-gtw0.yaml b/de/heat-templates/env/mstr1-wrkr3-cmp3-acmp2-gtw0.yaml
new file mode 100644
index 0000000..b6a60b1
--- /dev/null
+++ b/de/heat-templates/env/mstr1-wrkr3-cmp3-acmp2-gtw0.yaml
@@ -0,0 +1,53 @@
+resource_registry:
+ "MCP2::NetworkAcc": ../fragments/NetworkAccVM.yaml
+ "MCP2::NetworkAccStorage": ../fragments/NetworkAccVMStorage.yaml
+ "MCP2::NetworkPrvFl": ../fragments/NetworkPrvFl.yaml
+ "MCP2::NetworkIronicFlat": ../fragments/NetworkIronicFlat.yaml
+ "MCP2::SrvInstances": ../fragments/SrvInstancesVM.yaml
+ "MCP2::SrvInstancesCeph": ../fragments/SrvInstancesVMCeph.yaml
+ "MCP2::SrvInstancesCephOSD": ../fragments/SrvInstancesVMCephOSD.yaml
+
+parameters:
+ image: bionic-server-cloudimg-amd64-20190612
+ public_net_id: public
+ masters_size: 0
+ worker_size: 3
+ cmp_size: 3
+ #number of computes with advanced high computing (NUMA, dpdk etc.)
+ acmp_size: 2
+ gtw_size: 0
+ lma_size: 0
+ osd_size: 0
+ ucp_boot_timeout: 3600
+ cluster_public_key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCp0evjOaK8c8SKYK4r2+0BN7g+8YSvQ2n8nFgOURCyvkJqOHi1qPGZmuN0CclYVdVuZiXbWw3VxRbSW3EH736VzgY1U0JmoTiSamzLHaWsXvEIW8VCi7boli539QJP0ikJiBaNAgZILyCrVPN+A6mfqtacs1KXdZ0zlMq1BPtFciR1JTCRcVs5vP2Wwz5QtY2jMIh3aiwkePjMTQPcfmh1TkOlxYu5IbQyZ3G1ahA0mNKI9a0dtF282av/F6pwB/N1R1nEZ/9VtcN2I1mf1NW/tTHEEcTzXYo1R/8K9vlqAN8QvvGLZtZduGviNVNoNWvoxaXxDt8CPv2B2NCdQFZp
+ private_floating_network_cidr: '10.11.12.0/24'
+ private_floating_interface: 'ens4'
+ worker_metadata: {"labels": {"openstack-control-plane":"enabled","openvswitch":"enabled","openstack-gateway":"enabled","role":"ceph-osd-node","local-volume-provisioner": "enabled"}}
+ cmp_metadata: {"labels": {"openstack-compute-node":"enabled","openvswitch":"enabled", "role":"ceph-osd-node"}}
+ acmp_metadata: {"labels": {"openstack-compute-node":"enabled","openvswitch":"enabled"}}
+ gtw_metadata: {"labels": {"openvswitch":"enabled"}}
+ # hardware_metadata which is used for Ceph requires flavor with
+ # ephemeral storage because it is used for Ceph bluestore.
+ workers_flavor: 'system.compact.openstack.control.ephemeral'
+ cmps_flavor: 'system.compact.openstack.control.ephemeral'
+ acmps_flavor: 'system.compact.openstack.control.ephemeral.numa'
+ storage_frontend_network_cidr: '10.12.1.0/24'
+ storage_backend_network_cidr: '10.12.0.0/24'
+ hardware_metadata: |
+ '00:00:00:00:00:00':
+ write_files:
+ - path: /usr/share/metadata/ceph.yaml
+ content: |
+ storageDevices:
+ - name: vdb
+ role: hdd
+ sizeGb: 20
+ ramGb: 8
+ cores: 2
+ # The roles will be assigned based on node labels.
+ # roles:
+ # - mon
+ # - mgr
+ ips:
+ - 192.168.122.101
+ crushPath: {}
diff --git a/de/heat-templates/top.yaml b/de/heat-templates/top.yaml
index 58b634e..1dbc91c 100644
--- a/de/heat-templates/top.yaml
+++ b/de/heat-templates/top.yaml
@@ -34,6 +34,10 @@
type: number
description: Number of cmp workers to deploy
default: 0
+ acmp_size:
+ type: number
+ description: Number of advanced cmp workers to deploy
+ default: 0
gtw_size:
type: number
description: Number of gtw workers to deploy
@@ -171,6 +175,9 @@
cmp_metadata:
type: json
default: {}
+ acmp_metadata:
+ type: json
+ default: {}
gtw_metadata:
type: json
default: {}
@@ -201,6 +208,9 @@
cmps_flavor:
type: string
default: 'system.compact.openstack.control'
+ acmps_flavor:
+ type: string
+ default: 'system.compact.openstack.control.ephemeral.numa'
gtws_flavor:
type: string
default: 'system.compact.openstack.control'
@@ -443,6 +453,51 @@
tf_data_subnet_id: {if: ["create_tf_data_network_res", { get_attr: [tf_data_network, tf_data_subnet_id] }, ""]}
hardware_metadata: { get_param: hardware_metadata}
+ acmps:
+ type: OS::Heat::ResourceGroup
+ depends_on:
+ - ucp
+ properties:
+ count: { get_param: acmp_size }
+ resource_def:
+ type: MCP2::SrvInstancesCephOSD
+ properties:
+ metadata: { get_param: acmp_metadata }
+ node_type: "worker"
+ key_name: { get_param: "OS::stack_name" }
+ image: { get_param: image }
+ flavor: { get_param: acmps_flavor }
+ docker_ee_url: { get_param: docker_ee_url }
+ docker_ee_release: { get_param: docker_ee_release }
+ docker_ucp_image: { get_param: docker_ucp_image}
+ accessible_network: { get_attr: [accessible_network, public_network] }
+ 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]}
+ public_net_id: { get_param: public_net_id }
+ control_network_cidr: { get_param: control_network_cidr }
+ ucp_master_host: { get_attr: [ucp, server_private_ip] }
+ functions_override: { get_param: functions_override }
+ storage_frontend_interface: { get_param: storage_frontend_interface }
+ storage_frontend_network: { get_attr: [storage_network, storage_frontend_network_id] }
+ storage_frontend_subnet_id: { get_attr: [storage_network, storage_frontend_subnet_id] }
+ storage_frontend_network_cidr: { get_param: storage_frontend_network_cidr }
+ storage_backend_interface: { get_param: storage_backend_interface }
+ storage_backend_network: { get_attr: [storage_network, storage_backend_network_id] }
+ storage_backend_subnet_id: { get_attr: [storage_network, storage_backend_subnet_id] }
+ storage_backend_network_cidr: { get_param: storage_backend_network_cidr }
+ ironic_baremetal_network: { get_attr: [ironic_baremetal_network, ironic_baremetal_network_id] }
+ ironic_baremetal_subnet_id: { get_attr: [ironic_baremetal_network, ironic_baremetal_subnet_id] }
+ ironic_baremetal_network_cidr: { get_param: ironic_baremetal_network_cidr }
+ ironic_baremetal_tunnel_cidr: { get_param: ironic_baremetal_tunnel_cidr }
+ ironic_mt_enabled: { get_param: ironic_mt_enabled }
+ tungstenfabric_enabled: { get_param: tungstenfabric_enabled }
+ tf_data_network: {if: ["create_tf_data_network_res", { get_attr: [tf_data_network, tf_data_network_id] }, ""]}
+ tf_data_subnet_id: {if: ["create_tf_data_network_res", { get_attr: [tf_data_network, tf_data_subnet_id] }, ""]}
+ hardware_metadata: { get_param: hardware_metadata}
+
gtws:
type: OS::Heat::ResourceGroup
depends_on:
@@ -698,6 +753,9 @@
cmps_ips:
description: Private IP addresses of the deployed cmp instances
value: { get_attr: [cmps, server_public_ip] }
+ acmps_ips:
+ description: Private IP addresses of the deployed cmp instances with high computing features
+ value: { get_attr: [acmps, server_public_ip] }
gtws_ips:
description: Private IP addresses of the deployed gtw instances
value: { get_attr: [gtws, server_public_ip] }
@@ -762,6 +820,9 @@
cmps_wc_data:
description: Metadata from cmps
value: { get_attr: [cmps, wc_data] }
+ acmps_wc_data:
+ description: Metadata from cmps with high computing features
+ value: { get_attr: [acmps, wc_data] }
gtws_wc_data:
description: Metadata from gtws
value: { get_attr: [gtws, wc_data] }
@@ -784,4 +845,4 @@
value: { get_param: tungstenfabric_enabled }
data_network_vsrx_ip:
description: IP address of vsrx in tungsten fabric data network
- value: { get_param: data_network_vsrx_ip }
\ No newline at end of file
+ value: { get_param: data_network_vsrx_ip }