1 ## Licensed under the Apache License, Version 2.0 (the "License"); you may
2 ## not use this file except in compliance with the License. You may obtain
3 ## a copy of the License at
5 ## http://www.apache.org/licenses/LICENSE-2.0
7 ## Unless required by applicable law or agreed to in writing, software
8 ## distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
9 ## WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
10 ## License for the specific language governing permissions and limitations
13 tosca_definitions_version: tosca_simple_profile_for_nfv_1_0_0
16 template_name: tosca_simple_profile_for_nfv_vRNC
17 template_author: opnfv_parser_project_from_zte
18 template_version: tosca_simple_profile_for_nfv_1_0
20 # Optional description of the definitions inside the file.
22 TOSCA simple profile for RNC
23 1. Compute Node MM, CM, DM, LB...
24 1.1 MM: MaintainModule;
25 1.2 CM: Control Module;
27 1.4 LB: LineCard Module
28 2. Network Node VL and CP
33 # list of YAML alias anchors (or macros)
35 compute_props_os_DEF: &compute_props_os_DEF
41 compute_props_host_MM: &compute_props_host_MM
46 compute_props_host_CM: &compute_props_host_CM
51 compute_props_host_DM: &compute_props_host_DM
56 compute_props_host_LB: &compute_props_host_LB
61 # topology template definition of the cloud application or service
63 # a description of the topology template
71 description: mm additional block storage size
73 - in_range: [ 1, 200 ]
75 substitution_mappings:
76 node_type: rnc.nodes.VNF
78 virtualLink_VNFM: [ MM_Port_CTRL, virtualLink ]
79 virtualLink_EMS: [ MM_Port_EMS, virtualLink ]
80 virtualLink_TRAFFIC: [ LB_Port_EXTERMEDIA, virtualLink ]
82 # definition of the node templates of the topology
85 type: tosca.nodes.SoftwareComponent
87 component_version: 1.0
89 - host: MM_Active_Host
93 implementation: mm_install.sh
95 implementation: mm_active_configure.sh
98 type: rnc.nodes.compute.MM
104 properties: *compute_props_os_DEF
106 properties: *compute_props_host_MM
109 node: MM_BlockStorage
110 relationship: Storage_attachesto
111 - high_availability: MM_Passive
117 type: tosca.nodes.SoftwareComponent
119 component_version: 1.0
121 - host: MM_Passive_Host
125 implementation: mm_install.sh
127 implementation: mm_passvie_configure.sh
130 type: rnc.nodes.compute.MM
136 properties: *compute_props_os_DEF
138 properties: *compute_props_host_MM
141 node: MM_BlockStorage
142 relationship: Storage_attachesto
143 - high_availability: MM_Active
149 type: tosca.nodes.SoftwareComponent
151 component_version: 1.0
153 - host: CM_Active_Host
157 implementation: cm_install.sh
159 implementation: cm_active_configure.sh
162 type: rnc.nodes.compute.CM
167 properties: *compute_props_os_DEF
169 properties: *compute_props_host_CM
176 - high_availability: CM_Passive
182 type: tosca.nodes.SoftwareComponent
184 component_version: 1.0
186 - host: CM_Passive_Host
190 implementation: cm_install.sh
192 implementation: cm_passvie_configure.sh
195 type: rnc.nodes.compute.CM
200 properties: *compute_props_os_DEF
202 properties: *compute_props_host_CM
209 - high_availability: CM_Active
215 type: tosca.nodes.SoftwareComponent
217 component_version: 1.0
223 implementation: dm_install.sh
225 implementation: dm_configure.sh
228 type: rnc.nodes.compute.DM
231 properties: *compute_props_os_DEF
233 properties: *compute_props_host_DM
243 type: tosca.nodes.SoftwareComponent
245 component_version: 1.0
251 implementation: lb_install.sh
253 implementation: lb_configure.sh
256 type: rnc.nodes.compute.LB
259 properties: *compute_props_os_DEF
261 properties: *compute_props_host_LB
272 type: rnc.nodes.BlockStorage
274 size: { get_input: mm_storage_size }
277 post_configure_target:
278 implementation: default_script.sh
285 network_name: Ctrl_Net
297 network_name: InterMedia_Net
309 gateway_ip: 172.1.0.1
310 network_name: ExterMdedia_Net
322 gateway_ip: 129.0.0.1
323 network_name: Ems_Net
329 type: rnc.nodes.CP.MM
334 - virtualBinding: MM_Active_Host
335 - virtualLink: EMS_Net
337 MM_Active_Port_EXTERMEDIA:
338 type: rnc.nodes.CP.MM
343 - virtualBinding: MM_Active_Host
344 - virtualLink: EMS_Net
347 type: rnc.nodes.CP.MM
352 - virtualBinding: MM_Active_Host
353 - virtualLink: CTRL_Net
355 MM_Active_Port_INTERMEDIA:
356 type: rnc.nodes.CP.MM
361 - virtualBinding: MM_Active_Host
362 - virtualLink: EXTERMEDIA_Net
365 type: rnc.nodes.CP.MM
370 - virtualBinding: MM_Passive_Host
371 - virtualLink: EMS_Net
373 MM_Passive_Port_EXTERMEDIA:
374 type: rnc.nodes.CP.MM
379 - virtualBinding: MM_Passive_Host
380 - virtualLink: EMS_Net
382 MM_Passive_Port_CTRL:
383 type: rnc.nodes.CP.MM
388 - virtualBinding: MM_Passive_Host
389 - virtualLink: CTRL_Net
391 MM_Passive_Port_INTERMEDIA:
392 type: rnc.nodes.CP.MM
397 - virtualBinding: MM_Passive_Host
398 - virtualLink: EXTERMEDIA_Net
401 type: rnc.nodes.CP.CM
406 - virtualBinding: CM_Active_Host
407 - virtualLink: CTRL_Net
409 CM_Active_Port_INTERMEDIA:
410 type: rnc.nodes.CP.CM
415 - virtualBinding: CM_Active_Host
416 - virtualLink: INTERMEDIA_Net
418 CM_Passive_Port_CTRL:
419 type: rnc.nodes.CP.CM
424 - virtualBinding: CM_Passive_Host
425 - virtualLink: CTRL_Net
427 CM_Passive_Port_INTERMEDIA:
428 type: rnc.nodes.CP.CM
433 - virtualBinding: CM_Passive_Host
434 - virtualLink: INTERMEDIA_Net
437 type: rnc.nodes.CP.DM
442 - virtualBinding: DM_Host
443 - virtualLink: CTRL_Net
446 type: rnc.nodes.CP.DM
451 - virtualBinding: DM_Host
452 - virtualLink: INTERMEDIA_Net
455 type: rnc.nodes.CP.LB
460 - virtualBinding: LB_Host
461 - virtualLink: CTRL_Net
464 type: rnc.nodes.CP.LB
469 - virtualBinding: LB_Host
470 - virtualLink: INTERMEDIA_Net
473 type: rnc.nodes.CP.LB
478 - virtualBinding: LB_Host
479 - virtualLink: EXTERMEDIA_Net
481 # definition of the relationship templates of the topology
482 relationship_templates:
484 type: tosca.relationships.AttachesTo
486 location: /data_location
488 # definition of output parameters for the topology template
491 description: The private IP address of the MM.
492 value: { get_attribute: [ MM_Active_Host, private_address ] }
495 description: The private IP address of the CM.
496 value: { get_attribute: [ CM_Active_Host, private_address ] }
499 description: The private IP address of the DM.
500 value: { get_attribute: [ DM_Host, private_address ] }
503 description: The private IP address of the LB.
504 value: { get_attribute: [ LB_Host, private_address ] }
506 # definition of logical groups of node templates within the topology
507 # To be continue about this section
509 AnitAffinityServerGroup:
510 type: tosca.groups.Root
512 Logical component grouping for anti affinity placement,
513 MM_Acitve, MM_Passive, CM_Acitve, CM_Passive, LB must host
514 on different host to reduce the impact to each other.
515 members: [ MM_Active, MM_Passive, CM_Active, CM_Passive, LB ]
518 type: tosca.groups.Root
520 Logical component grouping for affinity placement,
521 CM and DM will be host on the same host to get high performence
522 members: [ CM_Active, DM ]
525 - AnitAffinityPolicy:
526 type: tosca.policies.Placement.Antilocate
527 description: Apply anti-locate placement policy to group
528 targets: [ AnitAffinityServerGroup ]
531 type: tosca.policies.Placement.Colocate
532 description: Apply anti-locate placement policy to group
533 targets: [ AffinityServerGroup ]
535 # ServerGroupScaling_DM: # added future
536 # members: [ DM, ]# only one, will be error
538 # - name: MyScaleUpPolicy
539 # - type: tosca.policy.scale.up | tosca.policy.scale.down
540 # - rule: fn.utilizaton [ DM ], greater_than: 80
541 # - trigger: script_dm
543 # ServerGroupScaling_LB: # added future
544 # members: [ LB, ] # only one, will be error
546 # - name: MyScaleUpPolicy
547 # - type: tosca.policy.scale.up | tosca.policy.scale.down
548 # - rule: fn.utilizaton [ LB ], greater_than: 80
549 # - trigger: script_lb