--- /dev/null
+ ${VM_TYPE}_${VM_NUM}_private_port:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_resource: int_network }
+ fixed_ips: [{"subnet": { get_resource: int_subnet }}]
+ security_groups:
+ - { get_resource: ric_sg }
+
+ ${VM_TYPE}_${VM_NUM}_ipv6_port:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_param: public_v6net_id }
+ security_groups:
+ - { get_resource: ric_sg }
+
+ ${VM_TYPE}_${VM_NUM}_floating_ip:
+ type: OS::Neutron::FloatingIP
+ properties:
+ floating_network_id: { get_param: public_net_id }
+ port_id: { get_resource: ${VM_TYPE}_${VM_NUM}_private_port }
+
+ ${VM_TYPE}_${VM_NUM}_vm_scripts:
+ type: OS::Heat::CloudConfig
+ properties:
+ cloud_config:
+ power_state:
+ mode: reboot
+ runcmd:
+ - [ /opt/k8s_vm_install.sh ]
+ write_files:
+ - path: /opt/k8s_vm_install.sh
+ permissions: '0755'
+ content:
+ str_replace:
+ params:
+ __docker_proxy__: { get_param: docker_proxy }
+ __apt_proxy__: { get_param: apt_proxy }
+ __docker_version__: { get_param: docker_version }
+ __k8s_version__: { get_param: k8s_version }
+ __k8s_cni_version__: { get_param: k8s_cni_version }
+ __helm_version__: { get_param: helm_version }
+ __host_private_ip_addr__: { get_attr: [${VM_TYPE}_${VM_NUM}_floating_ip, fixed_ip_address] }
+ __host_floating_ip_addr__: { get_attr: [${VM_TYPE}_${VM_NUM}_floating_ip, floating_ip_address] }
+ __host_private_ipv6_addr__: { get_attr: [${VM_TYPE}_${VM_NUM}_ipv6_port, fixed_ips, 0, ip_address ] }
+ __k8s_mst_floating_ip_addr__: { get_attr: [${VM_TYPE}_mst_floating_ip, floating_ip_address] }
+ __k8s_mst_private_ip_addr__: { get_attr: [${VM_TYPE}_mst_floating_ip, fixed_ip_address] }
+ __k8s_mst_parivate_ipv6_addr__: { get_attr: [${VM_TYPE}_mst_ipv6_port, fixed_ips, 0, ip_address] }
+ __mtu__: { get_param: mtu }
+ __cinder_volume_id__: { get_resource: cinder_volume }
+ __stack_name__: { get_param: 'OS::stack_name' }
+ template:
+ get_file: k8s_vm_install.sh
+ - path: /opt/k8s_vm_init.sh
+ permissions: '0755'
+ content:
+ str_replace:
+ params:
+ __host_private_ip_addr__: { get_attr: [${VM_TYPE}_${VM_NUM}_floating_ip, fixed_ip_address] }
+ __host_label__: '$HOST_LABEL'
+ template:
+ get_file: k8s_vm_init.sh
+ - path: /opt/k8s_vm_aux_install.sh
+ permissions: '0755'
+ content:
+ str_replace:
+ params:
+ __host_label__: '$HOST_LABEL'
+ template:
+ get_file: k8s_vm_aux_install.sh
+
+ - path: /opt/k8s_vm_custom_repos.sh
+ permissions: '0755'
+ content:
+ str_replace:
+ params:
+ __host_label__: '$HOST_LABEL'
+ template:
+ get_file: k8s_vm_custom_repos.sh
+
+ - path: /etc/init.d/k8s_vm_init_serv
+ permissions: '0755'
+ content:
+ get_file: k8s_vm_init_serv.sh
+
+
+ ${VM_TYPE}_${VM_NUM}_vm_config:
+ type: OS::Heat::MultipartMime
+ properties:
+ parts:
+ - config: { get_resource: ${VM_TYPE}_${VM_NUM}_vm_scripts }
+
+ ${VM_TYPE}_${VM_NUM}_vm:
+ type: OS::Nova::Server
+ properties:
+ name:
+ list_join: ['-', [ { get_param: 'OS::stack_name' }, '${VM_TYPE}', '${VM_NUM}' ] ]
+ image: { get_param: ubuntu_1604_image }
+ flavor: { get_param: ${VM_TYPE}_vm_flavor }
+ key_name: { get_param: key_name }
+ networks:
+ - port: { get_resource: ${VM_TYPE}_${VM_NUM}_private_port }
+ - port: { get_resource: ${VM_TYPE}_${VM_NUM}_ipv6_port }
+ user_data_format: SOFTWARE_CONFIG
+ user_data: { get_resource: ${VM_TYPE}_${VM_NUM}_vm_config }
+