| Oleh Hryhorov | b58460e | 2020-02-05 15:53:48 +0200 | [diff] [blame] | 1 | heat_template_version: queens | 
|  | 2 |  | 
|  | 3 | parameters: | 
|  | 4 |  | 
|  | 5 | metadata: | 
|  | 6 | type: json | 
|  | 7 | default: {} | 
|  | 8 | node_type: | 
|  | 9 | type: string | 
|  | 10 | key_name: | 
|  | 11 | type: string | 
|  | 12 | description: Name of keypair to assign to servers | 
|  | 13 | image: | 
|  | 14 | type: string | 
|  | 15 | description: Name of image to use for servers | 
|  | 16 | flavor: | 
|  | 17 | type: string | 
|  | 18 | description: Flavor to use for servers | 
|  | 19 | accessible_network: | 
|  | 20 | type: string | 
|  | 21 | accessible_subnet_id: | 
|  | 22 | type: string | 
|  | 23 | private_floating_network: | 
|  | 24 | type: string | 
|  | 25 | private_floating_network_cidr: | 
|  | 26 | type: string | 
|  | 27 | private_floating_subnet_id: | 
|  | 28 | type: string | 
|  | 29 | private_floating_interface: | 
|  | 30 | type: string | 
| Vasyl Saienko | 0fa6f19 | 2020-03-06 16:08:51 +0200 | [diff] [blame] | 31 | control_network_cidr: | 
| Oleh Hryhorov | b58460e | 2020-02-05 15:53:48 +0200 | [diff] [blame] | 32 | type: string | 
|  | 33 | functions_override: | 
|  | 34 | type: string | 
|  | 35 | boot_timeout: | 
|  | 36 | type: number | 
|  | 37 | description: Boot timeout for instance | 
| Vasyl Saienko | f36f39c | 2020-03-10 00:21:42 +0200 | [diff] [blame] | 38 | default: 3600 | 
| Oleh Hryhorov | b58460e | 2020-02-05 15:53:48 +0200 | [diff] [blame] | 39 | ucp_master_host: | 
|  | 40 | type: string | 
|  | 41 | default: '' | 
|  | 42 | public_net_id: | 
|  | 43 | type: string | 
| Mykyta Karpin | 5ed5fd8 | 2020-01-27 18:23:29 +0200 | [diff] [blame] | 44 | docker_ee_release: | 
|  | 45 | type: string | 
|  | 46 | docker_ee_url: | 
|  | 47 | type: string | 
| Vasyl Saienko | b59853e | 2020-05-25 10:15:26 +0300 | [diff] [blame] | 48 | docker_ucp_image: | 
|  | 49 | type: string | 
|  | 50 | default: 'docker/ucp:3.2.4' | 
| Vasyl Saienko | f9ee158 | 2020-03-02 16:53:41 +0200 | [diff] [blame] | 51 | hardware_metadata: | 
|  | 52 | description: The content of lab metadata. | 
|  | 53 | default: '' | 
|  | 54 | type: string | 
| Oleh Hryhorov | 43bbc8c | 2020-12-03 15:30:09 +0200 | [diff] [blame^] | 55 | single_node: | 
|  | 56 | type: string | 
| Oleh Hryhorov | b58460e | 2020-02-05 15:53:48 +0200 | [diff] [blame] | 57 |  | 
|  | 58 | resources: | 
|  | 59 |  | 
|  | 60 | software_config: | 
|  | 61 | type: OS::Heat::SoftwareConfig | 
|  | 62 | properties: | 
|  | 63 | group: ungrouped | 
|  | 64 | config: | 
|  | 65 | str_replace: | 
|  | 66 | template: { get_file: ../scripts/instance_boot.sh } | 
|  | 67 | params: | 
|  | 68 | $node_type:  { get_param: node_type } | 
|  | 69 | $wait_condition_notify: { get_attr: [ wait_handle, curl_cli ] } | 
| Mykyta Karpin | 5ed5fd8 | 2020-01-27 18:23:29 +0200 | [diff] [blame] | 70 | $docker_ee_url: { get_param: docker_ee_url } | 
|  | 71 | $docker_ee_release: { get_param: docker_ee_release } | 
| Oleh Hryhorov | b58460e | 2020-02-05 15:53:48 +0200 | [diff] [blame] | 72 | $ucp_master_host: { get_param: ucp_master_host } | 
| Vasyl Saienko | 84ee4fd | 2020-09-02 10:00:18 +0300 | [diff] [blame] | 73 | $docker_ucp_image: { get_param: docker_ucp_image } | 
| Oleh Hryhorov | b58460e | 2020-02-05 15:53:48 +0200 | [diff] [blame] | 74 | $node_metadata: { get_param: metadata } | 
| Vasyl Saienko | 0fa6f19 | 2020-03-06 16:08:51 +0200 | [diff] [blame] | 75 | $control_network_cidr: { get_param: control_network_cidr } | 
| Oleh Hryhorov | b58460e | 2020-02-05 15:53:48 +0200 | [diff] [blame] | 76 | $private_floating_interface: { get_param: private_floating_interface } | 
|  | 77 | $private_floating_interface_ip: { get_attr: [private_floating_server_port, fixed_ips, 0, ip_address] } | 
| Oleh Hryhorov | ca77209 | 2020-02-13 11:15:17 +0200 | [diff] [blame] | 78 | $private_floating_network_cidr: { get_param: private_floating_network_cidr } | 
| Oleh Hryhorov | b58460e | 2020-02-05 15:53:48 +0200 | [diff] [blame] | 79 | $functions_override: { get_param: functions_override } | 
| Vasyl Saienko | b59853e | 2020-05-25 10:15:26 +0300 | [diff] [blame] | 80 | $docker_ucp_image: { get_param: docker_ucp_image } | 
| Oleh Hryhorov | 43bbc8c | 2020-12-03 15:30:09 +0200 | [diff] [blame^] | 81 | $single_node: { get_param: single_node } | 
| Oleh Hryhorov | b58460e | 2020-02-05 15:53:48 +0200 | [diff] [blame] | 82 |  | 
| Vasyl Saienko | f9ee158 | 2020-03-02 16:53:41 +0200 | [diff] [blame] | 83 | inject_files: | 
|  | 84 | type: "OS::Heat::CloudConfig" | 
|  | 85 | properties: | 
|  | 86 | cloud_config: | 
|  | 87 | write_files: | 
|  | 88 | - path: /usr/sbin/prepare-metadata.py | 
|  | 89 | owner: "root:root" | 
|  | 90 | permissions: "0755" | 
|  | 91 | content: {get_file: ../scripts/prepare-metadata.py} | 
|  | 92 | - path: /usr/share/metadata/lab-metadata.yaml | 
|  | 93 | owner: "root:root" | 
|  | 94 | permissions: "0644" | 
|  | 95 | content: { get_param: hardware_metadata} | 
|  | 96 |  | 
|  | 97 | install_config_agent: | 
|  | 98 | type: "OS::Heat::MultipartMime" | 
|  | 99 | properties: | 
|  | 100 | parts: | 
|  | 101 | - config: {get_resource: software_config} | 
|  | 102 | - config: {get_resource: inject_files} | 
|  | 103 |  | 
| Oleh Hryhorov | b58460e | 2020-02-05 15:53:48 +0200 | [diff] [blame] | 104 | server: | 
|  | 105 | type: OS::Nova::Server | 
|  | 106 | properties: | 
|  | 107 | image: { get_param: image } | 
|  | 108 | flavor: { get_param: flavor } | 
|  | 109 | key_name: { get_param: key_name } | 
|  | 110 | availability_zone: nova | 
|  | 111 | networks: | 
|  | 112 | - port: { get_resource: accessible_server_port } | 
|  | 113 | - port: { get_resource: private_floating_server_port } | 
| Vasyl Saienko | f9ee158 | 2020-03-02 16:53:41 +0200 | [diff] [blame] | 114 | user_data_format: SOFTWARE_CONFIG | 
|  | 115 | user_data: { get_resource:  install_config_agent} | 
| Oleh Hryhorov | b58460e | 2020-02-05 15:53:48 +0200 | [diff] [blame] | 116 | metadata: { get_param: metadata } | 
|  | 117 |  | 
|  | 118 | accessible_server_port: | 
|  | 119 | type: OS::Neutron::Port | 
|  | 120 | properties: | 
|  | 121 | network_id: { get_param: accessible_network } | 
|  | 122 | port_security_enabled: false | 
|  | 123 | fixed_ips: | 
|  | 124 | - subnet: { get_param: accessible_subnet_id } | 
|  | 125 |  | 
|  | 126 | private_floating_server_port: | 
|  | 127 | type: OS::Neutron::Port | 
|  | 128 | properties: | 
|  | 129 | network_id: { get_param: private_floating_network } | 
|  | 130 | port_security_enabled: false | 
|  | 131 | fixed_ips: | 
|  | 132 | - subnet: { get_param: private_floating_subnet_id } | 
|  | 133 |  | 
|  | 134 | server_floating_ip: | 
|  | 135 | type: OS::Neutron::FloatingIP | 
|  | 136 | properties: | 
|  | 137 | floating_network_id: { get_param: public_net_id } | 
|  | 138 | port_id: { get_resource: accessible_server_port } | 
|  | 139 |  | 
|  | 140 | wait_handle: | 
|  | 141 | type: OS::Heat::WaitConditionHandle | 
|  | 142 | wait_condition: | 
|  | 143 | type: OS::Heat::WaitCondition | 
|  | 144 | properties: | 
|  | 145 | handle: { get_resource: wait_handle } | 
|  | 146 | timeout: { get_param: boot_timeout } | 
|  | 147 |  | 
|  | 148 | outputs: | 
|  | 149 | server_private_ip: | 
|  | 150 | description: IP address of server in private network | 
|  | 151 | value: { get_attr: [server, networks, { get_param: accessible_network}, 0]} | 
|  | 152 | server_private_floating_ip: | 
|  | 153 | description: IP address of server in private floating network | 
|  | 154 | value: { get_attr: [private_floating_server_port, fixed_ips, 0, ip_address] } | 
|  | 155 | server_public_ip: | 
|  | 156 | description: Floating IP address of server in public network | 
|  | 157 | value: { get_attr: [ server_floating_ip, floating_ip_address ] } | 
| Vasyl Saienko | f9ee158 | 2020-03-02 16:53:41 +0200 | [diff] [blame] | 158 | wc_data: | 
|  | 159 | description: Metadata from instance | 
|  | 160 | value: { get_attr: [wait_condition, data]} |