1 # Heat template which intstantiates a Perimeta SSC and up to 10 Perimeta
2 # RTP MSCs and up to 10 Perimeta MSRP MSCs. Currently all instances are
3 # HA although standalone MSCs may be supported in future.
5 # This Heat template commissions, partners and configures the Perimeta SSC and
6 # MSCs with basic configuration defined by ssc_a_template.json,
7 # msc_a_template.json and mmc_a_template.json. These can be modified
8 # as required to obtain the required Perimeta configuration.
10 # This template puts the Perimeta configuration in place using userdata
11 # injected via OpenStack's ConfigDrive mechanism.
13 # This template sets up anti-affinity using server group anti-affinity and
14 # optionally availability zone anti-affinity.
16 # This template will work with any version of Perimeta software from 3.9.20.
19 # - existing networks as follows
20 # - network for management traffic
21 # - network for HA traffic
22 # - network for core/trusted service traffic
23 # - network for access/untrusted service traffic
24 # - pre-loaded Perimeta image
25 # - suitable flavor to use for Perimeta SSC
26 # - suitable flavor to use for Perimeta RTP MSCs
27 # - suitable flavor to use for Perimeta MSRP MSCs
28 # - suitable keypair to use for Perimeta
30 # Virtual IP address and fixed IP addresses to use for the Perimeta instances
31 # must be provided as parameters.
33 # Template requires Juno or above and has been tested on Kilo. Note that in
34 # some deployments, Heat template validation will fail but actually creating
35 # a stack using the template will succeed. This is due to problems with
36 # Heat validating nested templates.
38 heat_template_version: 2014-10-16
41 HOT template to instantiate a Perimeta SSC plus MxRTP MSCs plus NxMSRP MSCs
44 # General VNF parameters
47 description: ID of VNF
51 description: Unique ID for this VF Module instance
55 description: Availability zone for A instances.
58 description: Availability zone for B instances.
61 description: Keypair to use for accessing these Perimeta instances
63 - custom_constraint: nova.keypair
66 description: NTP server IPv4 addresses, separated by commas. These must be accessible from the management network
68 - allowed_pattern: "((?:\\d{1,3}\\.){3}\\d{1,3},)*((?:\\d{1,3}\\.){3}\\d{1,3})"
69 description: ntp_server_ip_addrs must be a comma separated list of IPv4 addresses (with no spaces)
70 perimeta_param_server_group:
72 description: UUID of server group to set anti-affinity policy for Perimeta instance. Only used when doing healing.
74 # Management network parameters
77 description: Management network ID
79 - custom_constraint: neutron.network
82 description: Management network prefix length
84 - range: { min: 0, max: 32 }
85 description: mgmt_net_plen must be between 0 and 32
86 mgmt_net_default_gateway:
88 description: Default gateway for management network
90 type: comma_delimited_list
91 description: Management network security groups
93 # Internal high availability network parameters
96 description: Internal HA network ID
98 - custom_constraint: neutron.network
101 description: Intermal HA network prefix length.
103 - range: { min: 0, max: 32 }
104 description: int_ha_net_plen must be between 0 and 32
105 int_ha_net_sec_groups:
106 type: comma_delimited_list
107 description: Security groups associated with internal HA network
109 # Trusted/core network parameters
112 description: Network ID of trusted/core network.
114 - custom_constraint: neutron.network
115 trusted_net_sec_groups:
116 type: comma_delimited_list
117 description: Security groups associated with trusted/core network
119 # Untrusted/access network parameters
122 description: Network ID of untrusted/access network.
124 - custom_constraint: neutron.network
125 untrusted_net_sec_groups:
126 type: comma_delimited_list
127 description: Security groups associated with untrusted/access network
130 description: Number of VLANs to connect to on the untrusted/access network
132 type: comma_delimited_list
133 description: List of VLAN IDs to use on the untrusted/access network
134 untrusted_vlan_networks:
135 type: comma_delimited_list
136 description: List of Contrail VLAN networks to use on the untrusted/access network. The order and number of these must match the VLAN ID list
138 # Unused network parameters
140 # This is used for connecting the unused 4th SSC service interface.
143 description: Unused network ID
145 - custom_constraint: neutron.network
150 description: Flavor to use for creating SSC VM instance
152 - custom_constraint: nova.flavor
155 description: Glance image to use for launching SSC Perimeta instances.
157 - custom_constraint: glance.image
160 description: Name of VM A of SSC
162 - allowed_pattern: '[a-zA-Z0-9][a-zA-Z0-9-]{0,31}$'
163 description: VM A name must be 32 characters or less and a valid hostname. Only alphanumeric characters plus hyphen are allowed.
166 description: Name of VM B of SSC
168 - allowed_pattern: '[a-zA-Z0-9][a-zA-Z0-9-]{0,31}$'
169 description: VM B name must be 32 characters or less and a valid hostname. Only alphanumeric characters plus hyphen are allowed.
172 description: System name of SSC
174 - allowed_pattern: '[a-zA-Z0-9][a-zA-Z0-9-]{0,31}$'
175 description: System name must be 32 characters or less and a valid hostname. Only alphanumeric characters plus hyphen are allowed.
177 # SSC IP addresses on management network
180 description: Management virtual IP address to use for SSC. Only required when predefining VIPs.
183 description: Management fixed IP address to use for SSC A. Only required when predefining fixed IPs.
186 description: Management fixed IP address to use for SSC B. Only required when predefining fixed IPs.
188 # SSC IP addresses on internal HA network
191 description: HA fixed IP address to use for SSC A. Only required when predefining fixed IPs.
194 description: HA fixed IP address to use for SSC B. Only required when predefining fixed IPs.
196 # SSC IP addresses on trusted/core network
199 description: Virtual IPv4 address on trusted/core network for SSC.
202 description: Fixed IPv4 address on trusted/core network for SSC A. Only required when predefining fixed IPs.
205 description: Fixed IPv4 address on trusted/core network for SSC B. Only required when predefining fixed IPs.
207 # SSC IP addresses on untrusted/access network
210 description: Virtual IPv4 address on untrusted/access network for SSC. Only required when predefining virtual IPs.
211 ssc_untrusted_v6_vip_0:
213 description: Virtual IPv6 address on untrusted/access network for SSC. Only required when predefining virtual IPs.
214 ssc_a_untrusted_ip_0:
216 description: Fixed IPv4 address on untrusted/access network for SSC A. Only required when predefining fixed IPs.
217 ssc_a_untrusted_v6_ip_0:
219 description: Fixed IPv6 address on untrusted/access network for SSC A. Only required when predefining fixed IPs.
220 ssc_b_untrusted_ip_0:
222 description: Fixed IPv4 address on untrusted/access network for SSC B. Only required when predefining fixed IPs.
223 ssc_b_untrusted_v6_ip_0:
225 description: Fixed IPv6 address on untrusted/access network for SSC B. Only required when predefining fixed IPs.
227 # SSC IP addresses on management/Rf network
230 description: Virtual IPv4 address on management/Rf network for SSC. Only required when predefining virtual IPs.
233 description: Fixed IPv4 address on management/Rf network for SSC A. Only required when predefining fixed IPs.
236 description: Fixed IPv4 address on management/Rf network for SSC B. Only required when predefining fixed IPs.
241 description: Count of required RTP MSCs
244 description: Flavor to use for creating RTP MSC VM instances
246 - custom_constraint: nova.flavor
249 description: Glance image to use for launching RTP MSC Perimeta instances.
251 - custom_constraint: glance.image
253 type: comma_delimited_list
254 description: List of names of RTP MSC VM A instances
256 type: comma_delimited_list
257 description: List of names of RTP MSC VM B instances
258 rtp_msc_system_names:
259 type: comma_delimited_list
260 description: List of system names of RTP MSC instances
262 # RTP MSC IP addresses on management network
264 type: comma_delimited_list
265 description: Management virtual IP addresses to use for RTP MSC instances. There must be at least as many as the number of RTP MSCs.
267 type: comma_delimited_list
268 description: Management fixed IP addresses to use for RTP MSC A instances. There must be at least as many as the number of RTP MSCs.
270 type: comma_delimited_list
271 description: Management fixed IP addresses to use for RTP MSC B instances. There must be at least as many as the number of RTP MSCs.
273 # RTP MSC IP addresses on internal HA network
274 rtp_msc_a_int_ha_ips:
275 type: comma_delimited_list
276 description: HA fixed IP addresses to use for RTP MSC A instances. There must be at least as many as the number of RTP MSCs.
277 rtp_msc_b_int_ha_ips:
278 type: comma_delimited_list
279 description: HA fixed IP addresses to use for RTP MSC B instances. There must be at least as many as the number of RTP MSCs.
281 # RTP MSC IP addresses on trusted/core network
282 rtp_msc_trusted_vips:
283 type: comma_delimited_list
284 description: Virtual IPv4 addresses on trusted/core network for RTP MSC instances. There must be at least as many as the number of RTP MSCs.
285 rtp_msc_a_trusted_ips:
286 type: comma_delimited_list
287 description: Fixed IPv4 addresses on trusted/core network for RTP MSC A instances. There must be at least as many as the number of RTP MSCs.
288 rtp_msc_b_trusted_ips:
289 type: comma_delimited_list
290 description: Fixed IPv4 address on trusted/core network for RTP MSC B instances. There must be at least as many as the number of RTP MSCs.
292 # RTP MSC IP addresses on untrusted/access network
293 rtp_msc_untrusted_vips:
294 type: comma_delimited_list
295 description: Virtual IPv4 address on untrusted/access network for RTP MSC instances. There must be at least as many as the number of RTP MSCs.
296 rtp_msc_untrusted_v6_vips:
297 type: comma_delimited_list
298 description: Virtual IPv6 address on untrusted/access network for RTP MSC instances. There must be at least as many as the number of RTP MSCs.
299 rtp_msc_a_untrusted_ips:
300 type: comma_delimited_list
301 description: Fixed IPv4 address on untrusted/access network for RTP MSC A instances. There must be at least as many as the number of RTP MSCs.
302 rtp_msc_a_untrusted_v6_ips:
303 type: comma_delimited_list
304 description: Fixed IPv6 address on untrusted/access network for RTP MSC A instances. There must be at least as many as the number of RTP MSCs.
305 rtp_msc_b_untrusted_ips:
306 type: comma_delimited_list
307 description: Fixed IPv4 address on untrusted/access network for RTP MSC B instances. There must be at least as many as the number of RTP MSCs.
308 rtp_msc_b_untrusted_v6_ips:
309 type: comma_delimited_list
310 description: Fixed IPv6 address on untrusted/access network for RTP MSC B instances. There must be at least as many as the number of RTP MSCs.
316 type: perimeta_ha_swmu_b.yaml
318 vnf_id: { get_param: vnf_id }
320 vf_module_id: { get_param: vf_module_id }
321 system_names: [{ get_param: ssc_system_name_0 }]
322 vm_a_names: [{ get_param: ssc_a_name_0 }]
323 vm_b_names: [{ get_param: ssc_b_name_0 }]
324 perimeta_instance_index: 0
325 perimeta_image_name: { get_param: ssc_image_name }
326 perimeta_flavor_name: { get_param: ssc_flavor_name }
327 perimeta_keypair: { get_param: perimeta_keypair }
328 availability_zone_0: { get_param: availability_zone_0 }
329 availability_zone_1: { get_param: availability_zone_1 }
330 mgmt_net_id: { get_param: mgmt_net_id }
331 mgmt_net_plen: { get_param: mgmt_net_plen }
332 mgmt_net_default_gateway: { get_param: mgmt_net_default_gateway }
333 mgmt_vips: [{ get_param: ssc_mgmt_vip_0 }]
334 mgmt_a_ips: [{ get_param: ssc_a_mgmt_ip_0 }]
335 mgmt_b_ips: [{ get_param: ssc_b_mgmt_ip_0 }]
336 mgmt_sec_groups: { get_param: mgmt_net_sec_groups }
337 ha_net_id: { get_param: int_ha_net_id }
338 ha_network_plen: { get_param: int_ha_net_plen }
339 ha_a_ips: [{ get_param: ssc_a_int_ha_ip_0 }]
340 ha_b_ips: [{ get_param: ssc_b_int_ha_ip_0 }]
341 ha_sec_groups: { get_param: int_ha_net_sec_groups }
342 trusted_net_id: { get_param: trusted_net_id }
343 trusted_vips: [{ get_param: ssc_trusted_vip_0 }]
344 trusted_a_ips: [{ get_param: ssc_a_trusted_ip_0 }]
345 trusted_b_ips: [{ get_param: ssc_b_trusted_ip_0 }]
346 trusted_sec_groups: { get_param: trusted_net_sec_groups }
347 untrusted_net_id: { get_param: untrusted_net_id }
348 untrusted_vips: [{ get_param: ssc_untrusted_vip_0 }]
349 untrusted_v6_vips: [{ get_param: ssc_untrusted_v6_vip_0 }]
350 untrusted_a_ips: [{ get_param: ssc_a_untrusted_ip_0 }]
351 untrusted_a_v6_ips: [{ get_param: ssc_a_untrusted_v6_ip_0 }]
352 untrusted_b_ips: [{ get_param: ssc_b_untrusted_ip_0 }]
353 untrusted_b_v6_ips: [{ get_param: ssc_b_untrusted_v6_ip_0 }]
354 untrusted_sec_groups: { get_param: untrusted_net_sec_groups }
355 untrusted_num_vlans: { get_param: untrusted_num_vlans }
356 untrusted_vlan_ids: { get_param: untrusted_vlan_ids }
357 untrusted_vlan_networks: { get_param: untrusted_vlan_networks }
358 serv3_net_id: { get_param: mgmt_net_id }
359 serv3_vips: [{ get_param: ssc_rf_vip_0 }]
360 serv3_a_ips: [{ get_param: ssc_a_rf_ip_0 }]
361 serv3_b_ips: [{ get_param: ssc_b_rf_ip_0 }]
362 serv3_sec_groups: { get_param: mgmt_net_sec_groups }
363 unused_net_id: { get_param: unused_port_net_id }
364 perimeta_param_server_group: { get_param: perimeta_param_server_group }
367 template: {get_file: ssc_a_template.json}
369 $NTP_SERVER_IP_ADDRS: { get_param: ntp_server_ip_addrs }
370 $COMPLETION_PARAMS: ''
377 description: Server group for SSC pair
378 value: { get_attr: [ perimeta_ssc, server_group_used ] }
382 msw_template_version:
383 description: Version of the heat templates used to instantiate the VMs
384 value: "4.0.1 - 2016-10-28"