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
123 - high_availability: MM_Passive
129 type: tosca.nodes.SoftwareComponent
131 component_version: 1.0
133 - host: MM_Passive_Host
137 implementation: mm_install.sh
139 implementation: mm_passvie_configure.sh
142 type: rnc.nodes.compute.MM
148 properties: *compute_props_os_DEF
150 properties: *compute_props_host_MM
153 node: MM_BlockStorage
154 relationship: Storage_attachesto
155 - high_availability: MM_Active
161 type: tosca.nodes.SoftwareComponent
163 component_version: 1.0
165 - host: CM_Active_Host
169 implementation: cm_install.sh
171 implementation: cm_active_configure.sh
174 type: rnc.nodes.compute.CM
179 properties: *compute_props_os_DEF
181 properties: *compute_props_host_CM
188 - high_availability: CM_Passive
194 type: tosca.nodes.SoftwareComponent
196 component_version: 1.0
198 - host: CM_Passive_Host
202 implementation: cm_install.sh
204 implementation: cm_passvie_configure.sh
207 type: rnc.nodes.compute.CM
212 properties: *compute_props_os_DEF
214 properties: *compute_props_host_CM
221 - high_availability: CM_Active
227 type: tosca.nodes.SoftwareComponent
229 component_version: 1.0
235 implementation: dm_install.sh
237 implementation: dm_configure.sh
240 type: rnc.nodes.compute.DM
243 properties: *compute_props_os_DEF
245 properties: *compute_props_host_DM
255 type: tosca.nodes.SoftwareComponent
257 component_version: 1.0
263 implementation: lb_install.sh
265 implementation: lb_configure.sh
268 type: rnc.nodes.compute.LB
271 properties: *compute_props_os_DEF
273 properties: *compute_props_host_LB
284 type: rnc.nodes.BlockStorage
286 size: { get_input: mm_storage_size }
289 post_configure_target:
290 implementation: default_script.sh
297 network_name: Ctrl_Net
309 network_name: InterMedia_Net
321 gateway_ip: 172.1.0.1
322 network_name: ExterMdedia_Net
334 gateway_ip: 129.0.0.1
335 network_name: Ems_Net
341 type: rnc.nodes.CP.MM
346 - virtualBinding: MM_Active_Host
347 - virtualLink: EMS_Net
349 MM_Active_Port_EXTERMEDIA:
350 type: rnc.nodes.CP.MM
355 - virtualBinding: MM_Active_Host
356 - virtualLink: EMS_Net
359 type: rnc.nodes.CP.MM
364 - virtualBinding: MM_Active_Host
365 - virtualLink: CTRL_Net
367 MM_Active_Port_INTERMEDIA:
368 type: rnc.nodes.CP.MM
373 - virtualBinding: MM_Active_Host
374 - virtualLink: EXTERMEDIA_Net
377 type: rnc.nodes.CP.MM
382 - virtualBinding: MM_Passive_Host
383 - virtualLink: EMS_Net
385 MM_Passive_Port_EXTERMEDIA:
386 type: rnc.nodes.CP.MM
391 - virtualBinding: MM_Passive_Host
392 - virtualLink: EMS_Net
394 MM_Passive_Port_CTRL:
395 type: rnc.nodes.CP.MM
400 - virtualBinding: MM_Passive_Host
401 - virtualLink: CTRL_Net
403 MM_Passive_Port_INTERMEDIA:
404 type: rnc.nodes.CP.MM
409 - virtualBinding: MM_Passive_Host
410 - virtualLink: EXTERMEDIA_Net
413 type: rnc.nodes.CP.CM
418 - virtualBinding: CM_Active_Host
419 - virtualLink: CTRL_Net
421 CM_Active_Port_INTERMEDIA:
422 type: rnc.nodes.CP.CM
427 - virtualBinding: CM_Active_Host
428 - virtualLink: INTERMEDIA_Net
430 CM_Passive_Port_CTRL:
431 type: rnc.nodes.CP.CM
436 - virtualBinding: CM_Passive_Host
437 - virtualLink: CTRL_Net
439 CM_Passive_Port_INTERMEDIA:
440 type: rnc.nodes.CP.CM
445 - virtualBinding: CM_Passive_Host
446 - virtualLink: INTERMEDIA_Net
449 type: rnc.nodes.CP.DM
454 - virtualBinding: DM_Host
455 - virtualLink: CTRL_Net
458 type: rnc.nodes.CP.DM
463 - virtualBinding: DM_Host
464 - virtualLink: INTERMEDIA_Net
467 type: rnc.nodes.CP.LB
472 - virtualBinding: LB_Host
473 - virtualLink: CTRL_Net
476 type: rnc.nodes.CP.LB
481 - virtualBinding: LB_Host
482 - virtualLink: INTERMEDIA_Net
485 type: rnc.nodes.CP.LB
490 - virtualBinding: LB_Host
491 - virtualLink: EXTERMEDIA_Net
493 # definition of the relationship templates of the topology
494 relationship_templates:
496 type: tosca.relationships.AttachesTo
498 location: /data_location
500 # definition of output parameters for the topology template
503 description: The private IP address of the MM.
504 value: { get_attribute: [ MM_Active_Host, private_address ] }
507 description: The private IP address of the CM.
508 value: { get_attribute: [ CM_Active_Host, private_address ] }
511 description: The private IP address of the DM.
512 value: { get_attribute: [ DM_Host, private_address ] }
515 description: The private IP address of the LB.
516 value: { get_attribute: [ LB_Host, private_address ] }
518 # definition of logical groups of node templates within the topology
519 # To be continue about this section
521 AnitAffinityServerGroup:
522 type: tosca.groups.Root
524 Logical component grouping for anti affinity placement,
525 MM_Acitve, MM_Passive, CM_Acitve, CM_Passive, LB must host
526 on different host to reduce the impact to each other.
527 members: [ MM_Active, MM_Passive, CM_Active, CM_Passive, LB ]
530 type: tosca.groups.Root
532 Logical component grouping for affinity placement,
533 CM and DM will be host on the same host to get high performence
534 members: [ CM_Active, DM ]
537 - AnitAffinityPolicy:
538 type: tosca.policies.Placement.Antilocate
539 description: Apply anti-locate placement policy to group
540 targets: [ AnitAffinityServerGroup ]
543 type: tosca.policies.Placement.Colocate
544 description: Apply anti-locate placement policy to group
545 targets: [ AffinityServerGroup ]
547 # ServerGroupScaling_DM: # added future
548 # members: [ DM, ]# only one, will be error
550 # - name: MyScaleUpPolicy
551 # - type: tosca.policy.scale.up | tosca.policy.scale.down
552 # - rule: fn.utilizaton [ DM ], greater_than: 80
553 # - trigger: script_dm
555 # ServerGroupScaling_LB: # added future
556 # members: [ LB, ] # only one, will be error
558 # - name: MyScaleUpPolicy
559 # - type: tosca.policy.scale.up | tosca.policy.scale.down
560 # - rule: fn.utilizaton [ LB ], greater_than: 80
561 # - trigger: script_lb