Add multirack context
Related-Prod: PRODX-3456
Change-Id: If9a79e0727407a759b42bbdcc74d597226cae3bb
diff --git a/de/heat-templates/multirack.yaml b/de/heat-templates/multirack.yaml
new file mode 100644
index 0000000..6886747
--- /dev/null
+++ b/de/heat-templates/multirack.yaml
@@ -0,0 +1,218 @@
+heat_template_version: queens
+
+parameters:
+ image:
+ type: string
+ description: Name of image to use for servers
+ public_net_id:
+ type: string
+ default: ''
+ description: >
+ ID of public network for which floating IP addresses will be allocated/
+ for baremetal case flat provision network for nodes
+ lab_network_cidr:
+ type: string
+ default: '10.0.0.0/8'
+ main_network_cidr:
+ type: string
+ default: '10.0.0.0/16'
+ main_control_network_cidr:
+ type: string
+ description: The CIDR of control network, used to detect control interface.
+ default: '10.0.1.0/24'
+ main_tunnel_network_cidr:
+ type: string
+ default: '10.0.2.0/24'
+ main_storage_frontend_network_cidr:
+ type: string
+ default: '10.0.3.0/24'
+ main_storage_backend_network_cidr:
+ type: string
+ default: '10.0.4.0/24'
+ main_private_floating_network_cidr:
+ type: string
+ default: '10.0.5.0/24'
+ main_private_floating_network_interface:
+ type: string
+ default: 'ens4'
+ rack01_network_cidr:
+ type: string
+ default: '10.1.0.0/16'
+ rack01_control_network_cidr:
+ type: string
+ description: The CIDR of control network, used to detect control interface.
+ default: '10.1.1.0/24'
+ rack01_central_router_uplink_network_cidr:
+ type: string
+ default: '192.168.0.0/28'
+ rack02_network_cidr:
+ type: string
+ default: '10.2.0.0/16'
+ rack02_control_network_cidr:
+ type: string
+ description: The CIDR of control network, used to detect control interface.
+ default: '10.2.1.0/24'
+ rack02_central_router_uplink_network_cidr:
+ type: string
+ default: '192.168.0.16/28'
+ main_worker_size:
+ type: number
+ description: Number of workers to deploy
+ default: 3
+ rack01_cmp_size:
+ type: number
+ description: Number of cmp workers to deploy
+ default: 0
+ rack02_cmp_size:
+ type: number
+ description: Number of cmp workers to deploy
+ default: 0
+ cluster_public_key:
+ type: string
+ ucp_metadata:
+ type: json
+ default: {"role":"ucp"}
+ main_worker_metadata:
+ type: json
+ default: {}
+ rack01_cmp_metadata:
+ type: json
+ default: {}
+ rack02_cmp_metadata:
+ type: json
+ default: {}
+ ucp_flavor:
+ type: string
+ default: 'kaas-bm.worker'
+ main_worker_flavor:
+ type: string
+ default: 'system.compact.openstack.control'
+ rack01_cmp_flavor:
+ type: string
+ default: 'system.compact.openstack.control'
+ rack02_cmp_flavor:
+ type: string
+ default: 'system.compact.openstack.control'
+ docker_ee_url:
+ type: string
+ default: 'http://mirror-us.mcp.mirantis.net/.snapshots/docker-ee-bionic-latest'
+# default: 'https://s3-us-west-2.amazonaws.com/internal-docker-ee-builds/docker-ee-linux/ubuntu'
+ docker_ee_release:
+ type: string
+ default: 'stable-19.03'
+ docker_ucp_image:
+ type: string
+ default: 'docker/ucp:3.2.4'
+ tunnel_interface:
+ type: string
+ default: ''
+ main_worker_hardware_metadata:
+ type: string
+ default: ''
+
+resources:
+ keypair_name:
+ type: OS::Heat::RandomString
+ properties:
+ character_classes: [{"class": "hexdigits", "min": 1}]
+ length: 128
+ salt: constant
+ key_pair:
+ type: OS::Nova::KeyPair
+ properties:
+ name: { get_attr: [keypair_name, value] }
+ public_key: { get_param: cluster_public_key }
+ save_private_key: false
+
+ central_site:
+ type: MCP2::CentralSite
+ properties:
+ ucp_metadata: { get_param: ucp_metadata}
+ docker_ee_url: { get_param: docker_ee_url }
+ docker_ee_release: { get_param: docker_ee_release }
+ docker_ucp_image: { get_param: docker_ucp_image}
+ key_name: { get_attr: [keypair_name, value] }
+ image: { get_param: image }
+ ucp_flavor: { get_param: ucp_flavor }
+ public_net_id: { get_param: public_net_id }
+ control_network_cidr: { get_param: main_control_network_cidr }
+ tunnel_network_cidr: { get_param: main_tunnel_network_cidr }
+ storage_frontend_network_cidr: { get_param: main_storage_frontend_network_cidr }
+ storage_backend_network_cidr: { get_param: main_storage_backend_network_cidr }
+ private_floating_network_cidr: { get_param: main_private_floating_network_cidr }
+ private_floating_network_interface: { get_param: main_private_floating_network_interface }
+ worker_size: { get_param: main_worker_size }
+ worker_flavor: { get_param: main_worker_flavor }
+ worker_metadata: { get_param: main_worker_metadata }
+ worker_hardware_metadata: { get_param: main_worker_hardware_metadata }
+
+ rack01_router_routes:
+ type: MCP2::RackRouterRoutes
+ properties:
+ central_router: { get_attr: [central_site, router_id] }
+ central_router_uplink_network_cidr: { get_param: rack01_central_router_uplink_network_cidr }
+ site_cidr: { get_param: rack01_network_cidr }
+ lab_network_cidr: { get_param: lab_network_cidr }
+ public_net_id: { get_param: public_net_id }
+
+ rack01:
+ depends_on:
+ - central_site
+ type: MCP2::Rack
+ properties:
+ docker_ee_url: { get_param: docker_ee_url }
+ docker_ee_release: { get_param: docker_ee_release }
+ docker_ucp_image: { get_param: docker_ucp_image}
+ key_name: { get_attr: [keypair_name, value] }
+ image: { get_param: image }
+ public_net_id: { get_param: public_net_id }
+ control_network_cidr: { get_param: rack01_control_network_cidr }
+ cmp_size: { get_param: rack01_cmp_size }
+ cmp_flavor: { get_param: rack01_cmp_flavor }
+ cmp_metadata: { get_param: rack01_cmp_metadata }
+ ucp_master_host: { get_attr: [central_site, ucp_control_ip] }
+ rack_router: {get_attr: [rack01_router_routes, router_id] }
+
+ rack02_router_routes:
+ depends_on:
+ - rack01_router_routes
+ type: MCP2::RackRouterRoutes
+ properties:
+ central_router: { get_attr: [central_site, router_id] }
+ central_router_uplink_network_cidr: { get_param: rack02_central_router_uplink_network_cidr }
+ site_cidr: { get_param: rack02_network_cidr }
+ lab_network_cidr: { get_param: lab_network_cidr }
+ public_net_id: { get_param: public_net_id }
+
+ rack02:
+ depends_on:
+ - central_site
+ type: MCP2::Rack
+ properties:
+ docker_ee_url: { get_param: docker_ee_url }
+ docker_ee_release: { get_param: docker_ee_release }
+ docker_ucp_image: { get_param: docker_ucp_image}
+ key_name: { get_attr: [keypair_name, value] }
+ image: { get_param: image }
+ public_net_id: { get_param: public_net_id }
+ control_network_cidr: { get_param: rack02_control_network_cidr }
+ cmp_size: { get_param: rack02_cmp_size }
+ cmp_flavor: { get_param: rack02_cmp_flavor }
+ cmp_metadata: { get_param: rack02_cmp_metadata }
+ ucp_master_host: { get_attr: [central_site, ucp_control_ip] }
+ rack_router: {get_attr: [rack02_router_routes, router_id] }
+
+outputs:
+ central_site_worker_public_ip:
+ description: IP address of server in private network
+ value: { get_attr: [central_site, worker_public_ip] }
+ ucp_public_ip:
+ description: IP address of server in private network
+ value: { get_attr: [central_site, ucp_public_ip] }
+ central_site_worker_wc_data:
+ description: Metadata from instance
+ value: { get_attr: [central_site, worker_wc_data]}
+ rack01_cmp_public_ip:
+ value: { get_attr: [rack01, cmp_public_ip] }
+ rack02_cmp_public_ip:
+ value: { get_attr: [rack02, cmp_public_ip] }