1 # yamllint disable-line rule:document-start
2 heat_template_version: 2016-10-14
4 description: "K8 slaves VM"
9 description: management ssh key
14 description: Hostname of the K8s slave0 node
19 description: Hostname of the K8s slave0 node
24 description: management network
25 default: "k8s_mgmt_net"
29 description: Kubernetes service network
30 default: "k8s_int_net"
34 description: k8s_master management IP (fixed)
38 description: k8s_master management IP (fixed)
39 default: "172.16.10.37"
43 description: k8s_master management IP (fixed)
44 default: "172.16.10.38"
48 description: k8 pod_net cidr used for setting up k8s cluster
52 description: k8 pod_net cidr used for setting up k8s cluster
56 description: k8 service IP addr used for setting up k8s cluster
60 description: User id to connect to the VMs (ssh)
65 description: Access password for the user to connect to the VMs (ssh)
70 description: Public IP pool
82 cond_floating_ip: {equals: [{get_param: enable_floating_ip}, true]}
83 has_dpdk: {equals: [{get_param: has_dpdk}, true]}
87 type: OS::Nova::Flavor
94 type: OS::Nova::Flavor
100 "hw:mem_page_size": large
101 "hw:cpu_policy": dedicated
102 "aggregate_instance_extra_specs:pinned": "true"
106 server_cloudinit_config:
107 type: OS::Heat::CloudConfig
111 chpasswd: {expire: false}
113 manage_etc_hosts: true
117 type: OS::Heat::SoftwareConfig
121 template: {get_file: k8s_slaves_init.sh}
123 k8s_slave_hostname: {get_param: k8s_slave0_hostname}
124 k8s_master_ip: {get_param: k8s_master_ip}
125 k8s_slave_ip: {get_param: k8s_slave0_ip}
126 k8s_pod_net_cidr: {get_param: k8s_pod_net_cidr}
127 k8s_svc_net_cidr: {get_param: k8s_svc_net_cidr}
128 k8s_cluster_ip: {get_param: k8s_cluster_ip}
129 k8s_user: {get_param: k8s_user}
130 k8s_password: {get_param: k8s_password}
133 type: OS::Heat::MultipartMime
136 - config: {get_resource: server_cloudinit_config}
137 - config: {get_resource: server_config0}
140 type: OS::Heat::SoftwareConfig
144 template: {get_file: k8s_slaves_init.sh}
146 k8s_slave_hostname: {get_param: k8s_slave1_hostname}
147 k8s_master_ip: {get_param: k8s_master_ip}
148 k8s_slave_ip: {get_param: k8s_slave1_ip}
149 k8s_pod_net_cidr: {get_param: k8s_pod_net_cidr}
150 k8s_svc_net_cidr: {get_param: k8s_svc_net_cidr}
151 k8s_cluster_ip: {get_param: k8s_cluster_ip}
152 k8s_user: {get_param: k8s_user}
153 k8s_password: {get_param: k8s_password}
156 type: OS::Heat::MultipartMime
159 - config: {get_resource: server_cloudinit_config}
160 - config: {get_resource: server_config1}
162 server_security_group:
163 type: OS::Neutron::SecurityGroup
165 description: Security group for ssh and icmp
166 name: test-security-group
168 {remote_ip_prefix: 0.0.0.0/0,
171 port_range_max: 65535},
172 {remote_ip_prefix: 0.0.0.0/0,
175 port_range_max: 65535},
176 {remote_ip_prefix: 0.0.0.0/0, protocol: icmp}
180 type: OS::Nova::FloatingIP
181 condition: cond_floating_ip
183 pool: {get_param: public_ip_pool}
185 server_association_fip0:
186 type: OS::Nova::FloatingIPAssociation
187 condition: cond_floating_ip
189 floating_ip: {get_resource: slave_fip0}
190 server_id: {get_resource: slave0}
193 type: OS::Nova::FloatingIP
194 condition: cond_floating_ip
196 pool: {get_param: public_ip_pool}
198 server_association_fip1:
199 type: OS::Nova::FloatingIPAssociation
200 condition: cond_floating_ip
202 floating_ip: {get_resource: slave_fip1}
203 server_id: {get_resource: slave1}
206 type: OS::Neutron::Port
208 network: {get_param: k8s_mgmt_net}
209 port_security_enabled: false
211 # - {get_resource: server_security_group}
214 type: OS::Neutron::Port
216 network: {get_param: k8s_int_net}
217 port_security_enabled: false
219 # - {get_resource: server_security_group}
220 fixed_ips: [{"ip_address": {get_param: k8s_slave0_ip}}]
223 type: OS::Neutron::Port
225 network: {get_param: k8s_mgmt_net}
226 port_security_enabled: false
228 # - {get_resource: server_security_group}
231 type: OS::Neutron::Port
233 network: {get_param: k8s_int_net}
234 port_security_enabled: false
236 # - {get_resource: server_security_group}
237 fixed_ips: [{"ip_address": {get_param: k8s_slave1_ip}}]
240 type: OS::Nova::Server
243 key_name: {get_param: key_name}
244 flavor: {get_resource: {if: ["has_dpdk", "flavor_dpdk", "flavor"]}}
246 user_data: {get_resource: server_user_data0}
247 user_data_format: RAW
249 # - {get_resource: server_security_group}
251 - port: {get_resource: mgmt_port0}
252 - port: {get_resource: int_net_port0}
255 type: OS::Nova::Server
258 key_name: {get_param: key_name}
259 flavor: {get_resource: {if: ["has_dpdk", "flavor_dpdk", "flavor"]}}
261 user_data: {get_resource: server_user_data1}
262 user_data_format: RAW
264 # - {get_resource: server_security_group}
266 - port: {get_resource: mgmt_port1}
267 - port: {get_resource: int_net_port1}