| heat_template_version: queens |
| |
| parameters: |
| 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 |
| public_net_id: |
| type: string |
| description: > |
| ID of public network for which floating IP addresses will be allocated |
| masters_size: |
| type: number |
| description: Number of masters instances to deploy |
| default: 2 |
| worker_size: |
| type: number |
| description: Number of workers to deploy |
| default: 5 |
| cmp_size: |
| type: number |
| description: Number of cmp workers to deploy |
| default: 0 |
| gtw_size: |
| type: number |
| description: Number of gtw workers to deploy |
| default: 0 |
| ucp_boot_timeout: |
| type: number |
| description: Boot timeout for UCP instance |
| default: 1200 |
| cluster_public_key: |
| type: string |
| worker_metadata: |
| type: json |
| cmp_metadata: |
| type: json |
| gtw_metadata: |
| type: json |
| |
| resources: |
| key_pair: |
| type: OS::Nova::KeyPair |
| properties: |
| name: { get_param: "OS::stack_name" } |
| public_key: { get_param: cluster_public_key} |
| save_private_key: false |
| |
| network: |
| type: OS::Neutron::Net |
| subnet: |
| type: OS::Neutron::Subnet |
| properties: |
| network: { get_resource: network } |
| cidr: 10.10.0.0/24 |
| dns_nameservers: |
| - 172.18.224.6 |
| - 172.18.176.6 |
| router: |
| type: OS::Neutron::Router |
| properties: |
| external_gateway_info: |
| network: { get_param: public_net_id } |
| router_iface: |
| type: OS::Neutron::RouterInterface |
| properties: |
| router: { get_resource: router } |
| subnet: { get_resource: subnet } |
| |
| private_floating_network: |
| type: OS::Neutron::Net |
| properties: |
| port_security_enabled: false |
| private_floating_subnet: |
| type: OS::Neutron::Subnet |
| properties: |
| network: { get_resource: private_floating_network } |
| cidr: 10.11.12.0/24 |
| enable_dhcp: false |
| gateway_ip: ~ |
| |
| ucp_config: |
| type: OS::Heat::SoftwareConfig |
| properties: |
| group: ungrouped |
| config: |
| str_replace: |
| template: { get_file: ./scripts/instance_boot.sh } |
| params: |
| $node_type: ucp |
| $wait_condition_notify: { get_attr: [ ucp_wait_handle, curl_cli ] } |
| $ucp_license_key: { get_file: ./scripts/license.lic } |
| ucp: |
| depends_on: router_iface |
| type: ./srv-group.yaml |
| properties: |
| image: { get_param: image } |
| flavor: { get_param: flavor } |
| key_name: { get_param: "OS::stack_name" } |
| public_net_id: { get_param: public_net_id } |
| private_net_id: { get_resource: network } |
| private_subnet_id: { get_resource: subnet } |
| private_floating_network: { get_resource: private_floating_network } |
| user_data: { get_resource: ucp_config } |
| metadata: {"role":"ucp"} |
| |
| ucp_wait_handle: |
| type: OS::Heat::WaitConditionHandle |
| ucp_wait_condition: |
| type: OS::Heat::WaitCondition |
| properties: |
| handle: { get_resource: ucp_wait_handle } |
| timeout: { get_param: ucp_boot_timeout } |
| |
| master_config: |
| type: OS::Heat::SoftwareConfig |
| properties: |
| group: ungrouped |
| config: |
| str_replace: |
| template: { get_file: ./scripts/instance_boot.sh } |
| params: |
| $node_type: master |
| $wait_condition_notify: { get_attr: [ ucp_wait_handle, curl_cli ] } |
| $ucp_license_key: { get_file: ./scripts/license.lic } |
| $ucp_master_host: { get_attr: [ucp, server_private_ip] } |
| |
| masters: |
| type: OS::Heat::ResourceGroup |
| depends_on: |
| - ucp_wait_condition |
| properties: |
| count: { get_param: masters_size } |
| resource_def: |
| type: ./srv-group.yaml |
| properties: |
| image: { get_param: image } |
| flavor: { get_param: flavor } |
| key_name: { get_param: "OS::stack_name" } |
| public_net_id: { get_param: public_net_id } |
| private_net_id: { get_resource: network } |
| private_subnet_id: { get_resource: subnet } |
| private_floating_network: { get_resource: private_floating_network } |
| user_data: { get_resource: master_config } |
| metadata: {"role":"master"} |
| |
| worker_config: |
| type: OS::Heat::SoftwareConfig |
| properties: |
| group: ungrouped |
| config: |
| str_replace: |
| template: { get_file: ./scripts/instance_boot.sh } |
| params: |
| $node_type: worker |
| $wait_condition_notify: { get_attr: [ ucp_wait_handle, curl_cli ] } |
| $ucp_license_key: { get_file: ./scripts/license.lic } |
| $ucp_master_host: { get_attr: [ucp, server_private_ip] } |
| |
| workers: |
| type: OS::Heat::ResourceGroup |
| depends_on: |
| - ucp_wait_condition |
| properties: |
| count: { get_param: worker_size } |
| resource_def: |
| type: ./srv-group.yaml |
| properties: |
| image: { get_param: image } |
| flavor: { get_param: flavor } |
| key_name: { get_param: "OS::stack_name" } |
| public_net_id: { get_param: public_net_id } |
| private_net_id: { get_resource: network } |
| private_subnet_id: { get_resource: subnet } |
| private_floating_network: { get_resource: private_floating_network } |
| user_data: { get_resource: worker_config } |
| metadata: { get_param: worker_metadata} |
| cmps: |
| type: OS::Heat::ResourceGroup |
| depends_on: |
| - ucp_wait_condition |
| properties: |
| count: { get_param: cmp_size } |
| resource_def: |
| type: ./srv-group.yaml |
| properties: |
| image: { get_param: image } |
| flavor: { get_param: flavor } |
| key_name: { get_param: "OS::stack_name" } |
| public_net_id: { get_param: public_net_id } |
| private_net_id: { get_resource: network } |
| private_subnet_id: { get_resource: subnet } |
| private_floating_network: { get_resource: private_floating_network } |
| user_data: { get_resource: worker_config } |
| metadata: { get_param: cmp_metadata} |
| gtws: |
| type: OS::Heat::ResourceGroup |
| depends_on: |
| - ucp_wait_condition |
| properties: |
| count: { get_param: gtw_size } |
| resource_def: |
| type: ./srv-group.yaml |
| properties: |
| image: { get_param: image } |
| flavor: { get_param: flavor } |
| key_name: { get_param: "OS::stack_name" } |
| public_net_id: { get_param: public_net_id } |
| private_net_id: { get_resource: network } |
| private_subnet_id: { get_resource: subnet } |
| private_floating_network: { get_resource: private_floating_network } |
| user_data: { get_resource: worker_config } |
| metadata: { get_param: gtw_metadata} |
| |
| |
| outputs: |
| ucp_ips: |
| description: Private IP addresses of the deployed ucp instances |
| value: { get_attr: [ucp, server_public_ip] } |
| masters_ips: |
| description: Private IP addresses of the deployed masters instances |
| value: { get_attr: [masters, server_public_ip] } |
| workers_ips: |
| description: Private IP addresses of the deployed worker instances |
| value: { get_attr: [workers, server_public_ip] } |
| cmps_ips: |
| description: Private IP addresses of the deployed cmp instances |
| value: { get_attr: [cmps, server_public_ip] } |
| gtws_ips: |
| description: Private IP addresses of the deployed gtw instances |
| value: { get_attr: [gtws, server_public_ip] } |