summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorshangxdy <shang.xiaodong@zte.com.cn>2015-12-18 16:27:00 +0800
committershangxdy <shang.xiaodong@zte.com.cn>2015-12-21 14:56:48 +0800
commitbb600a64bb9105dbe0bc3b971067c193a29861d2 (patch)
tree433fc0cbb4530ac5a6d60365ab8f48bc0c7afc1d
parent879f32a9c48cb9f59b9b0c322cecc58f7ac824d1 (diff)
Define a TOSCA template for a vRNC(new)
Define a vRNC(an VNF of Radio Network Controller) by using TOSCA template. Recheck for changed documents architecture. JIRA:PARSER-7 Change-Id: I3164b262b2cf3e82f0afc6e3663331d886741c96 Signed-off-by: shangxdy <shang.xiaodong@zte.com.cn>
-rw-r--r--docs/documentation-example.rst8
-rw-r--r--docs/index.rst2
-rw-r--r--docs/tosca2heat/simple_rnc_definition/Simple_RNC.yaml419
-rw-r--r--docs/tosca2heat/simple_rnc_definition/Simple_RNC_definition.yaml264
4 files changed, 690 insertions, 3 deletions
diff --git a/docs/documentation-example.rst b/docs/documentation-example.rst
index ebd80e4..8264732 100644
--- a/docs/documentation-example.rst
+++ b/docs/documentation-example.rst
@@ -12,8 +12,8 @@ this is the directory structure of the docs/ directory that can be found in the
./documentation-example.rst
./index.rst
-To create your own documentation, Create any number of directories (depending on your need) and place in each of them an index.rst.
-This index file must refence your other rst files.
+To create your own documentation, Create any number of directories (depending on your need) and place
+in each of them an index.rst. This index file must refence your other rst files.
* Here is an example index.rst
@@ -46,11 +46,13 @@ The Sphinx Build
When you push documentation changes to gerrit a jenkins job will create html documentation.
* Verify Jobs
+
For verify jobs a link to the documentation will show up as a comment in gerrit for you to see the result.
* Merge jobs
-Once you are happy with the look of your documentation you can submit the patchset the merge job will copy the output of each documentation directory to http://artifacts.opnfv.org/$project/docs/$name_of_your_folder/index.html
+Once you are happy with the look of your documentation you can submit the patchset the merge job will
+copy the output of each documentation directory to http://artifacts.opnfv.org/$project/docs/$name_of_your_folder/index.html
Here are some quick examples of how to use rst markup
diff --git a/docs/index.rst b/docs/index.rst
index 4e10cf3..aa376d8 100644
--- a/docs/index.rst
+++ b/docs/index.rst
@@ -13,6 +13,8 @@ Contents:
:maxdepth: 4
documentation-example.rst
+ ./tosca2heat/simple_rnc_definition/Simple_RNC_definition.yaml
+ ./tosca2heat/simple_rnc_definition/Simple_RNC.yaml
Indices and tables
==================
diff --git a/docs/tosca2heat/simple_rnc_definition/Simple_RNC.yaml b/docs/tosca2heat/simple_rnc_definition/Simple_RNC.yaml
new file mode 100644
index 0000000..9f99c57
--- /dev/null
+++ b/docs/tosca2heat/simple_rnc_definition/Simple_RNC.yaml
@@ -0,0 +1,419 @@
+# Required TOSCA Definitions version string
+tosca_definitions_version: tosca_simple_yaml_1_0
+
+metadata:
+ template_name: tosca_simple_profile_for_nfv
+ template_author: opnfv_parser_project
+ template_version: tosca_simple_profile_for_nfv_1_0
+
+# Optional description of the definitions inside the file.
+description: >
+ TOSCA simple profile for RNC
+ 1, Compute Node MM, CM, DM, LB...
+ 1.1 MM: MaintainModule;
+ 1.2 CM: Control Module;
+ 1.3 DM: Data Module;
+ 1.4 LB: LineCard Module
+ 2, Network Node VL and CP
+
+imports:
+ - Simple_RNC_definition.yaml
+
+# list of YAML alias anchors (or macros)
+dsl_definitions:
+ compute_props_os_DEF: &compute_props_os_DEF
+ architecture: x86_64
+ type: Linux
+ distribution: Ubuntu
+ version: 14.10
+
+ compute_props_host_MM: &compute_props_host_MM
+ disk_size: 80 GB
+ iops: 300
+ num_cpus: 8
+ mem_size: 8192 MB
+ swap: 512 MB
+
+ compute_props_host_CM: &compute_props_host_CM
+ disk_size: 0 GB
+ num_cpus: 8
+ mem_size: 8192 MB
+
+ compute_props_host_DM: &compute_props_host_DM
+ disk_size: 0 GB
+ num_cpus: 8
+ mem_size: 8192 MB
+
+ compute_props_host_LB: &compute_props_host_LB
+ disk_size: 0 GB
+ num_cpus: 4
+ mem_size: 8192 MB
+
+# topology template definition of the cloud application or service
+topology_template:
+ # a description of the topology template
+ description: >
+ simple RNC template
+
+ inputs:
+ mm_storage_size:
+ type: integer
+ default: 40 GB
+ description: mm additional block storage size
+ constraints:
+ - valid_values: [ 10, 20, 40, 80 ]
+
+ substitution_mappings:
+ type: rnc.nodes.VNF
+ properties:
+ vnfmtype: RADIO
+
+ # definition of the node templates of the topology
+ node_templates:
+ MM_Active:
+ type: rnc.nodes.compute.MM
+ properties:
+ activestatus: 1
+ requirements:
+ - host: MM_Active_Host
+ - high_availability: MM_Passive
+ artifacts:
+ #the VM image of MM
+ vm_image: mm.image
+ interfaces:
+ Standard:
+ create:
+ implementation: mm_install.sh
+ configure:
+ implementation: mm_active_configure.sh
+
+ MM_Passive:
+ type: rnc.nodes.compute.MM
+ properties:
+ activestatus: 0
+ requirements:
+ - host: MM_Passive_Host
+ - high_availability: MM_Active
+ artifacts:
+ #the VM image of MM
+ vm_image: mm.image
+ interfaces:
+ Standard:
+ create:
+ implementation: mm_install.sh
+ configure:
+ implementation: mm_passvie_configure.sh
+
+ MM_Active_Host:
+ type: rnc.nodes.compute.MM_Host
+ capabilities:
+ os:
+ properties: *compute_props_os_DEF
+ host:
+ properties: *compute_props_host_MM
+ requirements:
+ - local_storage:
+ node: MM_BlockStorage
+ relationship: Storage_attachesto
+ attributes:
+ ip_address: { get_attribute: [ SELF, private_address ] }
+
+ MM_Passive_Host:
+ type: rnc.nodes.compute.MM_Host
+ copy: MM_Active_Host
+
+ CM_Active:
+ type: rnc.nodes.compute.CM
+ properties:
+ activestatus: 1
+ requirements:
+ - host: CM_Active_Host
+ - high_availability: CM_Passive
+ artifacts:
+ #the VM image of CM
+ vm_image: cm.image
+ interfaces:
+ Standard:
+ create:
+ implementation: cm_install.sh
+ configure:
+ implementation: cm_active_configure.sh
+
+ CM_Passive:
+ type: rnc.nodes.compute.CM
+ properties:
+ activestatus: 0
+ requirements:
+ - host: CM_Passive_Host
+ - high_availability: CM_Active
+ artifacts:
+ #the VM image of CM
+ vm_image: mm.image
+ interfaces:
+ Standard:
+ create:
+ implementation: cm_install.sh
+ configure:
+ implementation: cm_passvie_configure.sh
+
+ CM_Active_Host:
+ type: rnc.nodes.compute.CM_Host
+ capabilities:
+ os:
+ properties: *compute_props_os_DEF
+ host:
+ properties: *compute_props_host_CM
+ scalable:
+ properties:
+ min_instances: 1
+ max_instances: 126
+ default_instances: 1
+ attributes:
+ ip_address: { get_attribute: [ SELF, private_address ] }
+
+ CM_Passive_Host:
+ type: rnc.nodes.compute.MM_Host
+ copy: CM_Active_Host
+
+ DM:
+ type: rnc.nodes.compute.DM
+ requirements:
+ - host: DM_Host
+ artifacts:
+ vm_image: dm.image
+ interfaces:
+ Standard:
+ create:
+ implementation: dm_install.sh
+ configure:
+ implementation: dm_configure.sh
+
+ DM_Host:
+ type: rnc.nodes.compute.DM_Host
+ capabilities:
+ os:
+ properties: *compute_props_os_DEF
+ host:
+ properties: *compute_props_host_DM
+ scalable:
+ properties:
+ min_instances: 1
+ max_instances: 120
+ default_instances: 1
+ attributes:
+ ip_address: { get_attribute: [ SELF, private_address ] }
+
+ LB:
+ type: rnc.nodes.compute.LB
+ requirements:
+ - host: LB_Host
+ artifacts:
+ #the VM image of LB
+ vm_image: lb.image
+ interfaces:
+ Standard:
+ create:
+ implementation: lb_install.sh
+ configure:
+ implementation: lb_configure.sh
+
+ LB_Host:
+ type: rnc.nodes.compute.LB_Host
+ capabilities:
+ os:
+ properties: *compute_props_os_DEF
+ host:
+ properties: *compute_props_host_LB
+ scalable:
+ properties:
+ min_instances: 1
+ max_instances: 20
+ default_instances: 1
+ attributes:
+ ip_address: { get_attribute: [ SELF, private_address ] }
+
+ MM_BlockStorage:
+ type: rnc.nodes.BlockStorage
+ properties:
+ size: { get_input: mm_storage_size }
+ interfaces:
+ Configure:
+ post_configure_target:
+ implementation: default_script.sh
+
+ CTRL_NetWork:
+ type: rnc.nodes.VL
+ properties:
+ vendor: "zte"
+ cidr: "128.0.0.0/8"
+ network_name: net1
+ dhcp_enabled: false
+
+ INTERMEDIA_NetWork:
+ type: rnc.nodes.VL
+ properties:
+ vendor: "zte"
+ cidr: "10.0.0.0/8"
+ network_name: net3
+ dhcp_enabled: true
+
+ EXTERMEDIA_NetWork:
+ type: rnc.nodes.VL
+ properties:
+ vendor: "zte"
+ cidr: "172.1.0.0/20"
+ network_name: net2
+ dhcp_enabled: true
+
+ EMS_NetWork:
+ type: rnc.nodes.VL
+ properties:
+ vendor: "zte"
+ cidr: "129.0.0.0/8"
+ network_name: net2
+ dhcp_enabled: true
+
+ MM_Port_EMS:
+ type: rnc.nodes.CP
+ properties:
+ order: 1
+ is_default: true
+ requirements:
+ - virtualbinding: MM_Active
+ - virtualLink: EMS_NetWork
+
+ MM_Port_CTRL:
+ type: rnc.nodes.CP
+ properties:
+ order: 0
+ is_default: true
+ requirements:
+ - virtualbinding: MM_Active
+ - virtualLink: CTRL_NetWork
+
+ MM_Port_EXTERMEDIA:
+ type: rnc.nodes.CP
+ properties:
+ order: 2
+ is_default: true
+ requirements:
+ - virtualbinding: MM_Active
+ - virtualLink: EXTERMEDIA_NetWork
+
+ CM_Port_CTRL:
+ type: rnc.nodes.CP
+ properties:
+ order: 0
+ is_default: true
+ requirements:
+ - virtualbinding: CM_Active
+ - virtualLink: CTRL_NetWork
+
+ CM_Port_INTERMEDIA:
+ type: rnc.nodes.CP
+ properties:
+ order: 1
+ is_default: false
+ requirements:
+ - virtualbinding: CM_Active
+ - virtualLink: INTERMEDIA_NetWork
+
+ DM_Port_CTRL:
+ type: rnc.nodes.CP
+ properties:
+ order: 0
+ is_default: true
+ requirements:
+ - virtualbinding: DM
+ - virtualLink: CTRL_NetWork
+
+ DM_Port_INTERMEDIA:
+ type: rnc.nodes.CP
+ properties:
+ order: 1
+ is_default: false
+ requirements:
+ - virtualbinding: DM
+ - virtualLink: INTERMEDIA_NetWork
+
+ LB_Port_CTRL:
+ type: rnc.nodes.CP
+ properties:
+ order: 0
+ is_default: true
+ requirements:
+ - virtualbinding: LB
+ - virtualLink: CTRL_NetWork
+
+ LB_Port_INTERMEDIA:
+ type: rnc.nodes.CP
+ properties:
+ order: 1
+ is_default: false
+ requirements:
+ - virtualbinding: LB
+ - virtualLink: INTERMEDIA_NetWork
+
+ LB_Port_EXTERMEDIA:
+ type: rnc.nodes.CP
+ properties:
+ order: 2
+ is_default: false
+ requirements:
+ - virtualbinding: LB
+ - virtualLink: EXTERMEDIA_NetWork
+
+ # definition of the relationship templates of the topology
+ relationship_templates:
+ Storage_attachesto:
+ type: tosca.relationships.AttachesTo
+ properties:
+ location: /data_location
+
+ # definition of output parameters for the topology template
+ outputs:
+ private_ip_of_MM:
+ description: The private IP address of the MM.
+ value: { get_attribute: [ MM_Active_Host, ip_address ] }
+
+ private_ip_of_CM:
+ description: The private IP address of the CM.
+ value: { get_attribute: [ CM_Active_Host, ip_address ] }
+
+ private_ip_of_DM:
+ description: The private IP address of the DM.
+ value: { get_attribute: [ DM_Host, ip_address ] }
+
+ private_ip_of_LB:
+ description: The private IP address of the LB.
+ value: { get_attribute: [ LB_Host, ip_address ] }
+
+ # definition of logical groups of node templates within the topology
+ # To be continue about this section
+ groups:
+ ServerGroupAnitAffinity: #
+ description: Logical component grouping for placement
+ members: [ MM_Acitve, MM_Passive, CM_Acitve, CM_Passive, LB ]
+ policies:
+ type: tosca.policy.placement.Antilocate
+
+ # ServerGroupAffinity: #
+ # members: [ CM, DM ]
+ # policies:
+ # type: tosca.policy.placement.Antilocate
+
+ # ServerGroupScaling_DM: # added future
+ # members: [ DM, ]# only one, will be error
+ # policies:
+ # - name: MyScaleUpPolicy
+ # - type: tosca.policy.scale.up | tosca.policy.scale.down
+ # - rule: fn.utilizaton [ DM ], greater_than: 80
+ # - trigger: script_dm
+
+ # ServerGroupScaling_LB: # added future
+ # members: [ LB, ] # only one, will be error
+ # policies:
+ # - name: MyScaleUpPolicy
+ # - type: tosca.policy.scale.up | tosca.policy.scale.down
+ # - rule: fn.utilizaton [ LB ], greater_than: 80
+ # - trigger: script_lb
diff --git a/docs/tosca2heat/simple_rnc_definition/Simple_RNC_definition.yaml b/docs/tosca2heat/simple_rnc_definition/Simple_RNC_definition.yaml
new file mode 100644
index 0000000..921da0d
--- /dev/null
+++ b/docs/tosca2heat/simple_rnc_definition/Simple_RNC_definition.yaml
@@ -0,0 +1,264 @@
+# Required TOSCA Definitions version string
+tosca_definitions_version: tosca_simple_yaml_1_0
+
+metadata:
+ template_name: tosca_simple_profile_for_nfv
+ template_author: opnfv_parser_project
+ template_version: tosca_simple_profile_for_nfv_1_0
+
+# Optional description of the definitions inside the file.
+description: >
+ NFV TOSCA simple profile for RNC types
+ 1, Compute Node MM, CM, DM, LB...
+ 1.1 MM: MaintainModule;
+ 1.2 CM: Control Module;
+ 1.3 DM: Data Module;
+ 1.4 LB: LineCard Module
+ 2, Network Node VL and CP
+
+imports:
+ - TOSCA_nfv_definition_1_0.yaml
+
+# list of node type definitions
+node_types:
+ rnc.nodes.VNF:
+ derived_from: tosca.nodes.nfv.VNF
+ properties:
+ vnftype:
+ type: string
+ description: type of the vnf
+ default: UMTS
+ required: false
+ constraints:
+ - valid_values: [ TD, UMTS ]
+ requirements:
+ - virtualLink_VNFM:
+ capability: tosca.capabilities.nfv.VirtualLinkable
+ - virtualLink_EMS:
+ capability: tosca.capabilities.nfv.VirtualLinkable
+ - virtualLink_TRAFFIC:
+ capability: tosca.capabilities.nfv.VirtualLinkable
+
+ rnc.nodes.compute.MM:
+ derived_from: tosca.nodes.nfv.VDU
+ properties:
+ activestatus:
+ type: integer
+ description: active or passive
+ constraints:
+ # 1 active, 0 passive
+ - valid_values: [ 0, 1 ]
+ id:
+ type: string
+ defaule: MM
+ description: >
+ A identifier of this VDU within the scope of the VNFD,
+ including version functional description and other
+ identification information.
+ requirements:
+ - host:
+ capability: tosca.capabilities.Container
+ node: rnc.nodes.compute.MM_Host
+ relationship: tosca.relationships.HostedOn
+
+ rnc.nodes.compute.MM_Host:
+ derived_from: tosca.nodes.Compute
+ capabilities:
+ binding:
+ type: tosca.capabilities.network.Bindable
+ os:
+ type: tosca.capabilities.OperatingSystem
+ scalable:
+ type: tosca.capabilities.Scalable
+ host:
+ type: rnc.capabilities.Container
+ valid_source_types: [ tosca.nodes.SoftwareComponent ]
+ storage:
+ type: tosca.capabilities.nfv.Storage
+ valid_source_types: [ tosca.nodes.SoftwareComponent ]
+ attributes:
+ ip_address:
+ type: string
+
+ rnc.nodes.compute.CM:
+ derived_from: tosca.nodes.nfv.VDU
+ properties:
+ activestatus:
+ type: integer
+ description: 1 for active or 0 for passive
+ constraints:
+ # 1 active, 0 passive
+ - valid_values: [ 0, 1 ]
+ requirements:
+ - host:
+ capability: tosca.capabilities.Container
+ node: rnc.nodes.compute.CM_Host
+ relationship: tosca.relationships.HostedOn
+
+ rnc.nodes.compute.CM_Host:
+ derived_from: tosca.nodes.Compute
+ capabilities:
+ binding:
+ type: tosca.capabilities.network.Bindable
+ os:
+ type: tosca.capabilities.OperatingSystem
+ scalable:
+ type: tosca.capabilities.Scalable
+ host:
+ type: rnc.capabilities.Container
+ valid_source_types: [ tosca.nodes.SoftwareComponent ]
+ cpu_extension:
+ type: tosca.capabilities.nfv.CPU_extension
+ valid_source_types: [ tosca.nodes.SoftwareComponent ]
+ memory_extension:
+ type: tosca.capabilities.nfv.Memory_extension
+ valid_source_types: [ tosca.nodes.SoftwareComponent ]
+ hypervisors:
+ type: tosca.capabilities.nfv.Hypervisors
+ valid_source_types: [ tosca.nodes.SoftwareComponent ]
+ PCIe:
+ type: tosca.capabilities.nfv.PCIe
+ valid_source_types: [ tosca.nodes.SoftwareComponent ]
+ interfaces:
+ type: tosca.capabilities.nfv.network.Interfaces
+ valid_source_types: [ tosca.nodes.SoftwareComponent ]
+ virtual_switches:
+ type: tosca.capabilities.nfv.network.Virtual_switches
+ valid_source_types: [ tosca.nodes.SoftwareComponent ]
+ attributes:
+ ip_address:
+ type: string
+
+ rnc.nodes.compute.DM:
+ derived_from: tosca.nodes.nfv.VDU
+ requirements:
+ - host:
+ capability: tosca.capabilities.Container
+ node: rnc.nodes.compute.DM_Host
+ relationship: tosca.relationships.HostedOn
+
+ rnc.nodes.compute.DM_Host:
+ derived_from: tosca.nodes.Compute
+ capabilities:
+ binding:
+ type: tosca.capabilities.network.Bindable
+ os:
+ type: tosca.capabilities.OperatingSystem
+ scalable:
+ type: tosca.capabilities.Scalable
+ host:
+ type: rnc.capabilities.Container
+ valid_source_types: [ tosca.nodes.SoftwareComponent ]
+ cpu_extension:
+ type: tosca.capabilities.nfv.CPU_extension
+ valid_source_types: [ tosca.nodes.SoftwareComponent ]
+ memory_extension:
+ type: tosca.capabilities.nfv.Memory_extension
+ valid_source_types: [ tosca.nodes.SoftwareComponent ]
+ hypervisors:
+ type: tosca.capabilities.nfv.Hypervisors
+ valid_source_types: [ tosca.nodes.SoftwareComponent ]
+ PCIe:
+ type: tosca.capabilities.nfv.PCIe
+ valid_source_types: [ tosca.nodes.SoftwareComponent ]
+ interfaces:
+ type: tosca.capabilities.nfv.network.Interfaces
+ valid_source_types: [ tosca.nodes.SoftwareComponent ]
+ virtual_switches:
+ type: tosca.capabilities.nfv.network.Virtual_switches
+ valid_source_types: [ tosca.nodes.SoftwareComponent ]
+ attributes:
+ ip_address:
+ type: string
+
+ rnc.nodes.compute.LB:
+ derived_from: tosca.nodes.nfv.VDU
+ requirements:
+ - host:
+ capability: tosca.capabilities.Container
+ node: rnc.nodes.compute.LB_Host
+ relationship: tosca.relationships.HostedOn
+
+ rnc.nodes.compute.LB_Host:
+ derived_from: tosca.nodes.Compute
+ capabilities:
+ binding:
+ type: tosca.capabilities.network.Bindable
+ os:
+ type: tosca.capabilities.OperatingSystem
+ scalable:
+ type: tosca.capabilities.Scalable
+ host:
+ type: rnc.capabilities.Container
+ valid_source_types: [ tosca.nodes.SoftwareComponent ]
+ interfaces:
+ type: tosca.capabilities.nfv.network.Interfaces
+ valid_source_types: [ tosca.nodes.SoftwareComponent ]
+ virtual_switches:
+ type: tosca.capabilities.nfv.network.Virtual_switches
+ valid_source_types: [ tosca.nodes.SoftwareComponent ]
+ attributes:
+ ip_address:
+ type: string
+
+ rnc.nodes.BlockStorage:
+ derived_from: tosca.nodes.BlockStorage
+
+ rnc.nodes.VL:
+ derived_from: tosca.nodes.nfv.VL.ELAN
+ properties:
+ ip_version:
+ type: integer
+ required: false
+ default: 4
+ constraints:
+ - valid_values: [ 4, 6 ]
+ cidr:
+ type: string
+ required: false
+ network_name:
+ type: string
+ required: false
+ dhcp_enabled:
+ type: boolean
+ required: false
+ default: true
+ description: >
+ Indicates should DHCP service be enabled on the network or not.
+
+ rnc.nodes.CP:
+ derived_from: tosca.nodes.nfv.CP
+ properties:
+ ip_address:
+ type: string
+ required: false
+ order:
+ type: integer
+ required: true
+ default: 0
+ constraints:
+ - greater_or_equal: 0
+ is_default:
+ type: boolean
+ required: false
+ default: false
+
+# list of capability type definitions
+capability_types:
+ rnc.capabilities.Container:
+ derived_from: tosca.capabilities.Container
+ properties:
+ swap:
+ type: scalar-unit.size
+ description: swap info
+ required: false
+ default: 0
+ constraints:
+ - greater_or_equal: 0 MB
+ iops:
+ type: integer
+ description: IOPS for disk
+ required: false
+ default: 0
+ constraints:
+ - greater_than: 0