1 heat_template_version: 2015-04-30
2 #################################
3 # Author: Dmitry Orzhehovsky
4 # Email: dorzheho@cisco.com
5 #################################
7 The template intended for deploying vSON VM instance.
14 description: Index of the instance.
19 description: Unique name for this VF instance.
24 description: Unique ID for this VF instance.
29 description: Unique name for this VF module instance.
34 description: Unique ID for this VF Module instance
39 description: Unique ID for this VF Module instance
44 description: The ID of the OAM network.
46 oam_net_subnet_prefix_length:
48 label: OAM net subnet prefix length
49 description: Prefix length of the subnet on the OAM network.
51 oam_net_subnet_v6_prefix_length:
53 label: OAM net IPv6 subnet prefix length
54 description: OAM network IPv6 subnet prefix length.
58 label: Default gateway
59 description: Default gateway.
63 label: Default IPv6 gateway
64 description: Default IPv6 gateway.
67 type: comma_delimited_list
69 description: List of DNS servers.
72 type: comma_delimited_list
74 description: List of NTP servers.
76 oam_net_security_group_id:
78 label: OAM network security group ID
80 The ID of Security group applied on the port
81 bound to the vSON OAM network.
84 type: comma_delimited_list
86 description: List of Volumes IDs.
89 type: comma_delimited_list
90 label: Availability zones
91 description: List of availability zones.
95 label: vSON server group ID
97 Tells what policy should be applied to the ServerGroup.
98 Affinity policy will force instances to share the same hypervisor.
99 Anti-affinity will force instances to run in different hypervisors.
102 type: comma_delimited_list
103 label: vSON Cluster leader names
104 description: A list of unique names to be issued to the vSON Cluster leaders.
107 type: comma_delimited_list
108 label: vSON OAM network IPv4 addresses
109 description: Fixed IPv4 assignments for vSON instances on the OAM network.
112 type: comma_delimited_list
113 label: vSON OAM network IPv6 addresses
114 description: Fixed IPv6 assignments for vSON instances on the OAM network.
118 label: vSON base VM image name
119 description: VM Image name the vSON instance will be created from.
124 description: The ID or name of the flavor to boot onto.
128 label: vSON Data Center name
129 description: Name of the vSON Data Center.
133 label: vSON Cluster Manager IP
134 description: IP of the vSON Cluster Manager.
136 vson_join_cluster_auth_token:
138 label: vSON join cluster auth token
140 Authentication Token generated for the user permitted to add
141 a new Datacenter/vSON member to existing vSON Cluster.
143 swift_account_auth_token:
145 label: Swift account auth token
147 Swift account auth token.
148 Example: 041a5187bb4641f9b89583e2539776b0
153 type: OS::Heat::SwiftSignal
155 handle: {get_resource: wait_handle}
160 type: OS::Heat::SwiftSignalHandle
162 # vSON server OAM network port
163 vson_server_oam_net_port_0:
164 type: OS::Neutron::Port
168 template: VNF_NAME_VNF_ID_SERVER_NAME_oam_net_port_0
170 VNF_NAME: {get_param: vnf_name}
171 VNF_ID: {get_param: vnf_id}
172 SERVER_NAME: {get_param: [vson_vm_names, {get_param: instance_index}]}
173 network_id: {get_param: oam_net_id}
175 - ip_address: {get_param: [oam_net_ips, {get_param: instance_index}]}
176 - ip_address: {get_param: [oam_net_v6_ips, {get_param: instance_index}]}
178 - {get_param: oam_net_security_group_id}
180 # Attach Cinder volume to the server
181 vson_server_volume_attach:
182 type: OS::Cinder::VolumeAttachment
183 depends_on: vson_server
185 instance_uuid: {get_resource: vson_server}
186 volume_id: {get_param: [volume_ids, {get_param: instance_index}]}
190 type: OS::Nova::Server
191 depends_on: [vson_server_oam_net_port_0]
193 name: {get_param: [vson_vm_names, {get_param: instance_index}]}
194 availability_zone: {get_param: [availability_zones, {get_param: instance_index}]}
195 image: {get_param: vson_vm_image_name}
196 flavor: {get_param: vson_vm_flavor_name}
199 vnf_name: {get_param: vnf_name}
200 vnf_id: {get_param: vnf_id}
201 vf_module_name: {get_param: vf_module_name}
202 vf_module_id: {get_param: vf_module_id}
203 vm_role: {get_param: vfc_role}
205 - port: {get_resource: vson_server_oam_net_port_0}
207 group: {get_param: vson_server_group_id}
208 user_data_format: RAW
211 template: {get_file: deploy.sh}
213 $HOT_INSTANCE_INDEX: {get_param: instance_index}
214 $HOT_VOLUME_ID: {get_param: [volume_ids, {get_param: instance_index}]}
215 $HOT_VOLUME_ATTACH: "False"
216 $HOT_VFC_ROLE: {get_param: vfc_role}
217 $HOT_CLM_SERVER_IP: {get_param: vson_clm_oam_net_ip}
218 $HOT_THIS_INSTANCE_OAM_NET_IP: {get_param: [oam_net_ips, {get_param: instance_index}]}
219 $HOT_THIS_INSTANCE_OAM_NET_PREFIX: {get_param: oam_net_subnet_prefix_length}
220 $HOT_THIS_INSTANCE_OAM_V6_NET_IP: {get_param: [oam_net_v6_ips, {get_param: instance_index}]}
221 $HOT_THIS_INSTANCE_OAM_V6_NET_PREFIX: {get_param: oam_net_subnet_v6_prefix_length}
222 $HOT_THIS_INSTANCE_DEFAULT_GATEWAY: {get_param: default_gateway}
223 $HOT_THIS_INSTANCE_DEFAULT_GATEWAY_V6: {get_param: default_gateway_v6}
224 $HOT_DNS_SERVERS: {list_join: [',', {get_param: dns_servers}]}
225 $HOT_DC_NAME: {get_param: vson_dc_unit}
226 $HOT_NTP_SERVERS: {list_join: [' ', {get_param: ntp_servers}]}
227 $HOT_SWIFT_AUTH_TOKEN: {get_param: swift_account_auth_token}
228 $HOT_VSON_JOIN_CLUSTER_AUTH_TOKEN: {get_param: vson_join_cluster_auth_token}
229 $HOT_WC_NOTIFY: { get_attr: ['wait_handle', 'curl_cli'] }