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 ]
76 description: ID of this VNF
80 description: name of the vendor who generate this VNF
84 description: version of the software for this VNF
87 substitution_mappings:
88 node_type: rnc.nodes.VNF
90 virtualLink_VNFM: [ MM_Port_CTRL, virtualLink ]
91 virtualLink_EMS: [ MM_Port_EMS, virtualLink ]
92 virtualLink_TRAFFIC: [ LB_Port_EXTERMEDIA, virtualLink ]
94 # definition of the node templates of the topology
97 type: tosca.nodes.SoftwareComponent
99 component_version: 1.0
101 - host: MM_Active_Host
105 implementation: mm_install.sh
107 implementation: mm_active_configure.sh
110 type: rnc.nodes.compute.MM
116 properties: *compute_props_os_DEF
118 properties: *compute_props_host_MM
121 node: MM_BlockStorage
122 relationship: Storage_attachesto
128 type: tosca.nodes.SoftwareComponent
130 component_version: 1.0
132 - host: MM_Passive_Host
136 implementation: mm_install.sh
138 implementation: mm_passvie_configure.sh
141 type: rnc.nodes.compute.MM
147 properties: *compute_props_os_DEF
149 properties: *compute_props_host_MM
152 node: MM_BlockStorage
153 relationship: Storage_attachesto
154 - high_availability: MM_Active
160 type: tosca.nodes.SoftwareComponent
162 component_version: 1.0
164 - host: CM_Active_Host
168 implementation: cm_install.sh
170 implementation: cm_active_configure.sh
173 type: rnc.nodes.compute.CM
178 properties: *compute_props_os_DEF
180 properties: *compute_props_host_CM
191 type: tosca.nodes.SoftwareComponent
193 component_version: 1.0
195 - host: CM_Passive_Host
199 implementation: cm_install.sh
201 implementation: cm_passvie_configure.sh
204 type: rnc.nodes.compute.CM
209 properties: *compute_props_os_DEF
211 properties: *compute_props_host_CM
218 - high_availability: CM_Active
224 type: tosca.nodes.SoftwareComponent
226 component_version: 1.0
232 implementation: dm_install.sh
234 implementation: dm_configure.sh
237 type: rnc.nodes.compute.DM
240 properties: *compute_props_os_DEF
242 properties: *compute_props_host_DM
252 type: tosca.nodes.SoftwareComponent
254 component_version: 1.0
260 implementation: lb_install.sh
262 implementation: lb_configure.sh
265 type: rnc.nodes.compute.LB
268 properties: *compute_props_os_DEF
270 properties: *compute_props_host_LB
281 type: rnc.nodes.BlockStorage
283 size: { get_input: mm_storage_size }
286 post_configure_target:
287 implementation: default_script.sh
294 network_name: Ctrl_Net
306 network_name: InterMedia_Net
318 gateway_ip: 172.1.0.1
319 network_name: ExterMdedia_Net
331 gateway_ip: 129.0.0.1
332 network_name: Ems_Net
338 type: rnc.nodes.CP.MM
343 - virtualBinding: MM_Active_Host
344 - virtualLink: EMS_Net
346 MM_Active_Port_EXTERMEDIA:
347 type: rnc.nodes.CP.MM
352 - virtualBinding: MM_Active_Host
353 - virtualLink: EMS_Net
356 type: rnc.nodes.CP.MM
361 - virtualBinding: MM_Active_Host
362 - virtualLink: CTRL_Net
364 MM_Active_Port_INTERMEDIA:
365 type: rnc.nodes.CP.MM
370 - virtualBinding: MM_Active_Host
371 - virtualLink: EXTERMEDIA_Net
374 type: rnc.nodes.CP.MM
379 - virtualBinding: MM_Passive_Host
380 - virtualLink: EMS_Net
382 MM_Passive_Port_EXTERMEDIA:
383 type: rnc.nodes.CP.MM
388 - virtualBinding: MM_Passive_Host
389 - virtualLink: EMS_Net
391 MM_Passive_Port_CTRL:
392 type: rnc.nodes.CP.MM
397 - virtualBinding: MM_Passive_Host
398 - virtualLink: CTRL_Net
400 MM_Passive_Port_INTERMEDIA:
401 type: rnc.nodes.CP.MM
406 - virtualBinding: MM_Passive_Host
407 - virtualLink: EXTERMEDIA_Net
410 type: rnc.nodes.CP.CM
415 - virtualBinding: CM_Active_Host
416 - virtualLink: CTRL_Net
418 CM_Active_Port_INTERMEDIA:
419 type: rnc.nodes.CP.CM
424 - virtualBinding: CM_Active_Host
425 - virtualLink: INTERMEDIA_Net
427 CM_Passive_Port_CTRL:
428 type: rnc.nodes.CP.CM
433 - virtualBinding: CM_Passive_Host
434 - virtualLink: CTRL_Net
436 CM_Passive_Port_INTERMEDIA:
437 type: rnc.nodes.CP.CM
442 - virtualBinding: CM_Passive_Host
443 - virtualLink: INTERMEDIA_Net
446 type: rnc.nodes.CP.DM
451 - virtualBinding: DM_Host
452 - virtualLink: CTRL_Net
455 type: rnc.nodes.CP.DM
460 - virtualBinding: DM_Host
461 - virtualLink: INTERMEDIA_Net
464 type: rnc.nodes.CP.LB
469 - virtualBinding: LB_Host
470 - virtualLink: CTRL_Net
473 type: rnc.nodes.CP.LB
478 - virtualBinding: LB_Host
479 - virtualLink: INTERMEDIA_Net
482 type: rnc.nodes.CP.LB
487 - virtualBinding: LB_Host
488 - virtualLink: EXTERMEDIA_Net
490 # definition of the relationship templates of the topology
491 relationship_templates:
493 type: tosca.relationships.AttachesTo
495 location: /data_location
497 # definition of output parameters for the topology template
500 description: The private IP address of the MM.
501 value: { get_attribute: [ MM_Active_Host, private_address ] }
504 description: The private IP address of the CM.
505 value: { get_attribute: [ CM_Active_Host, private_address ] }
508 description: The private IP address of the DM.
509 value: { get_attribute: [ DM_Host, private_address ] }
512 description: The private IP address of the LB.
513 value: { get_attribute: [ LB_Host, private_address ] }
515 # definition of logical groups of node templates within the topology
516 # To be continue about this section
518 AnitAffinityServerGroup:
519 type: tosca.groups.Root
521 Logical component grouping for anti affinity placement,
522 MM_Acitve, MM_Passive, CM_Acitve, CM_Passive, LB must host
523 on different host to reduce the impact to each other.
524 members: [ MM_Active, MM_Passive, CM_Active, CM_Passive, LB ]
527 type: tosca.groups.Root
529 Logical component grouping for affinity placement,
530 CM and DM will be host on the same host to get high performence
531 members: [ CM_Active, DM ]
534 - AnitAffinityPolicy:
535 type: tosca.policies.Placement.Antilocate
536 description: Apply anti-locate placement policy to group
537 targets: [ AnitAffinityServerGroup ]
540 type: tosca.policies.Placement.Colocate
541 description: Apply anti-locate placement policy to group
542 targets: [ AffinityServerGroup ]
544 # ServerGroupScaling_DM: # added future
545 # members: [ DM, ]# only one, will be error
547 # - name: MyScaleUpPolicy
548 # - type: tosca.policy.scale.up | tosca.policy.scale.down
549 # - rule: fn.utilizaton [ DM ], greater_than: 80
550 # - trigger: script_dm
552 # ServerGroupScaling_LB: # added future
553 # members: [ LB, ] # only one, will be error
555 # - name: MyScaleUpPolicy
556 # - type: tosca.policy.scale.up | tosca.policy.scale.down
557 # - rule: fn.utilizaton [ LB ], greater_than: 80
558 # - trigger: script_lb