From e243c1f9c40c5acee4fb89d99fae05f7a46768be Mon Sep 17 00:00:00 2001 From: zhipengh Date: Mon, 27 Feb 2017 04:26:21 -0500 Subject: Release D doc update Change-Id: I6b2749e5692cf6af2615ff5aff81ff060a1a25d3 Signed-off-by: zhipengh --- docs/developer/design/examples/Simple_RNC.yaml | 457 +++++++++++++++ .../design/examples/Simple_RNC_definition.yaml | 119 ++++ .../design/examples/TOSCA_nfv_definition_1_0.yaml | 627 +++++++++++++++++++++ .../design/examples/clearwater_tosca.yaml | 151 +++++ docs/developer/design/images/vRNC_Definition.png | Bin 0 -> 3935 bytes docs/developer/design/images/vRNC_Topology.png | Bin 0 -> 33723 bytes docs/developer/design/index.rst | 15 + docs/developer/design/parser_new_keywords.rst | 117 ++++ docs/developer/design/policy2tosca.rst | 87 +++ docs/developer/design/vRNC_tosca_intro.rst | 166 ++++++ docs/developer/design/yang2tosca.rst | 98 ++++ docs/developer/overview/index.rst | 13 + docs/developer/overview/overview.rst | 89 +++ docs/developer/requirements/index.rst | 11 + .../feature.configuration.rst | 9 - docs/installationprocedure/featureconfig.rst | 20 - docs/installationprocedure/index.rst | 26 - docs/installationprocedure/installerconfig.rst | 76 --- docs/installationprocedure/policy2tosca.rst | 44 -- docs/installationprocedure/yang2tosca.rst | 58 -- docs/parser_docs/images/vRNC_Definition.png | Bin 3935 -> 0 bytes docs/parser_docs/images/vRNC_Topology.png | Bin 33723 -> 0 bytes docs/parser_docs/index.rst | 16 - docs/parser_docs/intro/intro.rst | 71 --- docs/parser_docs/policy2tosca/policy2tosca.rst | 87 --- .../tosca2heat/examples/Simple_RNC.yaml | 457 --------------- .../tosca2heat/examples/Simple_RNC_definition.yaml | 119 ---- .../examples/TOSCA_nfv_definition_1_0.yaml | 627 --------------------- .../parser_docs/tosca2heat/parser_new_keywords.rst | 117 ---- docs/parser_docs/vRNC_tosca_intro.rst | 50 -- docs/parser_docs/yang2tosca/clearwater_tosca.yaml | 151 ----- docs/parser_docs/yang2tosca/yang2tosca.rst | 98 ---- docs/release/configguide/featureconfig.rst | 21 + docs/release/configguide/index.rst | 12 + docs/release/configguide/postinstall.rst | 38 ++ docs/release/installation/index.rst | 11 + .../installation/installation.instruction.rst | 76 +++ docs/release/release-notes/index.rst | 11 + docs/release/release-notes/release-notes.rst | 233 ++++++++ docs/release/scenarios/scenario.name/index.rst | 16 + .../scenario.name/scenario.description.rst | 39 ++ docs/release/userguide/feature.userguide.rst | 184 ++++++ docs/release/userguide/index.rst | 23 + docs/testing/index.rst | 14 + docs/testing/testusage.rst | 54 ++ docs/userguide/featureusage.rst | 184 ------ docs/userguide/index.rst | 26 - docs/userguide/policy2tosca.rst | 52 -- docs/userguide/testusage.rst | 54 -- docs/userguide/yang2tosca.rst | 49 -- 50 files changed, 2682 insertions(+), 2391 deletions(-) create mode 100644 docs/developer/design/examples/Simple_RNC.yaml create mode 100644 docs/developer/design/examples/Simple_RNC_definition.yaml create mode 100644 docs/developer/design/examples/TOSCA_nfv_definition_1_0.yaml create mode 100644 docs/developer/design/examples/clearwater_tosca.yaml create mode 100644 docs/developer/design/images/vRNC_Definition.png create mode 100644 docs/developer/design/images/vRNC_Topology.png create mode 100644 docs/developer/design/index.rst create mode 100644 docs/developer/design/parser_new_keywords.rst create mode 100644 docs/developer/design/policy2tosca.rst create mode 100644 docs/developer/design/vRNC_tosca_intro.rst create mode 100644 docs/developer/design/yang2tosca.rst create mode 100644 docs/developer/overview/index.rst create mode 100644 docs/developer/overview/overview.rst create mode 100644 docs/developer/requirements/index.rst delete mode 100644 docs/installationprocedure/feature.configuration.rst delete mode 100644 docs/installationprocedure/featureconfig.rst delete mode 100644 docs/installationprocedure/index.rst delete mode 100644 docs/installationprocedure/installerconfig.rst delete mode 100644 docs/installationprocedure/policy2tosca.rst delete mode 100644 docs/installationprocedure/yang2tosca.rst delete mode 100644 docs/parser_docs/images/vRNC_Definition.png delete mode 100644 docs/parser_docs/images/vRNC_Topology.png delete mode 100644 docs/parser_docs/index.rst delete mode 100644 docs/parser_docs/intro/intro.rst delete mode 100644 docs/parser_docs/policy2tosca/policy2tosca.rst delete mode 100644 docs/parser_docs/tosca2heat/examples/Simple_RNC.yaml delete mode 100644 docs/parser_docs/tosca2heat/examples/Simple_RNC_definition.yaml delete mode 100644 docs/parser_docs/tosca2heat/examples/TOSCA_nfv_definition_1_0.yaml delete mode 100644 docs/parser_docs/tosca2heat/parser_new_keywords.rst delete mode 100644 docs/parser_docs/vRNC_tosca_intro.rst delete mode 100644 docs/parser_docs/yang2tosca/clearwater_tosca.yaml delete mode 100644 docs/parser_docs/yang2tosca/yang2tosca.rst create mode 100644 docs/release/configguide/featureconfig.rst create mode 100644 docs/release/configguide/index.rst create mode 100644 docs/release/configguide/postinstall.rst create mode 100644 docs/release/installation/index.rst create mode 100644 docs/release/installation/installation.instruction.rst create mode 100644 docs/release/release-notes/index.rst create mode 100644 docs/release/release-notes/release-notes.rst create mode 100644 docs/release/scenarios/scenario.name/index.rst create mode 100644 docs/release/scenarios/scenario.name/scenario.description.rst create mode 100644 docs/release/userguide/feature.userguide.rst create mode 100644 docs/release/userguide/index.rst create mode 100644 docs/testing/index.rst create mode 100644 docs/testing/testusage.rst delete mode 100644 docs/userguide/featureusage.rst delete mode 100644 docs/userguide/index.rst delete mode 100644 docs/userguide/policy2tosca.rst delete mode 100644 docs/userguide/testusage.rst delete mode 100644 docs/userguide/yang2tosca.rst (limited to 'docs') diff --git a/docs/developer/design/examples/Simple_RNC.yaml b/docs/developer/design/examples/Simple_RNC.yaml new file mode 100644 index 0000000..281b064 --- /dev/null +++ b/docs/developer/design/examples/Simple_RNC.yaml @@ -0,0 +1,457 @@ +## Licensed under the Apache License, Version 2.0 (the "License"); you may +## not use this file except in compliance with the License. You may obtain +## a copy of the License at +## +## http://www.apache.org/licenses/LICENSE-2.0 +## +## Unless required by applicable law or agreed to in writing, software +## distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +## WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +## License for the specific language governing permissions and limitations +## under the License. + +tosca_definitions_version: tosca_simple_profile_for_nfv_1_0_0 + +metadata: + template_name: tosca_simple_profile_for_nfv_vRNC + template_author: opnfv_parser_project_from_zte + 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: + - in_range: [ 1, 200 ] + + substitution_mappings: + node_type: rnc.nodes.VNF + requirements: + virtualLink_VNFM: [ MM_Port_CTRL, virtualLink ] + virtualLink_EMS: [ MM_Port_EMS, virtualLink ] + virtualLink_TRAFFIC: [ LB_Port_EXTERMEDIA, virtualLink ] + + # definition of the node templates of the topology + node_templates: + MM_Active: + type: rnc.nodes.compute.MM + properties: + activestatus: 1 + capabilities: + os: + properties: *compute_props_os_DEF + host: + properties: *compute_props_host_MM + requirements: + - local_storage: + node: MM_BlockStorage + relationship: Storage_attachesto + artifacts: + #the VM image of MM + vm_image: mm.image + interfaces: + Standard: + create: + implementation: mm_install.sh + configure: + implementation: mm_active_configure.sh + attributes: + ip_address: { get_attribute: [ SELF, private_address ] } + + MM_Passive: + type: rnc.nodes.compute.MM + properties: + activestatus: 0 + capabilities: + os: + properties: *compute_props_os_DEF + host: + properties: *compute_props_host_MM + requirements: + - local_storage: + node: MM_BlockStorage + relationship: Storage_attachesto + - 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 + attributes: + ip_address: { get_attribute: [ SELF, private_address ] } + + CM_Active: + type: rnc.nodes.compute.CM + properties: + activestatus: 1 + capabilities: + os: + properties: *compute_props_os_DEF + host: + properties: *compute_props_host_CM + scalable: + properties: + min_instances: 1 + max_instances: 126 + default_instances: 1 + artifacts: + #the VM image of CM + vm_image: cm.image + interfaces: + Standard: + create: + implementation: cm_install.sh + configure: + implementation: cm_active_configure.sh + attributes: + ip_address: { get_attribute: [ SELF, private_address ] } + + CM_Passive: + type: rnc.nodes.compute.CM + properties: + activestatus: 0 + capabilities: + os: + properties: *compute_props_os_DEF + host: + properties: *compute_props_host_CM + scalable: + properties: + min_instances: 1 + max_instances: 126 + default_instances: 1 + requirements: + - 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 + attributes: + ip_address: { get_attribute: [ SELF, private_address ] } + + DM: + type: rnc.nodes.compute.DM + capabilities: + os: + properties: *compute_props_os_DEF + host: + properties: *compute_props_host_DM + scalable: + properties: + min_instances: 1 + max_instances: 120 + default_instances: 1 + artifacts: + vm_image: dm.image + interfaces: + Standard: + create: + implementation: dm_install.sh + configure: + implementation: dm_configure.sh + attributes: + ip_address: { get_attribute: [ SELF, private_address ] } + + LB: + type: rnc.nodes.compute.LB + capabilities: + os: + properties: *compute_props_os_DEF + host: + properties: *compute_props_host_LB + scalable: + properties: + min_instances: 1 + max_instances: 20 + default_instances: 1 + artifacts: + #the VM image of LB + vm_image: lb.image + interfaces: + Standard: + create: + implementation: lb_install.sh + configure: + implementation: lb_configure.sh + 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_Net: + type: rnc.nodes.VL + properties: + vendor: ZTE + cidr: "128.0.0.0/8" + network_name: Ctrl_Net + network_type: vlan + segmentation_id: 110 + dhcp_enabled: false + + INTERMEDIA_Net: + type: rnc.nodes.VL + properties: + vendor: ZTE + cidr: 10.0.0.0/8 + start_ip: 10.1.0.1 + end_ip: 10.1.2.254 + network_name: InterMedia_Net + network_type: vlan + segmentation_id: 111 + dhcp_enabled: false + + EXTERMEDIA_Net: + type: rnc.nodes.VL + properties: + vendor: ZTE + cidr: 172.1.0.0/16 + start_ip: 172.1.0.2 + end_ip: 172.1.2.254 + gateway_ip: 172.1.0.1 + network_name: ExterMdedia_Net + network_type: vlan + segmentation_id: 100 + dhcp_enabled: false + + EMS_Net: + type: rnc.nodes.VL + properties: + vendor: ZTE + cidr: 129.0.0.0/24 + start_ip: 129.0.0.2 + end_ip: 129.0.0.64 + gateway_ip: 129.0.0.1 + network_name: Ems_Net + network_type: vlan + segmentation_id: 101 + dhcp_enabled: false + + MM_Port_EMS: + type: rnc.nodes.CP + properties: + order: 0 + is_default: true + requirements: + - virtualBinding: MM_Active + - virtualLink: EMS_Net + + MM_Port_CTRL: + type: rnc.nodes.CP + properties: + order: 1 + is_default: false + requirements: + - virtualBinding: MM_Active + - virtualLink: CTRL_Net + + MM_Port_EXTERMEDIA: + type: rnc.nodes.CP + properties: + order: 2 + is_default: false + requirements: + - virtualBinding: MM_Active + - virtualLink: EXTERMEDIA_Net + + CM_Port_CTRL: + type: rnc.nodes.CP + properties: + order: 0 + is_default: true + requirements: + - virtualBinding: CM_Active + - virtualLink: CTRL_Net + + CM_Port_INTERMEDIA: + type: rnc.nodes.CP + properties: + order: 1 + is_default: false + requirements: + - virtualBinding: CM_Active + - virtualLink: INTERMEDIA_Net + + DM_Port_CTRL: + type: rnc.nodes.CP + properties: + order: 0 + is_default: true + requirements: + - virtualBinding: DM + - virtualLink: CTRL_Net + + DM_Port_INTERMEDIA: + type: rnc.nodes.CP + properties: + order: 1 + is_default: false + requirements: + - virtualBinding: DM + - virtualLink: INTERMEDIA_Net + + LB_Port_CTRL: + type: rnc.nodes.CP + properties: + order: 0 + is_default: true + requirements: + - virtualBinding: LB + - virtualLink: CTRL_Net + + LB_Port_INTERMEDIA: + type: rnc.nodes.CP + properties: + order: 1 + is_default: false + requirements: + - virtualBinding: LB + - virtualLink: INTERMEDIA_Net + + LB_Port_EXTERMEDIA: + type: rnc.nodes.CP + properties: + order: 2 + is_default: false + requirements: + - virtualBinding: LB + - virtualLink: EXTERMEDIA_Net + + # 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, private_address ] } + + private_ip_of_CM: + description: The private IP address of the CM. + value: { get_attribute: [ CM_Active, private_address ] } + + private_ip_of_DM: + description: The private IP address of the DM. + value: { get_attribute: [ DM, private_address ] } + + private_ip_of_LB: + description: The private IP address of the LB. + value: { get_attribute: [ LB, private_address ] } + + # definition of logical groups of node templates within the topology + # To be continue about this section + groups: + AnitAffinityServerGroup: + type: tosca.groups.Root + description: > + Logical component grouping for anti affinity placement, + MM_Acitve, MM_Passive, CM_Acitve, CM_Passive, LB must host + on different host to reduce the impact to each other. + members: [ MM_Active, MM_Passive, CM_Active, CM_Passive, LB ] + policies: + type: tosca.policy.placement.Antilocate + + AffinityServerGroup: + type: tosca.groups.Root + description: > + Logical component grouping for affinity placement, + CM and DM will be host on the same host to get high performence + members: [ CM_Active, DM ] + policies: + type: tosca.policy.placement.Antilocate + + policies: + - AnitAffinityPolicy: + type: tosca.policies.Placement.Antilocate + description: Apply anti-locate placement policy to group + targets: [ AnitAffinityServerGroup ] + + - AffinityPolicy: + type: tosca.policies.Placement.Colocate + description: Apply anti-locate placement policy to group + targets: [ AffinityServerGroup ] + + # 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/developer/design/examples/Simple_RNC_definition.yaml b/docs/developer/design/examples/Simple_RNC_definition.yaml new file mode 100644 index 0000000..7478d98 --- /dev/null +++ b/docs/developer/design/examples/Simple_RNC_definition.yaml @@ -0,0 +1,119 @@ +## Licensed under the Apache License, Version 2.0 (the "License"); you may +## not use this file except in compliance with the License. You may obtain +## a copy of the License at +## +## http://www.apache.org/licenses/LICENSE-2.0 +## +## Unless required by applicable law or agreed to in writing, software +## distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +## WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +## License for the specific language governing permissions and limitations +## under the License. + +tosca_definitions_version: tosca_simple_profile_for_nfv_1_0_0 + +#metadata: +# template_name: tosca_simple_profile_for_nfv_vRNC +# template_author: opnfv_parser_project_from_zte +# 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 + +# The import section shall be ignored if the value of tosca_definitions_version +# is tosca_simple_profile_for_nfv_1_0_0, otherwise will be needed. +#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 RNC + default: UMTS + required: false + constraints: + - valid_values: [ TDS-CDMA, UMTS, CDMA ] + requirements: + - virtualLink_VNFM: + capability: tosca.capabilities.nfv.VirtualLinkable + relationship: tosca.relationships.nfv.VirtualLinksTo + node: rnc.nodes.VL + - virtualLink_EMS: + capability: tosca.capabilities.nfv.VirtualLinkable + relationship: tosca.relationships.nfv.VirtualLinksTo + node: rnc.nodes.VL + - virtualLink_TRAFFIC: + capability: tosca.capabilities.nfv.VirtualLinkable + relationship: tosca.relationships.nfv.VirtualLinksTo + node: rnc.nodes.VL + + rnc.nodes.compute.MM: + derived_from: tosca.nodes.nfv.VDU + properties: + activestatus: + type: integer + description: 1 for active or 0 for passive + constraints: + - 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. + + rnc.nodes.compute.CM: + derived_from: tosca.nodes.nfv.VDU + properties: + activestatus: + type: integer + description: 1 for active or 0 for passive + constraints: + - valid_values: [ 0, 1 ] + + rnc.nodes.compute.DM: + derived_from: tosca.nodes.nfv.VDU + + rnc.nodes.compute.LB: + derived_from: tosca.nodes.nfv.VDU + + rnc.nodes.BlockStorage: + derived_from: tosca.nodes.BlockStorage + + rnc.nodes.VL: + derived_from: tosca.nodes.nfv.VL + + rnc.nodes.CP: + derived_from: tosca.nodes.nfv.CP + +# 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 diff --git a/docs/developer/design/examples/TOSCA_nfv_definition_1_0.yaml b/docs/developer/design/examples/TOSCA_nfv_definition_1_0.yaml new file mode 100644 index 0000000..c535144 --- /dev/null +++ b/docs/developer/design/examples/TOSCA_nfv_definition_1_0.yaml @@ -0,0 +1,627 @@ +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +########################################################################## +# The content of this file reflects TOSCA NFV Profile in YAML version +# 1.0.0, which is derived from TOSCA Simple Profile. It describes the +# definition for nfv TOSCA types including Node Type, +# Relationship Type, Capability Type and Interfaces. +########################################################################## +tosca_definitions_version: tosca_simple_profile_for_nfv_1_0_0 + +########################################################################## +# Node Type. +# A Node Type is a reusable entity that defines the type of one or more +# Node Templates. +########################################################################## + +tosca.nodes.nfv.VNF: + derived_from: tosca.nodes.Root + properties: + id: + type: string + description: ID of this VNF + vendor: + type: string + description: name of the vendor who generate this VNF + version: + type: version + description: version of the software for this VNF + requirements: + - virtualLink: + capability: tosca.capabilities.nfv.VirtualLinkable + relationship: tosca.relationships.nfv.VirtualLinksTo + node: tosca.nodes.nfv.VL + +tosca.nodes.nfv.VDU: + derived_from: tosca.nodes.Compute + properties: + id: + type: string + required: true + description: > + A unique identifier of this VDU within the scope + of the VNFD, including version functional + description and other identification information. + This will be used to refer to VDU when defining + relationships between them. + capabilities: + high_availability: + type: tosca.capabilities.nfv.HA + virtualbinding: + type: tosca.capabilities.nfv.VirtualBindable + monitoring_parameter: + type: tosca.capabilities.nfv.Metric + requirements: + - high_availability: + capability: tosca.capabilities.nfv.HA + relationship: tosca.relationships.nfv.HA + node: tosca.nodes.nfv.VDU + occurrences: [ 0, 1 ] + +tosca.nodes.nfv.CP: + derived_from: tosca.nodes.network.Port + description: > + The NFV CP node represents a logical connection point + entity as defined by ETSI GS NFV-MAN + properties: + type: + type: string + required: false + requirements: + - virtualLink: + capability: tosca.capabilities.nfv.VirtualLinkable + relationship: tosca.relationships.nfv.VirtualLinksTo + node: tosca.nodes.nfv.VL + - virtualBinding: + capability: tosca.capabilities.nfv.VirtualBindable + relationship: tosca.relationships.nfv.VirtualBindsTo + node: tosca.nodes.nfv.VDU + +tosca.nodes.nfv.VL: + derived_from: tosca.nodes.network.Network + properties: + vendor: + type: string + required: true + description: name of the vendor who generate this VL + capabilities: + virtual_linkable: + type: tosca.capabilities.nfv.VirtualLinkable + +tosca.nodes.nfv.VL.ELine: + derived_from: tosca.nodes.nfv.VL + capabilities: + virtual_linkable: + occurrences: 2 + +tosca.nodes.nfv.VL.ELAN: + derived_from: tosca.nodes.nfv.VL + +tosca.nodes.nfv.VL.ETree: + derived_from: tosca.nodes.nfv.VL + +tosca.nodes.nfv.FP: + derived_from: tosca.nodes.Root + properties: + policy: + type: string + required: false + description: name of the vendor who generate this VL + requirements: + - forwarder: + capability: tosca.capabilities.nfv.Forwarder + relationship: tosca.relationships.nfv.ForwardsTo + +########################################################################## +# Relationship Type. +# A Relationship Type is a reusable entity that defines the type of one +# or more relationships between Node Types or Node Templates. +########################################################################## + +tosca.relationships.nfv.VirtualLinksTo: + derived_from: tosca.relationships.network.LinksTo + valid_target_types: [ tosca.capabilities.nfv.VirtualLinkable ] + +tosca.relationships.nfv.VirtualBindsTo: + derived_from: tosca.relationships.network.BindsTo + valid_target_types: [ tosca.capabilities.nfv.VirtualBindable ] + +tosca.relationships.nfv.HA: + derived_from: tosca.relationships.Root + valid_target_types: [ tosca.capabilities.nfv.HA ] + +tosca.relationships.nfv.Monitor: + derived_from: tosca.relationships.ConnectsTo + valid_target_types: [ tosca.capabilities.nfv.Metric ] + +tosca.relationships.nfv.ForwardsTo: + derived_from: tosca.relationships.root + valid_target_types: [ tosca.capabilities.nfv.Forwarder] + +########################################################################## +# Capability Type. +# A Capability Type is a reusable entity that describes a kind of +# capability that a Node Type can declare to expose. +########################################################################## + +tosca.capabilities.nfv.VirtualLinkable: + derived_from: tosca.capabilities.network.Linkable + +tosca.capabilities.nfv.VirtualBindable: + derived_from: tosca.capabilities.network.Bindable + +tosca.capabilities.nfv.HA: + derived_from: tosca.capabilities.Root + valid_source_types: [ tosca.nodes.nfv.VDU ] + +tosca.capabilities.nfv.HA.ActiveActive: + derived_from: tosca.capabilities.nfv.HA + +tosca.capabilities.nfv.HA.ActivePassive: + derived_from: tosca.capabilities.nfv.HA + +tosca.capabilities.nfv.Metric: + derived_from: tosca.capabilities.Root + +tosca.capabilities.nfv.Forwarder: + derived_from: tosca.capabilities.Root + + + +tosca.capabilities.nfv.CPU_extension: + derived_from: tosca.capabilities.Root + properties: + cpu_instruction_set_extension: + type: list + required: false + entry_schema: + type: string + constraints: + - min_length: 1 + description: > + Instruction sets are often enhanced with + instruction set extensions. This element + represents instruction set extensions that the + VDU has been developed, optimized or tested with + cpu_model: + type: list + required: false + entry_schema: + type: string + constraints: + - min_length: 1 + description: > + The CPU model for which the VDU has been + developed, compiled with CPU model specific + optimisations, optimized or validated on. + cpu_model_specification_binding: + type: string + required: false + description: > + VDUs may be developed, compiled, optimized + or validated on particular CPU models. Some + deployments may wish to permit the VDU to + be deployed on a platform with the specified + CPU only, or with an alternative CPU with the + same architecture, instruction set, and if + specified, instruction set extensions, or with a + CPU of equivalent or greater capability. + cpu_min_clock_speed: + type: string + required: false + description: > + The minimum CPU clock speed may be one of + the elements that the development and + validation of the VDU has been considered + with. This may be in conjunction with some of + the other CPU elements such as CPU Model. + Requiring a minimum clock speed may be part + of a deployment requirement necessary to + help ensure particular performance or timing + related characteristics are met in the + deployment. + cpu_core_reservation: + type: string + required: false + description: > + The number of CPU cores allocated to the + VDU. This may be necessary to help ensure + particular performance or timing related + characteristics are met in the deployment. + cpu_simultaneous_multi_threading_hw_thread_specification: + type: string + required: false + description: > + The use of Simultaneous Multi-Threading HW + is an efficient way to increase the compute + capacity of a platform. SMT HW threads share + some CPU core resources. In some VDU + implementations, it may be necessary to very + explicitly control the HW thread allocation on a + platform. This could be to help ensure locality + in data caches or as a mechanism to enhance + determinism. + cpu_core_oversubscription_policy: + type: string + required: false + description: > + The VDU may co-exist on a platform with + multiple VDUs or VMs and as such will be + sharing CPU core resources available in the + platform. It may be necessary to specify the + CPU core oversubscription policy in terms of + virtual cores to physical cores/threads on the + platform. This policy could be based on + required VDU deployment characteristics such + as high performance, low latency, and /or + deterministic behaviour. + cpu_core_and_hw_thread_allocation_topology_policy: + type: string + required: false + description: > + The VDU may be designed to use a specific + mapping of virtual CPUs to HW threads or + cores with a specific allocation topology in + order to ensure locality in data caches and + maximize performance. The VDU will not + specify which physical resources to use, but + may specify if virtual CPUs shall be coupled + together as HW threads belonging to the same + core, or as belonging to the same processor. + cpu_last_level_cache_size: + type: scalar-unit.size + required: false + constraints: + - greater_or_equal: 0 KB + description: > + The size of the last level cache may impact the + performance of the VDU, particularly for cache + intensive workloads. + cpu_direct_io_access_to_cache: + type: string + required: false + description: > + The ability of an I/O device to have direct + access to the CPU cache enables + considerable memory access savings and for + I/O intensive workloads can offer significant + performance benefits. + cpu_translation_look_aside_buffer_parameter: + type: list + required: false + entry_schema: + type: string + constraints: + - min_length: 1 + description: > + The Translation Look-aside Buffer (TLB) is a + cache for address translation typically used by + a hardware based memory management units. + The Input/Output TLB (IOTLB) is a cache for + address translation related to remapping + hardware. The availability of a TLB and an + IOTLB can significantly improve the + performance of a virtual machine. + A number of parameters of the TLBs impact + the performance potential. These include: + 1 TLB Size. + 2 TLB Large Page Support. + 3 IOTLB Size. + 4 IOTLB Large Page Support. + cpu_hot_add: + type: boolean + required: false + description: > + Hot add CPU is the ability to dynamically add + CPUs to a running system. The new CPU can + immediately replace a failing CPU via + migration or be brought on-line later. + cpu_support_accelerator: + type: list + required: false + entry_schema: + type: string + constraints: + - min_length: 1 + description: > + This capability refers to support by the CPU + and associated chipsets of a data processing + accelerator framework, together with its + libraries and drivers. + +tosca.capabilities.nfv.Memory_extension: + derived_from: tosca.capabilities.Root + properties: + memory_parameter: + type: list + required: false + entry_schema: + type: string + constraints: + - min_length: 1 + description: > + There are a number of memory related parameters that can have a + significant impact on the performance and/or reliability of the VDU. + These include: + • Memory Type. + • Memory Speed + • Number of memory channels. + • Size of available memory. + • Reliability characteristics such as Memory Error Correction + codes. + • Memory oversubscription policy. + • Memory bandwidth required per VDU. + • Number of large pages required per VDU + • Non-Uniform Memory Architecture (NUMA) Allocation Policy, + i.e. in NUMA architecture how you specify memory allocation + that is cognisant of the relevant process/core allocation. This + applies also to allocation of huge pages. + memory_hot_add: + type: boolean + required: false + description: > + Hot add memory is the ability to add physical memory while the system + is running. Added memory can immediately replace failing memory via + migration or be brought on-line later. + +tosca.capabilities.nfv.Hypervisors: + derived_from: tosca.capabilities.Root + properties: + hypervisors: + type: list + required: false + entry_schema: + type: string + constraints: + - min_length: 1 + description: > + There are a number of hypervisor related parameters that can have a + significant impact on the deployment and performance of the VDU. + These include: + • Hypervisor type + • Hypervisor version as a VDU may be validated with a particular + version. + • Hypervisor Address Translation support parameters including: + o Second Level Address Translation. + o Second Level Address Translation with Large page + support. + o Second Level Address Translation for I/O. + o Second Level Address Translation for I/O with Large page. + support. Where "Large" is considered to be 1 GB or + greater. + o Support for interrupt remapping, i.e. supporting the IOMMU + in the hypervisor. + o Support of data processing acceleration libraries in the + hypervisor, i.e. for acceleration libraries which require + hypervisor support for high performance. + +tosca.capabilities.nfv.PCIe: + derived_from: tosca.capabilities.Root + properties: + platform_pcie_parameter: + type: list + required: false + entry_schema: + type: string + constraints: + - min_length: 1 + description: > + There are a number of PCIe related parameters that can + have a significant impact on the deployment and + performance of the VDU. These include: + • PCIe generational capabilities. + • PCIe bandwidth. + • PCIe Device Pass-through. + • PCIe SR-IOV as the VDU may require that an SR- + IOV virtual vunction from the specified PCIe + device can be allocated to the VM. + • PCIe Device Assignment Affinity. The VDU may + require for performance reasons the ability to + allocate a partitionable PCIe Device capability + such as a NIC port, an entire NIC or a NIC virtual + function to the VDU while also ensuring that the + selected device is locally connected to the same + processor. + platform_pcie_parameter: + type: string + required: false + description: > + Detecting and reporting correctable and un-correctable + (fatal and non-fatal) PCIe errors to software for error + handling and remediation. + platform_acceleration_device: + type: list + required: false + entry_schema: + type: string + constraints: + - min_length: 1 + description: > + The VDU may have been developed, optimized or + tested with an acceleration device such as a crypto + accelerator that may typically be accessed over a PCIe + bus. + +tosca.capabilities.nfv.network.Interfaces: + derived_from: tosca.capabilities.Root + properties: + network_interface_card_capability: + type: list + required: false + entry_schema: + type: string + constraints: + - min_length: 1 + description: > + The VDU may have been developed, optimized or + tested with certain NIC capabilities to benefit items + such as performance or scalability. These include: + • TCP Large Segmentation Offload (LSO) for + offload the segmentation of large TCP + messages into MTU sized packets from the + CPU to the NIC. + • Large Receive Offload (LRO), i.e. the + inverse of LSO by coalescing incoming + TCP/IP packets into larger segments for + processing in the CPU. + • Checksum Offload. + • Receive Side Scaling (RSS), for packet + distribution between cores. + • Flow Director, for more fine grained (than + RSS) packet distribution between cores. + • Mirroring of packets between interfaces. + • Availability of Independent Rx/Tx queues for + VM so that queue pairs in the NIC can be + allocated to the VMs. + • Jumbo Frame support. + • VLAN tag stripping. + • RDMA support. + • SR-IOV support. + • Data processing acceleration software + library support, e.g. DPDK ® - see note. + network_interface_bandwidth: + type: list + required: false + entry_schema: + type: string + constraints: + - min_length: 1 + description: > + The network speed/bandwidth to be guaranteed + per requested NIC. + data_processing_acceleration_library: + type: list + required: false + entry_schema: + type: string + constraints: + - min_length: 1 + description: > + Name and version of the data processing + acceleration library used. Orchestration can match + any NIC that is known to be compatible with the + specified library + +tosca.capabilities.nfv.network.Virtual_switches: + derived_from: tosca.capabilities.Root + properties: + vswitch_capability: + type: list + required: false + entry_schema: + type: string + constraints: + - min_length: 1 + description: > + The VDU may have been developed, optimized or tested with a + particular vSwitch and may require specifying the vSwitch type, version + and key features such as overlay tunnel termination support. + +tosca.capabilities.nfv.Storage: + derived_from: tosca.capabilities.Root + properties: + storage_requirement: + type: scalar-unit.size + required: false + constraints: + - greater_or_equal: 0 MB + description: > + Required storage characteristics (e.g. size), including Key Quality + Indicators (KQIs) for performance and reliability/availability. + rdma_support_bandwitdh: + type: integer + required: false + constraints: + - greater_or_equal: 0 + description: > + The VDU may have been developed, optimized or tested with a + storage supporting RDMA over a given bandwidth. + + + +########################################################################## +# Group Type. +# Defined within the TOSCA nfv Simple Profile specification. +########################################################################## +tosca.groups.nfv.VNFFG: + derived_from: tosca.groups.Root + properties: + vendor: + type: string + required: true + description: name of the vendor who generate this VNFFG + version: + type: string + required: true + description: version of this VNFFG + number_of_endpoints: + type: integer + required: true + description: count of the external endpoints included in this VNFFG + dependent_virtual_link: + type: list + description: Reference to a VLD used in this Forwarding Graph + required: true + entry_schema: + type: string + connection_point: + type: list + description: Reference to Connection Points forming the VNFFG + required: true + entry_schema: + type: string + constituent_vnfs: + type: list + description: Reference to a list of VNFD used in this VNF Forwarding Graph + required: true + entry_schema: + type: string + targets: + type: list + required: false + description: list of Network Forwarding Path within the VNFFG + entry_schema: + type: string + requirements: + - forwarder: + capability: tosca.capabilities.nfv.Forwarder + relationship: tosca.relationships.nfv.ForwardsTo + +#data_types: +########################################################################## +# Data Type. To be continue +# A Datatype is a complex data type declaration which contains other +# complex or simple data types. +# BWT: will be added future. +########################################################################## +#tosca.datatypes.network.XX: +# properties: +# network_name: +# type: string +# network_id: +# type: string +# addresses: +# type: list +# entry_schema: +# type: string + +#artifact_types: +########################################################################## +# Artifact Type.To be continue +# An Artifact Type is a reusable entity that defines the type of one or more +# files which Node Types or Node Templates can have dependent relationships +# and used during operations such as during installation or deployment. +# BWT: will be added future. +########################################################################## +#tosca.artifacts.File.XXX: +# derived_from: tosca.artifacts.Root diff --git a/docs/developer/design/examples/clearwater_tosca.yaml b/docs/developer/design/examples/clearwater_tosca.yaml new file mode 100644 index 0000000..2b4dd52 --- /dev/null +++ b/docs/developer/design/examples/clearwater_tosca.yaml @@ -0,0 +1,151 @@ +tosca_definitions_version: tosca_simple_yaml_1_0_0 +description: > + This module defines a VNF Deployment Unit. + +metadata: + template_name: clearwater + template_author: HP + +dsl_definitions: + compute_props_host_ellis: &compute_props_host_ellis + num_cpu: 4 + mem_size: 4096 + compute_props_host_bono: &compute_props_host_bono + num_cpu: 3 + mem_size: 2048 + +node_types: + tosca.nodes.compute.ellis: + derived_from: tosca.nodes.compute + + tosca.nodes.compute.bono: + derived_from: tosca.nodes.compute + +topology_template: + # a description of the topology template + description: > + + + inputs: + storage_size: + type: scalar-unit.size + default: 2048 M + description: The required storage resource + + storage_location: + type: string + description: > + Block storage mount point (filesystem path). + + node_templates: + ellis: + type: tosca.nodes.compute.ellis + capabilities: + host: + properties: *compute_props_host_ellis + scalable: + properties: + min_instances: 1 + default_instances: 1 + requirements: + - local_storage: + node: ellis_BlockStorage + relationship: + type: AttachesTo + properties: + location: { get_input: storage_location } + interfaces: + Standard: + start: + implementation: start.sh + delete: + implementaion: stop.sh + stop: + implementaion: shutdown.sh + + ellis_BlockStorage: + type: tosca.nodes.BlockStorage + properties: + size: { get_input: storage_size } + + bono: + type: tosca.nodes.compute.bono + capabilities: + host: + properties: *compute_props_host_bono + scalable: + properties: + min_instances: 3 + default_instances: 3 + requirements: + - local_storage: + node: bono_BlockStorage + relationship: + type: AttachesTo + properties: + location: { get_input: storage_location } + interfaces: + Standard: + start: + implementation: start.sh + delete: + implementaion: stop.sh + stop: + implementaion: shutdown.sh + + bono_BlockStorage: + type: tosca.nodes.BlockStorage + properties: + size: { get_input: storage_size } + + clearwater_network1: + type: tosca.nodes.network.Network + properties: + ip_version: 4 + + ellis_port1: + type: tosca.nodes.network.Port + requirements: + - binding: + node: ellis + - link: + node: clearwater_network1 + + clearwater_network2: + type: tosca.nodes.network.Network + properties: + ip_version: 4 + + ellis_port2: + type: tosca.nodes.network.Port + requirements: + - binding: + node: ellis + - link: + node: clearwater_network2 + + clearwater_network1: + type: tosca.nodes.network.Network + properties: + ip_version: 4 + + bono_port1: + type: tosca.nodes.network.Port + requirements: + - binding: + node: bono + - link: + node: clearwater_network1 + + clearwater_network2: + type: tosca.nodes.network.Network + properties: + ip_version: 4 + + bono_port2: + type: tosca.nodes.network.Port + requirements: + - binding: + node: bono + - link: + node: clearwater_network2 diff --git a/docs/developer/design/images/vRNC_Definition.png b/docs/developer/design/images/vRNC_Definition.png new file mode 100644 index 0000000..84d25e3 Binary files /dev/null and b/docs/developer/design/images/vRNC_Definition.png differ diff --git a/docs/developer/design/images/vRNC_Topology.png b/docs/developer/design/images/vRNC_Topology.png new file mode 100644 index 0000000..e4f04f1 Binary files /dev/null and b/docs/developer/design/images/vRNC_Topology.png differ diff --git a/docs/developer/design/index.rst b/docs/developer/design/index.rst new file mode 100644 index 0000000..ab83cec --- /dev/null +++ b/docs/developer/design/index.rst @@ -0,0 +1,15 @@ +.. This work is licensed under a Creative Commons Attribution 4.0 International License. +.. http://creativecommons.org/licenses/by/4.0 + +********************************* +OPNFV Parser Design Documentation +********************************* + +.. toctree:: + :numbered: + :maxdepth: 6 + + yang2tosca.rst + policy2tosca.rst + parser_new_keywords.rst + vRNC_tosca_intro.rst diff --git a/docs/developer/design/parser_new_keywords.rst b/docs/developer/design/parser_new_keywords.rst new file mode 100644 index 0000000..f430b1d --- /dev/null +++ b/docs/developer/design/parser_new_keywords.rst @@ -0,0 +1,117 @@ +.. This work is licensed under a Creative Commons Attribution 4.0 International License. +.. http://creativecommons.org/licenses/by/4.0 + +=================== +New Parser keywords +=================== + +1.NFV-tosca new keywords +------------------------ + +All keywords in nfv tosca are not implemented in code, and will be +implemented by parser. + +1.1 Nodes types +~~~~~~~~~~~~~~~ + +Basic types +^^^^^^^^^^^ + +* tosca.nodes.nfv.VDU +* tosca.nodes.nfv.CP +* tosca.nodes.nfv.VL + +Extend types +^^^^^^^^^^^^ + +* tosca.nodes.nfv.VL.ELine +* tosca.nodes.nfv.VL.ELAN +* tosca.nodes.nfv.VL.ETree +* tosca.nodes.nfv.FP + +1.2 Capability types +~~~~~~~~~~~~~~~~~~~~ + +Basic types +^^^^^^^^^^^ + +* tosca.capabilities.nfv.VirtualBindable +* tosca.capabilities.nfv.VirtualLinkable +* tosca.capabilities.nfv.HA.ActiveActive +* tosca.capabilities.nfv.HA.ActivePassive +* tosca.capabilities.nfv.Metric + +Extend types +^^^^^^^^^^^^ + +* tosca.capabilities.nfv.Forwarder +* tosca.capabilities.nfv.CPU\_extension +* tosca.capabilities.nfv.Memory\_extension +* tosca.capabilities.nfv.Hypervisors +* tosca.capabilities.nfv.PCIe +* tosca.capabilities.nfv.network.Interfaces +* tosca.capabilities.nfv.network.Virtual\_switches +* tosca.capabilities.nfv.Storage + +1.3 Relationship types +~~~~~~~~~~~~~~~~~~~~~~ + +Basic types +^^^^^^^^^^^ + +* tosca.relationships.nfv.VirtualBindsTo +* tosca.relationships.nfv.VirtualLinksTo +* tosca.relationships.nfv.HA +* tosca.relationships.nfv.Monitor + +Extend types +^^^^^^^^^^^^ + +* tosca.relationships.nfv.ForwardsTo + +1.4 Group Types +~~~~~~~~~~~~~~~ + +* tosca.groups.nfv.VNFFG + +2.Simple-tosca new keywords +--------------------------- + +Some keywords are only defined in tosca simple profile,but are not +supported in tosca-paser, and some keywords such as "policy type", are not yet defined +completely so far. + +2.1 topology template keyname +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +* "substitution\_mappings" syntax + + An optional declaration that exports the topology template as an + impletmentation of a node type, which is not supported by tosca-parser. + +2.2 Group types +~~~~~~~~~~~~~~~ + +Basic types +^^^^^^^^^^^ + +* tosca.group.root + +2.3 Policy Types +~~~~~~~~~~~~~~~~ + +Basic types +^^^^^^^^^^^ + +* tosca.policies.Root +* tosca.policies.Placement +* tosca.policies.Scaling + +Extend types +^^^^^^^^^^^^ + +* tosca.policies.Update +* tosca.policies.Performance +* tosca.policy.placement.Antilocate +* tosca.policy.placement.Colocate + diff --git a/docs/developer/design/policy2tosca.rst b/docs/developer/design/policy2tosca.rst new file mode 100644 index 0000000..fa238b2 --- /dev/null +++ b/docs/developer/design/policy2tosca.rst @@ -0,0 +1,87 @@ +.. This work is licensed under a Creative Commons Attribution 4.0 International License. +.. http://creativecommons.org/licenses/by/4.0 + +=================== +Parser POLICY2TOSCA +=================== + +Overview +======== + +Parser is an open source project and licensed under Apache 2. Parser will help +to provide a tooling mechanism, by parsing Telecom operators’ VNF descriptors +(YANG templates) into TOSCA templates and then further translate TOSCA +templates into certain common templates, which could be used in IaaS orchestration +projects like OpenStack Heat. + +Prerequisites +============= + +Parser - POLICY2TOSCA requires the following to be installed. + +1. cliff +-------- + +Install cliff with the following links. +:: +- `install ` +or +- `demoapp ` + +Installation +============================ + +Please follow the below installation steps to install parser - POLICY2TOSCA. + +Step 1: Clone the parser project. + +.. code-block:: bash + + git clone https://gerrit.opnfv.org/gerrit/parser + +Step 2: Install the policy2tosca module. + +.. code-block:: bash + + cd parser/policy2tosca + python setup.py install + +Execution +=========================== + +Step 1: To see a list of commands available. + +.. code-block:: bash + + policy2tosca --help + +Step 2: To see help for an individual command, include the command name on the command line + +.. code-block:: bash + + policy2tosca help + +Step 3: To inject/remove policy types/policy definitions provide the TOSCA file as input to policy2tosca command line. + +.. code-block:: bash + + policy2tosca [arguments] + +Example: + +.. code-block:: bash + + policy2tosca add-definition --policy_name rule2 --policy_type tosca.policies.Placement.Geolocation --description "test description" --properties region:us-north-1,region:us-north-2,min_inst:2 --targets VNF2,VNF4 --metadata "map of strings" --triggers "1,2,3,4" --source example.yaml + + +Step 4: Verify the TOSCA YAMl updated with the injection/removal executed. + +.. code-block:: bash + + cat "" + +Example: + +.. code-block:: bash + + cat example_tosca.yaml diff --git a/docs/developer/design/vRNC_tosca_intro.rst b/docs/developer/design/vRNC_tosca_intro.rst new file mode 100644 index 0000000..11e1bdb --- /dev/null +++ b/docs/developer/design/vRNC_tosca_intro.rst @@ -0,0 +1,166 @@ +.. This work is licensed under a Creative Commons Attribution 4.0 International License. +.. http://creativecommons.org/licenses/by/4.0 + +====================================== +OPNFV Parser tosca2heat - New Keywords +====================================== + +1.NFV-tosca new keywords +------------------------ + +All keywords in nfv tosca are not implemented in code, and will be +implemented by parser. + +1.1 Nodes types +~~~~~~~~~~~~~~~ + +Basic types +^^^^^^^^^^^ + +* tosca.nodes.nfv.VDU +* tosca.nodes.nfv.CP +* tosca.nodes.nfv.VL + +Extend types +^^^^^^^^^^^^ + +* tosca.nodes.nfv.VL.ELine +* tosca.nodes.nfv.VL.ELAN +* tosca.nodes.nfv.VL.ETree +* tosca.nodes.nfv.FP + +1.2 Capability types +~~~~~~~~~~~~~~~~~~~~ + +Basic types +^^^^^^^^^^^ + +* tosca.capabilities.nfv.VirtualBindable +* tosca.capabilities.nfv.VirtualLinkable +* tosca.capabilities.nfv.HA.ActiveActive +* tosca.capabilities.nfv.HA.ActivePassive +* tosca.capabilities.nfv.Metric + +Extend types +^^^^^^^^^^^^ + +* tosca.capabilities.nfv.Forwarder +* tosca.capabilities.nfv.CPU\_extension +* tosca.capabilities.nfv.Memory\_extension +* tosca.capabilities.nfv.Hypervisors +* tosca.capabilities.nfv.PCIe +* tosca.capabilities.nfv.network.Interfaces +* tosca.capabilities.nfv.network.Virtual\_switches +* tosca.capabilities.nfv.Storage + +1.3 Relationship types +~~~~~~~~~~~~~~~~~~~~~~ + +Basic types +^^^^^^^^^^^ + +* tosca.relationships.nfv.VirtualBindsTo +* tosca.relationships.nfv.VirtualLinksTo +* tosca.relationships.nfv.HA +* tosca.relationships.nfv.Monitor + +Extend types +^^^^^^^^^^^^ + +* tosca.relationships.nfv.ForwardsTo + +1.4 Group Types +~~~~~~~~~~~~~~~ + +* tosca.groups.nfv.VNFFG + +2.Simple-tosca new keywords +--------------------------- + +Some keywords are only defined in tosca simple profile,but are not +supported in tosca-paser, and some keywords such as "policy type", are not yet defined +completely so far. + +2.1 topology template keyname +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +* "substitution\_mappings" syntax + + An optional declaration that exports the topology template as an + impletmentation of a node type, which is not supported by tosca-parser. + +2.2 Group types +~~~~~~~~~~~~~~~ + +Basic types +^^^^^^^^^^^ + +* tosca.group.root + +2.3 Policy Types +~~~~~~~~~~~~~~~~ + +Basic types +^^^^^^^^^^^ + +* tosca.policies.Root +* tosca.policies.Placement +* tosca.policies.Scaling + +Extend types +^^^^^^^^^^^^ + +* tosca.policies.Update +* tosca.policies.Performance +* tosca.policy.placement.Antilocate +* tosca.policy.placement.Colocate + + +======================================= +OPNFV Parser tosca2heat - vRNC Topology +======================================= + +The simple vRNC topology is shown below: :numref:`figure_topo` + +.. figure:: images/vRNC_Topology.png + :name: figure_topo + :width: 100% + + vRNC Topology + +- vRNC includes four networks: EMS\_network, CTRL\_network, + Intermedia\_network and extermedia\_network; +- vRNC includes four node types: MM, LB, CM and DM; +- MM: Stands for Maintain Module, which links to EMS\_network, + CTRL\_network and extermedia\_network. It composes of active vdu and + standby vdu. +- CM: Stands for Control Module, which links to CTRL\_network and + intermedia\_network. All CM nodes form resource pool and each node + composes of active vdu and standby vdu. +- DM: Stands for Data Module, which links to CTRL\_network and + intermedia\_network. All DM nodes form resource pool and each node is + a vdu. +- LB: Stands for LineCard Module, which links to CTRL\_network and + intermedia\_network and extermedia\_network. All LB nodes form + resource pool and each node is a vdu. + +========================================= +OPNFV Parser tosca2heat - vRNC Definition +========================================= + +The files dependency and correspoding specificaiton of vRNC definition +are shown below: :numref:`figure_def` + +.. figure:: images/vRNC_Definition.png + :name: figure_def + :width: 100% + + vRNC Definition + +- TOSCA\_definition\_1.0.yaml should be the lastest version, which is + updated by tosca-parser community, but some keywords (such as + substitution\_mappings) in the correspoding standard of + "TOSCA-simple-profile-YAML-v1.0" is not supported. +- TOSCA\_nfv\_definition\_1.0.yaml is a new file, and not implemented + in code, and the correspoding standard of + "tosca-nfv-v1.0-wd02-rev02" is not complete now. diff --git a/docs/developer/design/yang2tosca.rst b/docs/developer/design/yang2tosca.rst new file mode 100644 index 0000000..5aaf463 --- /dev/null +++ b/docs/developer/design/yang2tosca.rst @@ -0,0 +1,98 @@ +.. This work is licensed under a Creative Commons Attribution 4.0 International License. +.. http://creativecommons.org/licenses/by/4.0 + +================= +Parser YANG2TOSCA +================= + +Overview +======== + +Parser is an open source project and licensed under Apache 2. Parser will help +to provide a tooling mechanism, by parsing Telecom operators’ VNF descriptors +(YANG templates) into TOSCA templates and then further translate TOSCA +templates into certain common templates, which could be used in IaaS orchestration +projects like OpenStack Heat. + +Prerequisites +============= + +Parser requires the following to be installed. + +1. PYANG +-------- + +Please follow the below installation steps. + +Step 1: Clone pyang tool or download the zip file from the following link. + +.. code-block:: bash + + git clone https://github.com/mbj4668/pyang.git + +OR + +.. code-block:: bash + + wget https://github.com/mbj4668/pyang/archive/master.zip + +Step 2: Change directory to the downloaded directory and run the setup file. + +.. code-block:: bash + + cd pyang + python setup.py + +2. python-lxml +-------------- + +Please follow the below installation link. http://lxml.de/installation.html + + +Installation +============================ + +Please follow the below installation steps to install parser. + +Step 1: Clone the parser project. + +.. code-block:: bash + + git clone https://gerrit.opnfv.org/gerrit/parser + +Execution +=========================== + +Step 1: Change directory to where the scripts are present. + +.. code-block:: bash + + cd parser/yang2tosca + +Step 2: Copy the YANG file which needs to be converted into TOSCA to + current (parser/yang2tosca) folder. + +Step 3: Run the python script "parser.py" with the YANG file as an input option. + +.. code-block:: bash + + python parser.py -n "YANG filename" + +Example: + +.. code-block:: bash + + python parser.py -n example.yaml + +Step 4: Verify the TOSCA YAMl which file has been created with the same name + as the YANG file with a “_tosca” suffix. + +.. code-block:: bash + + cat "YANG filename_tosca.yaml" + +Example: + +.. code-block:: bash + + cat example_tosca.yaml diff --git a/docs/developer/overview/index.rst b/docs/developer/overview/index.rst new file mode 100644 index 0000000..aff89d9 --- /dev/null +++ b/docs/developer/overview/index.rst @@ -0,0 +1,13 @@ +.. This work is licensed under a Creative Commons Attribution 4.0 International +.. License. +.. http://creativecommons.org/licenses/by/4.0 + +============================================= +OPNFV Parser Danube Overview +============================================= + + +.. toctree:: + :maxdepth: 1 + + overview diff --git a/docs/developer/overview/overview.rst b/docs/developer/overview/overview.rst new file mode 100644 index 0000000..d1cad64 --- /dev/null +++ b/docs/developer/overview/overview.rst @@ -0,0 +1,89 @@ +.. This work is licensed under a Creative Commons Attribution 4.0 International License. +.. http://creativecommons.org/licenses/by/4.0 + +========================================= +OPNFV Parser Danube Overview Doumentation +========================================= + +.. contents:: + :depth: 3 + :local: + +Introduction +--------------- + +In NFV, various templates (such as descriptors, records and so on) are utilized +to describe the deployment requirements (such as basic VM requirements – vCPU, +memory, storage, as well as the NFV acceleration management requirement such as +Huge Pages support, SR-IOV, NUMA affinity, DPDK support etc.), +the post-instaniation records (such as storage usage report, CPU performance +report etc.) or other purposes. However in order to make these templates +adaptable and feasible for purpose like deployment orchestration/automation, +certain tooling mechanism that provides template translation is necessary. + +Project Parser will help to provide such tooling mechanism, by parsing Telecom +operators’ descriptors/records into TOSCA/CAMP templates and then further +translate TOSCA/CAMP templates into certain common templates, which could be +used in IaaS orchestration projects like OpenStack Heat. + +Upgrades from Arno +------------------------ + +For Release B, Parser offers the following additional capabilities: + +* Integration of Heat-Translator Liberty release code. (both heat in-tree code and standalone package are provided) + +* Yang2Tosca module which offers the capability to translate yang based + scriptors to tosca formate templates. Users could further use Heat-translator + module to translate this tosca template to Heat Orchestration template. + Yang2Tosca module could be installed seperately after user installed + OPNFV B release platform. + +* The "parser_new_keywords" document demonstrate a set of keywords concluded by + Parser team that need to be supported in tosca to heat translation. However + it should be noted that these keywords only serve as a roadmap. We will start + from Release C to indicate which specific set of keywords are supported in + Parser. + +* The "vRNC_tosca_intro" document describes Parser's use case analysis on vRNC scenario. + The "example" folder contains examples of tosca-nfv standard and vRNC scenario. + See also https://wiki.opnfv.org/parser. + +Upgrades from Brumapatra +----------------------- + +For Release C, Parser offers the following additional capabilities: + +* Policy2Tosca module which enables policy related fields in tosca could be translated + into heat orchestration template correctly. Policy2Tosca module could be installed seperately + after user installed OPNFV C release platform. + +* Tosca2Heat enhancements which includes a set of feature addons (such as substitution mapping) +for OpenStack tosca-parser module which is integrated in the OPNFV C release platform. And the +main details are listed below: + + ** support substitution mapping semantic in tosca-parser: + - support parse and validation about substitution mapping definition; + - support import nested template; + - support deployment a node which is substituted by a template; + - support deployment a template alone which has substitution mapping definition. + + ** afinity and anti-affinity support when deploy servers: + - tosca.policies.Placement.Colocate; + - tosca.policies.Placement.Antilocate; + + ** add validation about input parameters; + + ** add high availability and block volume in compute translation; + + ** add ip output in compute translation; + + ** add deployment a whole vRNC testcase with parser. + +* Additional testing support. + +Upgrades from Colorado +---------------------- + +For Release D, Parser offers the following additional capabilities: + diff --git a/docs/developer/requirements/index.rst b/docs/developer/requirements/index.rst new file mode 100644 index 0000000..7eddaae --- /dev/null +++ b/docs/developer/requirements/index.rst @@ -0,0 +1,11 @@ +.. This work is licensed under a Creative Commons Attribution 4.0 International License. +.. http://creativecommons.org/licenses/by/4.0 + +******************************** +OPNFV Parser Danube Requirements +******************************** + +.. toctree:: + :maxdepth: 1 + + diff --git a/docs/installationprocedure/feature.configuration.rst b/docs/installationprocedure/feature.configuration.rst deleted file mode 100644 index 86d7dfa..0000000 --- a/docs/installationprocedure/feature.configuration.rst +++ /dev/null @@ -1,9 +0,0 @@ -.. This work is licensed under a Creative Commons Attribution 4.0 International License. -.. http://creativecommons.org/licenses/by/4.0 - .. (c) - - -Abstract -======== -This document provides information on how to configure required -components during the installation of the platform. diff --git a/docs/installationprocedure/featureconfig.rst b/docs/installationprocedure/featureconfig.rst deleted file mode 100644 index dc4fc50..0000000 --- a/docs/installationprocedure/featureconfig.rst +++ /dev/null @@ -1,20 +0,0 @@ -.. This work is licensed under a Creative Commons Attribution 4.0 International License. -.. http://creativecommons.org/licenses/by/4.0 -.. (c) - -Parser configuration -===================== -Parser can be configured with any installer in current OPNFV, it only depends on -openstack. - -Pre-configuration activities ----------------------------- -For parser, there is not specific pre-configuration activities. - -Hardware configuration ----------------------- -For parser, there is not hardware configuration needed for any current feature. - -Feature configuration ---------------------- -For parser, there is not specific configure on openstack. diff --git a/docs/installationprocedure/index.rst b/docs/installationprocedure/index.rst deleted file mode 100644 index 1eb7461..0000000 --- a/docs/installationprocedure/index.rst +++ /dev/null @@ -1,26 +0,0 @@ -.. This work is licensed under a Creative Commons Attribution 4.0 International -.. License. -.. http://creativecommons.org/licenses/by/4.0 -.. (c) OPNFV, Ericsson AB and others. - -******************************************** -Parser Configuration and Configuration Guide -******************************************** -Parser is an open source project and licensed under Apache 2. Parser will help -to provide a tooling mechanism, by parsing and then further translating Telecom -operators deployment descriptors into certain common templates, which could be -used in IaaS orchestration projects like OpenStack Heat(the template file is HOT, -which stands for Heat Orchestrator Template). - -This document contains configuration guide for Parser's three submodules: tosca2heat, -yang2tosca and policy2tosca. Users please refer to user guide for installation and execution -which usually happens after configuration. - - - -.. toctree:: - :numbered: - :maxdepth: 2 - -.. include:: featureconfig.rst -.. include:: installerconfig.rst diff --git a/docs/installationprocedure/installerconfig.rst b/docs/installationprocedure/installerconfig.rst deleted file mode 100644 index 1f796b2..0000000 --- a/docs/installationprocedure/installerconfig.rst +++ /dev/null @@ -1,76 +0,0 @@ -.. This work is licensed under a Creative Commons Attribution 4.0 International License. -.. http://creativecommons.org/licenses/by/4.0 -.. (c) - -Parser general configuration -===================== -Parser can be configured with any installer in current OPNFV. - -Pre-configuration activities ------------------------------ -For parser, there is not specific pre-configuration activities. - -Hardware configuration ------------------------ -For parser, there is not hardware configuration needed for this specific installer. - -Jumphost configuration ------------------------ -For parser, there is not intial Jumphost configuration (network and software)needed in order -to deploy any installer. - - -Parser tosca2heat configuration -===================== -For tosca2heat components(tosca-parser and heat-translator) in parser,there are not specific -configuration of each component in installer. - - -Parser yang2tosca configuration -===================== -Parser yang2tosca requires the following to be installed. - -1. PYANG --------- - -Please follow the below installation steps. - -Step 1: Clone pyang tool or download the zip file from the following link. - -.. code-block:: bash - - git clone https://github.com/mbj4668/pyang.git - -OR - -.. code-block:: bash - - wget https://github.com/mbj4668/pyang/archive/master.zip - -Step 2: Change directory to the downloaded directory and run the setup file. - -.. code-block:: bash - - cd pyang - python setup.py - -2. python-lxml --------------- - -Please follow the below installation link. http://lxml.de/installation.html - - -Parser policy2tosca configuration -============================ -Parser - POLICY2TOSCA requires the following to be installed. - -1. cliff --------- - -Install cliff with the following links. -:: -- `install ` -or -- `demoapp - - diff --git a/docs/installationprocedure/policy2tosca.rst b/docs/installationprocedure/policy2tosca.rst deleted file mode 100644 index d6e2348..0000000 --- a/docs/installationprocedure/policy2tosca.rst +++ /dev/null @@ -1,44 +0,0 @@ -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or -# implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -Prerequisites -============= - -Parser - POLICY2TOSCA requires the following to be installed. - -1. cliff --------- - -Install cliff with the following links. -:: -- `install ` -or -- `demoapp ` - -Installation -============================ - -Please follow the below installation steps to install parser - POLICY2TOSCA. - -Step 1: Clone the parser project. - -.. code-block:: bash - - git clone https://gerrit.opnfv.org/gerrit/parser - -Step 2: Install the policy2tosca module. - -.. code-block:: bash - - cd parser/policy2tosca - python setup.py install diff --git a/docs/installationprocedure/yang2tosca.rst b/docs/installationprocedure/yang2tosca.rst deleted file mode 100644 index 8f4ef91..0000000 --- a/docs/installationprocedure/yang2tosca.rst +++ /dev/null @@ -1,58 +0,0 @@ -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or -# implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -Prerequisites -============= - -Parser requires the following to be installed. - -1. PYANG --------- - -Please follow the below installation steps. - -Step 1: Clone pyang tool or download the zip file from the following link. - -.. code-block:: bash - - git clone https://github.com/mbj4668/pyang.git - -OR - -.. code-block:: bash - - wget https://github.com/mbj4668/pyang/archive/master.zip - -Step 2: Change directory to the downloaded directory and run the setup file. - -.. code-block:: bash - - cd pyang - python setup.py - -2. python-lxml --------------- - -Please follow the below installation link. http://lxml.de/installation.html - - -Installation -============================ - -Please follow the below installation steps to install parser. - -Step 1: Clone the parser project. - -.. code-block:: bash - - git clone https://gerrit.opnfv.org/gerrit/parser diff --git a/docs/parser_docs/images/vRNC_Definition.png b/docs/parser_docs/images/vRNC_Definition.png deleted file mode 100644 index 84d25e3..0000000 Binary files a/docs/parser_docs/images/vRNC_Definition.png and /dev/null differ diff --git a/docs/parser_docs/images/vRNC_Topology.png b/docs/parser_docs/images/vRNC_Topology.png deleted file mode 100644 index e4f04f1..0000000 Binary files a/docs/parser_docs/images/vRNC_Topology.png and /dev/null differ diff --git a/docs/parser_docs/index.rst b/docs/parser_docs/index.rst deleted file mode 100644 index 97d22db..0000000 --- a/docs/parser_docs/index.rst +++ /dev/null @@ -1,16 +0,0 @@ -.. This work is licensed under a Creative Commons Attribution 4.0 International License. -.. http://creativecommons.org/licenses/by/4.0 - -************** -Parser Project -************** - -.. toctree:: - :numbered: - :maxdepth: 6 - - intro/intro.rst - yang2tosca/yang2tosca.rst - policy2tosca/policy2tosca.rst - tosca2heat/parser_new_keywords.rst - vRNC_tosca_intro.rst diff --git a/docs/parser_docs/intro/intro.rst b/docs/parser_docs/intro/intro.rst deleted file mode 100644 index af0c358..0000000 --- a/docs/parser_docs/intro/intro.rst +++ /dev/null @@ -1,71 +0,0 @@ -.. This work is licensed under a Creative Commons Attribution 4.0 International License. -.. http://creativecommons.org/licenses/by/4.0 - -============================== -Introduction of Parser Project -============================== - -In NFV, various templates (such as descriptors, records and so on) are utilized -to describe the deployment requirements (such as basic VM requirements – vCPU, -memory, storage, as well as the NFV acceleration management requirement such as -Huge Pages support, SR-IOV, NUMA affinity, DPDK support etc.), -the post-instaniation records (such as storage usage report, CPU performance -report etc.) or other purposes. However in order to make these templates -adaptable and feasible for purpose like deployment orchestration/automation, -certain tooling mechanism that provides template translation is necessary. - -Project Parser will help to provide such tooling mechanism, by parsing Telecom -operators’ descriptors/records into TOSCA/CAMP templates and then further -translate TOSCA/CAMP templates into certain common templates, which could be -used in IaaS orchestration projects like OpenStack Heat. - -For Release B, Parser offers the following capabilities: - -* Integration of Heat-Translator Liberty release code. (both heat in-tree code and standalone package are provided) - -* Yang2Tosca module which offers the capability to translate yang based - scriptors to tosca formate templates. Users could further use Heat-translator - module to translate this tosca template to Heat Orchestration template. - Yang2Tosca module could be installed seperately after user installed - OPNFV B release platform. - -* The "parser_new_keywords" document demonstrate a set of keywords concluded by - Parser team that need to be supported in tosca to heat translation. However - it should be noted that these keywords only serve as a roadmap. We will start - from Release C to indicate which specific set of keywords are supported in - Parser. - -* The "vRNC_tosca_intro" document describes Parser's use case analysis on vRNC scenario. - The "example" folder contains examples of tosca-nfv standard and vRNC scenario. - See also https://wiki.opnfv.org/parser. - -For Release C, Parser offers additional capabilities: - -* Policy2Tosca module which enables policy related fields in tosca could be translated - into heat orchestration template correctly. Policy2Tosca module could be installed seperately - after user installed OPNFV C release platform. - -* Tosca2Heat enhancements which includes a set of feature addons (such as substitution mapping) -for OpenStack tosca-parser module which is integrated in the OPNFV C release platform. And the -main details are listed below: - - ** support substitution mapping semantic in tosca-parser: - - support parse and validation about substitution mapping definition; - - support import nested template; - - support deployment a node which is substituted by a template; - - support deployment a template alone which has substitution mapping definition. - - ** afinity and anti-affinity support when deploy servers: - - tosca.policies.Placement.Colocate; - - tosca.policies.Placement.Antilocate; - - ** add validation about input parameters; - - ** add high availability and block volume in compute translation; - - ** add ip output in compute translation; - - ** add deployment a whole vRNC testcase with parser. - -* Additional testing support. - diff --git a/docs/parser_docs/policy2tosca/policy2tosca.rst b/docs/parser_docs/policy2tosca/policy2tosca.rst deleted file mode 100644 index fa238b2..0000000 --- a/docs/parser_docs/policy2tosca/policy2tosca.rst +++ /dev/null @@ -1,87 +0,0 @@ -.. This work is licensed under a Creative Commons Attribution 4.0 International License. -.. http://creativecommons.org/licenses/by/4.0 - -=================== -Parser POLICY2TOSCA -=================== - -Overview -======== - -Parser is an open source project and licensed under Apache 2. Parser will help -to provide a tooling mechanism, by parsing Telecom operators’ VNF descriptors -(YANG templates) into TOSCA templates and then further translate TOSCA -templates into certain common templates, which could be used in IaaS orchestration -projects like OpenStack Heat. - -Prerequisites -============= - -Parser - POLICY2TOSCA requires the following to be installed. - -1. cliff --------- - -Install cliff with the following links. -:: -- `install ` -or -- `demoapp ` - -Installation -============================ - -Please follow the below installation steps to install parser - POLICY2TOSCA. - -Step 1: Clone the parser project. - -.. code-block:: bash - - git clone https://gerrit.opnfv.org/gerrit/parser - -Step 2: Install the policy2tosca module. - -.. code-block:: bash - - cd parser/policy2tosca - python setup.py install - -Execution -=========================== - -Step 1: To see a list of commands available. - -.. code-block:: bash - - policy2tosca --help - -Step 2: To see help for an individual command, include the command name on the command line - -.. code-block:: bash - - policy2tosca help - -Step 3: To inject/remove policy types/policy definitions provide the TOSCA file as input to policy2tosca command line. - -.. code-block:: bash - - policy2tosca [arguments] - -Example: - -.. code-block:: bash - - policy2tosca add-definition --policy_name rule2 --policy_type tosca.policies.Placement.Geolocation --description "test description" --properties region:us-north-1,region:us-north-2,min_inst:2 --targets VNF2,VNF4 --metadata "map of strings" --triggers "1,2,3,4" --source example.yaml - - -Step 4: Verify the TOSCA YAMl updated with the injection/removal executed. - -.. code-block:: bash - - cat "" - -Example: - -.. code-block:: bash - - cat example_tosca.yaml diff --git a/docs/parser_docs/tosca2heat/examples/Simple_RNC.yaml b/docs/parser_docs/tosca2heat/examples/Simple_RNC.yaml deleted file mode 100644 index 281b064..0000000 --- a/docs/parser_docs/tosca2heat/examples/Simple_RNC.yaml +++ /dev/null @@ -1,457 +0,0 @@ -## Licensed under the Apache License, Version 2.0 (the "License"); you may -## not use this file except in compliance with the License. You may obtain -## a copy of the License at -## -## http://www.apache.org/licenses/LICENSE-2.0 -## -## Unless required by applicable law or agreed to in writing, software -## distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -## WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -## License for the specific language governing permissions and limitations -## under the License. - -tosca_definitions_version: tosca_simple_profile_for_nfv_1_0_0 - -metadata: - template_name: tosca_simple_profile_for_nfv_vRNC - template_author: opnfv_parser_project_from_zte - 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: - - in_range: [ 1, 200 ] - - substitution_mappings: - node_type: rnc.nodes.VNF - requirements: - virtualLink_VNFM: [ MM_Port_CTRL, virtualLink ] - virtualLink_EMS: [ MM_Port_EMS, virtualLink ] - virtualLink_TRAFFIC: [ LB_Port_EXTERMEDIA, virtualLink ] - - # definition of the node templates of the topology - node_templates: - MM_Active: - type: rnc.nodes.compute.MM - properties: - activestatus: 1 - capabilities: - os: - properties: *compute_props_os_DEF - host: - properties: *compute_props_host_MM - requirements: - - local_storage: - node: MM_BlockStorage - relationship: Storage_attachesto - artifacts: - #the VM image of MM - vm_image: mm.image - interfaces: - Standard: - create: - implementation: mm_install.sh - configure: - implementation: mm_active_configure.sh - attributes: - ip_address: { get_attribute: [ SELF, private_address ] } - - MM_Passive: - type: rnc.nodes.compute.MM - properties: - activestatus: 0 - capabilities: - os: - properties: *compute_props_os_DEF - host: - properties: *compute_props_host_MM - requirements: - - local_storage: - node: MM_BlockStorage - relationship: Storage_attachesto - - 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 - attributes: - ip_address: { get_attribute: [ SELF, private_address ] } - - CM_Active: - type: rnc.nodes.compute.CM - properties: - activestatus: 1 - capabilities: - os: - properties: *compute_props_os_DEF - host: - properties: *compute_props_host_CM - scalable: - properties: - min_instances: 1 - max_instances: 126 - default_instances: 1 - artifacts: - #the VM image of CM - vm_image: cm.image - interfaces: - Standard: - create: - implementation: cm_install.sh - configure: - implementation: cm_active_configure.sh - attributes: - ip_address: { get_attribute: [ SELF, private_address ] } - - CM_Passive: - type: rnc.nodes.compute.CM - properties: - activestatus: 0 - capabilities: - os: - properties: *compute_props_os_DEF - host: - properties: *compute_props_host_CM - scalable: - properties: - min_instances: 1 - max_instances: 126 - default_instances: 1 - requirements: - - 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 - attributes: - ip_address: { get_attribute: [ SELF, private_address ] } - - DM: - type: rnc.nodes.compute.DM - capabilities: - os: - properties: *compute_props_os_DEF - host: - properties: *compute_props_host_DM - scalable: - properties: - min_instances: 1 - max_instances: 120 - default_instances: 1 - artifacts: - vm_image: dm.image - interfaces: - Standard: - create: - implementation: dm_install.sh - configure: - implementation: dm_configure.sh - attributes: - ip_address: { get_attribute: [ SELF, private_address ] } - - LB: - type: rnc.nodes.compute.LB - capabilities: - os: - properties: *compute_props_os_DEF - host: - properties: *compute_props_host_LB - scalable: - properties: - min_instances: 1 - max_instances: 20 - default_instances: 1 - artifacts: - #the VM image of LB - vm_image: lb.image - interfaces: - Standard: - create: - implementation: lb_install.sh - configure: - implementation: lb_configure.sh - 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_Net: - type: rnc.nodes.VL - properties: - vendor: ZTE - cidr: "128.0.0.0/8" - network_name: Ctrl_Net - network_type: vlan - segmentation_id: 110 - dhcp_enabled: false - - INTERMEDIA_Net: - type: rnc.nodes.VL - properties: - vendor: ZTE - cidr: 10.0.0.0/8 - start_ip: 10.1.0.1 - end_ip: 10.1.2.254 - network_name: InterMedia_Net - network_type: vlan - segmentation_id: 111 - dhcp_enabled: false - - EXTERMEDIA_Net: - type: rnc.nodes.VL - properties: - vendor: ZTE - cidr: 172.1.0.0/16 - start_ip: 172.1.0.2 - end_ip: 172.1.2.254 - gateway_ip: 172.1.0.1 - network_name: ExterMdedia_Net - network_type: vlan - segmentation_id: 100 - dhcp_enabled: false - - EMS_Net: - type: rnc.nodes.VL - properties: - vendor: ZTE - cidr: 129.0.0.0/24 - start_ip: 129.0.0.2 - end_ip: 129.0.0.64 - gateway_ip: 129.0.0.1 - network_name: Ems_Net - network_type: vlan - segmentation_id: 101 - dhcp_enabled: false - - MM_Port_EMS: - type: rnc.nodes.CP - properties: - order: 0 - is_default: true - requirements: - - virtualBinding: MM_Active - - virtualLink: EMS_Net - - MM_Port_CTRL: - type: rnc.nodes.CP - properties: - order: 1 - is_default: false - requirements: - - virtualBinding: MM_Active - - virtualLink: CTRL_Net - - MM_Port_EXTERMEDIA: - type: rnc.nodes.CP - properties: - order: 2 - is_default: false - requirements: - - virtualBinding: MM_Active - - virtualLink: EXTERMEDIA_Net - - CM_Port_CTRL: - type: rnc.nodes.CP - properties: - order: 0 - is_default: true - requirements: - - virtualBinding: CM_Active - - virtualLink: CTRL_Net - - CM_Port_INTERMEDIA: - type: rnc.nodes.CP - properties: - order: 1 - is_default: false - requirements: - - virtualBinding: CM_Active - - virtualLink: INTERMEDIA_Net - - DM_Port_CTRL: - type: rnc.nodes.CP - properties: - order: 0 - is_default: true - requirements: - - virtualBinding: DM - - virtualLink: CTRL_Net - - DM_Port_INTERMEDIA: - type: rnc.nodes.CP - properties: - order: 1 - is_default: false - requirements: - - virtualBinding: DM - - virtualLink: INTERMEDIA_Net - - LB_Port_CTRL: - type: rnc.nodes.CP - properties: - order: 0 - is_default: true - requirements: - - virtualBinding: LB - - virtualLink: CTRL_Net - - LB_Port_INTERMEDIA: - type: rnc.nodes.CP - properties: - order: 1 - is_default: false - requirements: - - virtualBinding: LB - - virtualLink: INTERMEDIA_Net - - LB_Port_EXTERMEDIA: - type: rnc.nodes.CP - properties: - order: 2 - is_default: false - requirements: - - virtualBinding: LB - - virtualLink: EXTERMEDIA_Net - - # 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, private_address ] } - - private_ip_of_CM: - description: The private IP address of the CM. - value: { get_attribute: [ CM_Active, private_address ] } - - private_ip_of_DM: - description: The private IP address of the DM. - value: { get_attribute: [ DM, private_address ] } - - private_ip_of_LB: - description: The private IP address of the LB. - value: { get_attribute: [ LB, private_address ] } - - # definition of logical groups of node templates within the topology - # To be continue about this section - groups: - AnitAffinityServerGroup: - type: tosca.groups.Root - description: > - Logical component grouping for anti affinity placement, - MM_Acitve, MM_Passive, CM_Acitve, CM_Passive, LB must host - on different host to reduce the impact to each other. - members: [ MM_Active, MM_Passive, CM_Active, CM_Passive, LB ] - policies: - type: tosca.policy.placement.Antilocate - - AffinityServerGroup: - type: tosca.groups.Root - description: > - Logical component grouping for affinity placement, - CM and DM will be host on the same host to get high performence - members: [ CM_Active, DM ] - policies: - type: tosca.policy.placement.Antilocate - - policies: - - AnitAffinityPolicy: - type: tosca.policies.Placement.Antilocate - description: Apply anti-locate placement policy to group - targets: [ AnitAffinityServerGroup ] - - - AffinityPolicy: - type: tosca.policies.Placement.Colocate - description: Apply anti-locate placement policy to group - targets: [ AffinityServerGroup ] - - # 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/parser_docs/tosca2heat/examples/Simple_RNC_definition.yaml b/docs/parser_docs/tosca2heat/examples/Simple_RNC_definition.yaml deleted file mode 100644 index 7478d98..0000000 --- a/docs/parser_docs/tosca2heat/examples/Simple_RNC_definition.yaml +++ /dev/null @@ -1,119 +0,0 @@ -## Licensed under the Apache License, Version 2.0 (the "License"); you may -## not use this file except in compliance with the License. You may obtain -## a copy of the License at -## -## http://www.apache.org/licenses/LICENSE-2.0 -## -## Unless required by applicable law or agreed to in writing, software -## distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -## WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -## License for the specific language governing permissions and limitations -## under the License. - -tosca_definitions_version: tosca_simple_profile_for_nfv_1_0_0 - -#metadata: -# template_name: tosca_simple_profile_for_nfv_vRNC -# template_author: opnfv_parser_project_from_zte -# 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 - -# The import section shall be ignored if the value of tosca_definitions_version -# is tosca_simple_profile_for_nfv_1_0_0, otherwise will be needed. -#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 RNC - default: UMTS - required: false - constraints: - - valid_values: [ TDS-CDMA, UMTS, CDMA ] - requirements: - - virtualLink_VNFM: - capability: tosca.capabilities.nfv.VirtualLinkable - relationship: tosca.relationships.nfv.VirtualLinksTo - node: rnc.nodes.VL - - virtualLink_EMS: - capability: tosca.capabilities.nfv.VirtualLinkable - relationship: tosca.relationships.nfv.VirtualLinksTo - node: rnc.nodes.VL - - virtualLink_TRAFFIC: - capability: tosca.capabilities.nfv.VirtualLinkable - relationship: tosca.relationships.nfv.VirtualLinksTo - node: rnc.nodes.VL - - rnc.nodes.compute.MM: - derived_from: tosca.nodes.nfv.VDU - properties: - activestatus: - type: integer - description: 1 for active or 0 for passive - constraints: - - 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. - - rnc.nodes.compute.CM: - derived_from: tosca.nodes.nfv.VDU - properties: - activestatus: - type: integer - description: 1 for active or 0 for passive - constraints: - - valid_values: [ 0, 1 ] - - rnc.nodes.compute.DM: - derived_from: tosca.nodes.nfv.VDU - - rnc.nodes.compute.LB: - derived_from: tosca.nodes.nfv.VDU - - rnc.nodes.BlockStorage: - derived_from: tosca.nodes.BlockStorage - - rnc.nodes.VL: - derived_from: tosca.nodes.nfv.VL - - rnc.nodes.CP: - derived_from: tosca.nodes.nfv.CP - -# 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 diff --git a/docs/parser_docs/tosca2heat/examples/TOSCA_nfv_definition_1_0.yaml b/docs/parser_docs/tosca2heat/examples/TOSCA_nfv_definition_1_0.yaml deleted file mode 100644 index c535144..0000000 --- a/docs/parser_docs/tosca2heat/examples/TOSCA_nfv_definition_1_0.yaml +++ /dev/null @@ -1,627 +0,0 @@ -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. - -########################################################################## -# The content of this file reflects TOSCA NFV Profile in YAML version -# 1.0.0, which is derived from TOSCA Simple Profile. It describes the -# definition for nfv TOSCA types including Node Type, -# Relationship Type, Capability Type and Interfaces. -########################################################################## -tosca_definitions_version: tosca_simple_profile_for_nfv_1_0_0 - -########################################################################## -# Node Type. -# A Node Type is a reusable entity that defines the type of one or more -# Node Templates. -########################################################################## - -tosca.nodes.nfv.VNF: - derived_from: tosca.nodes.Root - properties: - id: - type: string - description: ID of this VNF - vendor: - type: string - description: name of the vendor who generate this VNF - version: - type: version - description: version of the software for this VNF - requirements: - - virtualLink: - capability: tosca.capabilities.nfv.VirtualLinkable - relationship: tosca.relationships.nfv.VirtualLinksTo - node: tosca.nodes.nfv.VL - -tosca.nodes.nfv.VDU: - derived_from: tosca.nodes.Compute - properties: - id: - type: string - required: true - description: > - A unique identifier of this VDU within the scope - of the VNFD, including version functional - description and other identification information. - This will be used to refer to VDU when defining - relationships between them. - capabilities: - high_availability: - type: tosca.capabilities.nfv.HA - virtualbinding: - type: tosca.capabilities.nfv.VirtualBindable - monitoring_parameter: - type: tosca.capabilities.nfv.Metric - requirements: - - high_availability: - capability: tosca.capabilities.nfv.HA - relationship: tosca.relationships.nfv.HA - node: tosca.nodes.nfv.VDU - occurrences: [ 0, 1 ] - -tosca.nodes.nfv.CP: - derived_from: tosca.nodes.network.Port - description: > - The NFV CP node represents a logical connection point - entity as defined by ETSI GS NFV-MAN - properties: - type: - type: string - required: false - requirements: - - virtualLink: - capability: tosca.capabilities.nfv.VirtualLinkable - relationship: tosca.relationships.nfv.VirtualLinksTo - node: tosca.nodes.nfv.VL - - virtualBinding: - capability: tosca.capabilities.nfv.VirtualBindable - relationship: tosca.relationships.nfv.VirtualBindsTo - node: tosca.nodes.nfv.VDU - -tosca.nodes.nfv.VL: - derived_from: tosca.nodes.network.Network - properties: - vendor: - type: string - required: true - description: name of the vendor who generate this VL - capabilities: - virtual_linkable: - type: tosca.capabilities.nfv.VirtualLinkable - -tosca.nodes.nfv.VL.ELine: - derived_from: tosca.nodes.nfv.VL - capabilities: - virtual_linkable: - occurrences: 2 - -tosca.nodes.nfv.VL.ELAN: - derived_from: tosca.nodes.nfv.VL - -tosca.nodes.nfv.VL.ETree: - derived_from: tosca.nodes.nfv.VL - -tosca.nodes.nfv.FP: - derived_from: tosca.nodes.Root - properties: - policy: - type: string - required: false - description: name of the vendor who generate this VL - requirements: - - forwarder: - capability: tosca.capabilities.nfv.Forwarder - relationship: tosca.relationships.nfv.ForwardsTo - -########################################################################## -# Relationship Type. -# A Relationship Type is a reusable entity that defines the type of one -# or more relationships between Node Types or Node Templates. -########################################################################## - -tosca.relationships.nfv.VirtualLinksTo: - derived_from: tosca.relationships.network.LinksTo - valid_target_types: [ tosca.capabilities.nfv.VirtualLinkable ] - -tosca.relationships.nfv.VirtualBindsTo: - derived_from: tosca.relationships.network.BindsTo - valid_target_types: [ tosca.capabilities.nfv.VirtualBindable ] - -tosca.relationships.nfv.HA: - derived_from: tosca.relationships.Root - valid_target_types: [ tosca.capabilities.nfv.HA ] - -tosca.relationships.nfv.Monitor: - derived_from: tosca.relationships.ConnectsTo - valid_target_types: [ tosca.capabilities.nfv.Metric ] - -tosca.relationships.nfv.ForwardsTo: - derived_from: tosca.relationships.root - valid_target_types: [ tosca.capabilities.nfv.Forwarder] - -########################################################################## -# Capability Type. -# A Capability Type is a reusable entity that describes a kind of -# capability that a Node Type can declare to expose. -########################################################################## - -tosca.capabilities.nfv.VirtualLinkable: - derived_from: tosca.capabilities.network.Linkable - -tosca.capabilities.nfv.VirtualBindable: - derived_from: tosca.capabilities.network.Bindable - -tosca.capabilities.nfv.HA: - derived_from: tosca.capabilities.Root - valid_source_types: [ tosca.nodes.nfv.VDU ] - -tosca.capabilities.nfv.HA.ActiveActive: - derived_from: tosca.capabilities.nfv.HA - -tosca.capabilities.nfv.HA.ActivePassive: - derived_from: tosca.capabilities.nfv.HA - -tosca.capabilities.nfv.Metric: - derived_from: tosca.capabilities.Root - -tosca.capabilities.nfv.Forwarder: - derived_from: tosca.capabilities.Root - - - -tosca.capabilities.nfv.CPU_extension: - derived_from: tosca.capabilities.Root - properties: - cpu_instruction_set_extension: - type: list - required: false - entry_schema: - type: string - constraints: - - min_length: 1 - description: > - Instruction sets are often enhanced with - instruction set extensions. This element - represents instruction set extensions that the - VDU has been developed, optimized or tested with - cpu_model: - type: list - required: false - entry_schema: - type: string - constraints: - - min_length: 1 - description: > - The CPU model for which the VDU has been - developed, compiled with CPU model specific - optimisations, optimized or validated on. - cpu_model_specification_binding: - type: string - required: false - description: > - VDUs may be developed, compiled, optimized - or validated on particular CPU models. Some - deployments may wish to permit the VDU to - be deployed on a platform with the specified - CPU only, or with an alternative CPU with the - same architecture, instruction set, and if - specified, instruction set extensions, or with a - CPU of equivalent or greater capability. - cpu_min_clock_speed: - type: string - required: false - description: > - The minimum CPU clock speed may be one of - the elements that the development and - validation of the VDU has been considered - with. This may be in conjunction with some of - the other CPU elements such as CPU Model. - Requiring a minimum clock speed may be part - of a deployment requirement necessary to - help ensure particular performance or timing - related characteristics are met in the - deployment. - cpu_core_reservation: - type: string - required: false - description: > - The number of CPU cores allocated to the - VDU. This may be necessary to help ensure - particular performance or timing related - characteristics are met in the deployment. - cpu_simultaneous_multi_threading_hw_thread_specification: - type: string - required: false - description: > - The use of Simultaneous Multi-Threading HW - is an efficient way to increase the compute - capacity of a platform. SMT HW threads share - some CPU core resources. In some VDU - implementations, it may be necessary to very - explicitly control the HW thread allocation on a - platform. This could be to help ensure locality - in data caches or as a mechanism to enhance - determinism. - cpu_core_oversubscription_policy: - type: string - required: false - description: > - The VDU may co-exist on a platform with - multiple VDUs or VMs and as such will be - sharing CPU core resources available in the - platform. It may be necessary to specify the - CPU core oversubscription policy in terms of - virtual cores to physical cores/threads on the - platform. This policy could be based on - required VDU deployment characteristics such - as high performance, low latency, and /or - deterministic behaviour. - cpu_core_and_hw_thread_allocation_topology_policy: - type: string - required: false - description: > - The VDU may be designed to use a specific - mapping of virtual CPUs to HW threads or - cores with a specific allocation topology in - order to ensure locality in data caches and - maximize performance. The VDU will not - specify which physical resources to use, but - may specify if virtual CPUs shall be coupled - together as HW threads belonging to the same - core, or as belonging to the same processor. - cpu_last_level_cache_size: - type: scalar-unit.size - required: false - constraints: - - greater_or_equal: 0 KB - description: > - The size of the last level cache may impact the - performance of the VDU, particularly for cache - intensive workloads. - cpu_direct_io_access_to_cache: - type: string - required: false - description: > - The ability of an I/O device to have direct - access to the CPU cache enables - considerable memory access savings and for - I/O intensive workloads can offer significant - performance benefits. - cpu_translation_look_aside_buffer_parameter: - type: list - required: false - entry_schema: - type: string - constraints: - - min_length: 1 - description: > - The Translation Look-aside Buffer (TLB) is a - cache for address translation typically used by - a hardware based memory management units. - The Input/Output TLB (IOTLB) is a cache for - address translation related to remapping - hardware. The availability of a TLB and an - IOTLB can significantly improve the - performance of a virtual machine. - A number of parameters of the TLBs impact - the performance potential. These include: - 1 TLB Size. - 2 TLB Large Page Support. - 3 IOTLB Size. - 4 IOTLB Large Page Support. - cpu_hot_add: - type: boolean - required: false - description: > - Hot add CPU is the ability to dynamically add - CPUs to a running system. The new CPU can - immediately replace a failing CPU via - migration or be brought on-line later. - cpu_support_accelerator: - type: list - required: false - entry_schema: - type: string - constraints: - - min_length: 1 - description: > - This capability refers to support by the CPU - and associated chipsets of a data processing - accelerator framework, together with its - libraries and drivers. - -tosca.capabilities.nfv.Memory_extension: - derived_from: tosca.capabilities.Root - properties: - memory_parameter: - type: list - required: false - entry_schema: - type: string - constraints: - - min_length: 1 - description: > - There are a number of memory related parameters that can have a - significant impact on the performance and/or reliability of the VDU. - These include: - • Memory Type. - • Memory Speed - • Number of memory channels. - • Size of available memory. - • Reliability characteristics such as Memory Error Correction - codes. - • Memory oversubscription policy. - • Memory bandwidth required per VDU. - • Number of large pages required per VDU - • Non-Uniform Memory Architecture (NUMA) Allocation Policy, - i.e. in NUMA architecture how you specify memory allocation - that is cognisant of the relevant process/core allocation. This - applies also to allocation of huge pages. - memory_hot_add: - type: boolean - required: false - description: > - Hot add memory is the ability to add physical memory while the system - is running. Added memory can immediately replace failing memory via - migration or be brought on-line later. - -tosca.capabilities.nfv.Hypervisors: - derived_from: tosca.capabilities.Root - properties: - hypervisors: - type: list - required: false - entry_schema: - type: string - constraints: - - min_length: 1 - description: > - There are a number of hypervisor related parameters that can have a - significant impact on the deployment and performance of the VDU. - These include: - • Hypervisor type - • Hypervisor version as a VDU may be validated with a particular - version. - • Hypervisor Address Translation support parameters including: - o Second Level Address Translation. - o Second Level Address Translation with Large page - support. - o Second Level Address Translation for I/O. - o Second Level Address Translation for I/O with Large page. - support. Where "Large" is considered to be 1 GB or - greater. - o Support for interrupt remapping, i.e. supporting the IOMMU - in the hypervisor. - o Support of data processing acceleration libraries in the - hypervisor, i.e. for acceleration libraries which require - hypervisor support for high performance. - -tosca.capabilities.nfv.PCIe: - derived_from: tosca.capabilities.Root - properties: - platform_pcie_parameter: - type: list - required: false - entry_schema: - type: string - constraints: - - min_length: 1 - description: > - There are a number of PCIe related parameters that can - have a significant impact on the deployment and - performance of the VDU. These include: - • PCIe generational capabilities. - • PCIe bandwidth. - • PCIe Device Pass-through. - • PCIe SR-IOV as the VDU may require that an SR- - IOV virtual vunction from the specified PCIe - device can be allocated to the VM. - • PCIe Device Assignment Affinity. The VDU may - require for performance reasons the ability to - allocate a partitionable PCIe Device capability - such as a NIC port, an entire NIC or a NIC virtual - function to the VDU while also ensuring that the - selected device is locally connected to the same - processor. - platform_pcie_parameter: - type: string - required: false - description: > - Detecting and reporting correctable and un-correctable - (fatal and non-fatal) PCIe errors to software for error - handling and remediation. - platform_acceleration_device: - type: list - required: false - entry_schema: - type: string - constraints: - - min_length: 1 - description: > - The VDU may have been developed, optimized or - tested with an acceleration device such as a crypto - accelerator that may typically be accessed over a PCIe - bus. - -tosca.capabilities.nfv.network.Interfaces: - derived_from: tosca.capabilities.Root - properties: - network_interface_card_capability: - type: list - required: false - entry_schema: - type: string - constraints: - - min_length: 1 - description: > - The VDU may have been developed, optimized or - tested with certain NIC capabilities to benefit items - such as performance or scalability. These include: - • TCP Large Segmentation Offload (LSO) for - offload the segmentation of large TCP - messages into MTU sized packets from the - CPU to the NIC. - • Large Receive Offload (LRO), i.e. the - inverse of LSO by coalescing incoming - TCP/IP packets into larger segments for - processing in the CPU. - • Checksum Offload. - • Receive Side Scaling (RSS), for packet - distribution between cores. - • Flow Director, for more fine grained (than - RSS) packet distribution between cores. - • Mirroring of packets between interfaces. - • Availability of Independent Rx/Tx queues for - VM so that queue pairs in the NIC can be - allocated to the VMs. - • Jumbo Frame support. - • VLAN tag stripping. - • RDMA support. - • SR-IOV support. - • Data processing acceleration software - library support, e.g. DPDK ® - see note. - network_interface_bandwidth: - type: list - required: false - entry_schema: - type: string - constraints: - - min_length: 1 - description: > - The network speed/bandwidth to be guaranteed - per requested NIC. - data_processing_acceleration_library: - type: list - required: false - entry_schema: - type: string - constraints: - - min_length: 1 - description: > - Name and version of the data processing - acceleration library used. Orchestration can match - any NIC that is known to be compatible with the - specified library - -tosca.capabilities.nfv.network.Virtual_switches: - derived_from: tosca.capabilities.Root - properties: - vswitch_capability: - type: list - required: false - entry_schema: - type: string - constraints: - - min_length: 1 - description: > - The VDU may have been developed, optimized or tested with a - particular vSwitch and may require specifying the vSwitch type, version - and key features such as overlay tunnel termination support. - -tosca.capabilities.nfv.Storage: - derived_from: tosca.capabilities.Root - properties: - storage_requirement: - type: scalar-unit.size - required: false - constraints: - - greater_or_equal: 0 MB - description: > - Required storage characteristics (e.g. size), including Key Quality - Indicators (KQIs) for performance and reliability/availability. - rdma_support_bandwitdh: - type: integer - required: false - constraints: - - greater_or_equal: 0 - description: > - The VDU may have been developed, optimized or tested with a - storage supporting RDMA over a given bandwidth. - - - -########################################################################## -# Group Type. -# Defined within the TOSCA nfv Simple Profile specification. -########################################################################## -tosca.groups.nfv.VNFFG: - derived_from: tosca.groups.Root - properties: - vendor: - type: string - required: true - description: name of the vendor who generate this VNFFG - version: - type: string - required: true - description: version of this VNFFG - number_of_endpoints: - type: integer - required: true - description: count of the external endpoints included in this VNFFG - dependent_virtual_link: - type: list - description: Reference to a VLD used in this Forwarding Graph - required: true - entry_schema: - type: string - connection_point: - type: list - description: Reference to Connection Points forming the VNFFG - required: true - entry_schema: - type: string - constituent_vnfs: - type: list - description: Reference to a list of VNFD used in this VNF Forwarding Graph - required: true - entry_schema: - type: string - targets: - type: list - required: false - description: list of Network Forwarding Path within the VNFFG - entry_schema: - type: string - requirements: - - forwarder: - capability: tosca.capabilities.nfv.Forwarder - relationship: tosca.relationships.nfv.ForwardsTo - -#data_types: -########################################################################## -# Data Type. To be continue -# A Datatype is a complex data type declaration which contains other -# complex or simple data types. -# BWT: will be added future. -########################################################################## -#tosca.datatypes.network.XX: -# properties: -# network_name: -# type: string -# network_id: -# type: string -# addresses: -# type: list -# entry_schema: -# type: string - -#artifact_types: -########################################################################## -# Artifact Type.To be continue -# An Artifact Type is a reusable entity that defines the type of one or more -# files which Node Types or Node Templates can have dependent relationships -# and used during operations such as during installation or deployment. -# BWT: will be added future. -########################################################################## -#tosca.artifacts.File.XXX: -# derived_from: tosca.artifacts.Root diff --git a/docs/parser_docs/tosca2heat/parser_new_keywords.rst b/docs/parser_docs/tosca2heat/parser_new_keywords.rst deleted file mode 100644 index f430b1d..0000000 --- a/docs/parser_docs/tosca2heat/parser_new_keywords.rst +++ /dev/null @@ -1,117 +0,0 @@ -.. This work is licensed under a Creative Commons Attribution 4.0 International License. -.. http://creativecommons.org/licenses/by/4.0 - -=================== -New Parser keywords -=================== - -1.NFV-tosca new keywords ------------------------- - -All keywords in nfv tosca are not implemented in code, and will be -implemented by parser. - -1.1 Nodes types -~~~~~~~~~~~~~~~ - -Basic types -^^^^^^^^^^^ - -* tosca.nodes.nfv.VDU -* tosca.nodes.nfv.CP -* tosca.nodes.nfv.VL - -Extend types -^^^^^^^^^^^^ - -* tosca.nodes.nfv.VL.ELine -* tosca.nodes.nfv.VL.ELAN -* tosca.nodes.nfv.VL.ETree -* tosca.nodes.nfv.FP - -1.2 Capability types -~~~~~~~~~~~~~~~~~~~~ - -Basic types -^^^^^^^^^^^ - -* tosca.capabilities.nfv.VirtualBindable -* tosca.capabilities.nfv.VirtualLinkable -* tosca.capabilities.nfv.HA.ActiveActive -* tosca.capabilities.nfv.HA.ActivePassive -* tosca.capabilities.nfv.Metric - -Extend types -^^^^^^^^^^^^ - -* tosca.capabilities.nfv.Forwarder -* tosca.capabilities.nfv.CPU\_extension -* tosca.capabilities.nfv.Memory\_extension -* tosca.capabilities.nfv.Hypervisors -* tosca.capabilities.nfv.PCIe -* tosca.capabilities.nfv.network.Interfaces -* tosca.capabilities.nfv.network.Virtual\_switches -* tosca.capabilities.nfv.Storage - -1.3 Relationship types -~~~~~~~~~~~~~~~~~~~~~~ - -Basic types -^^^^^^^^^^^ - -* tosca.relationships.nfv.VirtualBindsTo -* tosca.relationships.nfv.VirtualLinksTo -* tosca.relationships.nfv.HA -* tosca.relationships.nfv.Monitor - -Extend types -^^^^^^^^^^^^ - -* tosca.relationships.nfv.ForwardsTo - -1.4 Group Types -~~~~~~~~~~~~~~~ - -* tosca.groups.nfv.VNFFG - -2.Simple-tosca new keywords ---------------------------- - -Some keywords are only defined in tosca simple profile,but are not -supported in tosca-paser, and some keywords such as "policy type", are not yet defined -completely so far. - -2.1 topology template keyname -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -* "substitution\_mappings" syntax - - An optional declaration that exports the topology template as an - impletmentation of a node type, which is not supported by tosca-parser. - -2.2 Group types -~~~~~~~~~~~~~~~ - -Basic types -^^^^^^^^^^^ - -* tosca.group.root - -2.3 Policy Types -~~~~~~~~~~~~~~~~ - -Basic types -^^^^^^^^^^^ - -* tosca.policies.Root -* tosca.policies.Placement -* tosca.policies.Scaling - -Extend types -^^^^^^^^^^^^ - -* tosca.policies.Update -* tosca.policies.Performance -* tosca.policy.placement.Antilocate -* tosca.policy.placement.Colocate - diff --git a/docs/parser_docs/vRNC_tosca_intro.rst b/docs/parser_docs/vRNC_tosca_intro.rst deleted file mode 100644 index 5e33ad3..0000000 --- a/docs/parser_docs/vRNC_tosca_intro.rst +++ /dev/null @@ -1,50 +0,0 @@ -.. This work is licensed under a Creative Commons Attribution 4.0 International License. -.. http://creativecommons.org/licenses/by/4.0 - -================ -1. vRNC Topology -================ - -The simple vRNC topology is shown below: :numref:`figure_topo` - -.. figure:: images/vRNC_Topology.png - :name: figure_topo - :width: 100% - - vRNC Topology - -- vRNC includes four networks: EMS\_network, CTRL\_network, - Intermedia\_network and extermedia\_network; -- vRNC includes four node types: MM, LB, CM and DM; -- MM: Stands for Maintain Module, which links to EMS\_network, - CTRL\_network and extermedia\_network. It composes of active vdu and - standby vdu. -- CM: Stands for Control Module, which links to CTRL\_network and - intermedia\_network. All CM nodes form resource pool and each node - composes of active vdu and standby vdu. -- DM: Stands for Data Module, which links to CTRL\_network and - intermedia\_network. All DM nodes form resource pool and each node is - a vdu. -- LB: Stands for LineCard Module, which links to CTRL\_network and - intermedia\_network and extermedia\_network. All LB nodes form - resource pool and each node is a vdu. - -2. vRNC Definition -================== - -The files dependency and correspoding specificaiton of vRNC definition -are shown below: :numref:`figure_def` - -.. figure:: images/vRNC_Definition.png - :name: figure_def - :width: 100% - - vRNC Definition - -- TOSCA\_definition\_1.0.yaml should be the lastest version, which is - updated by tosca-parser community, but some keywords (such as - substitution\_mappings) in the correspoding standard of - "TOSCA-simple-profile-YAML-v1.0" is not supported. -- TOSCA\_nfv\_definition\_1.0.yaml is a new file, and not implemented - in code, and the correspoding standard of - "tosca-nfv-v1.0-wd02-rev02" is not complete now. diff --git a/docs/parser_docs/yang2tosca/clearwater_tosca.yaml b/docs/parser_docs/yang2tosca/clearwater_tosca.yaml deleted file mode 100644 index 2b4dd52..0000000 --- a/docs/parser_docs/yang2tosca/clearwater_tosca.yaml +++ /dev/null @@ -1,151 +0,0 @@ -tosca_definitions_version: tosca_simple_yaml_1_0_0 -description: > - This module defines a VNF Deployment Unit. - -metadata: - template_name: clearwater - template_author: HP - -dsl_definitions: - compute_props_host_ellis: &compute_props_host_ellis - num_cpu: 4 - mem_size: 4096 - compute_props_host_bono: &compute_props_host_bono - num_cpu: 3 - mem_size: 2048 - -node_types: - tosca.nodes.compute.ellis: - derived_from: tosca.nodes.compute - - tosca.nodes.compute.bono: - derived_from: tosca.nodes.compute - -topology_template: - # a description of the topology template - description: > - - - inputs: - storage_size: - type: scalar-unit.size - default: 2048 M - description: The required storage resource - - storage_location: - type: string - description: > - Block storage mount point (filesystem path). - - node_templates: - ellis: - type: tosca.nodes.compute.ellis - capabilities: - host: - properties: *compute_props_host_ellis - scalable: - properties: - min_instances: 1 - default_instances: 1 - requirements: - - local_storage: - node: ellis_BlockStorage - relationship: - type: AttachesTo - properties: - location: { get_input: storage_location } - interfaces: - Standard: - start: - implementation: start.sh - delete: - implementaion: stop.sh - stop: - implementaion: shutdown.sh - - ellis_BlockStorage: - type: tosca.nodes.BlockStorage - properties: - size: { get_input: storage_size } - - bono: - type: tosca.nodes.compute.bono - capabilities: - host: - properties: *compute_props_host_bono - scalable: - properties: - min_instances: 3 - default_instances: 3 - requirements: - - local_storage: - node: bono_BlockStorage - relationship: - type: AttachesTo - properties: - location: { get_input: storage_location } - interfaces: - Standard: - start: - implementation: start.sh - delete: - implementaion: stop.sh - stop: - implementaion: shutdown.sh - - bono_BlockStorage: - type: tosca.nodes.BlockStorage - properties: - size: { get_input: storage_size } - - clearwater_network1: - type: tosca.nodes.network.Network - properties: - ip_version: 4 - - ellis_port1: - type: tosca.nodes.network.Port - requirements: - - binding: - node: ellis - - link: - node: clearwater_network1 - - clearwater_network2: - type: tosca.nodes.network.Network - properties: - ip_version: 4 - - ellis_port2: - type: tosca.nodes.network.Port - requirements: - - binding: - node: ellis - - link: - node: clearwater_network2 - - clearwater_network1: - type: tosca.nodes.network.Network - properties: - ip_version: 4 - - bono_port1: - type: tosca.nodes.network.Port - requirements: - - binding: - node: bono - - link: - node: clearwater_network1 - - clearwater_network2: - type: tosca.nodes.network.Network - properties: - ip_version: 4 - - bono_port2: - type: tosca.nodes.network.Port - requirements: - - binding: - node: bono - - link: - node: clearwater_network2 diff --git a/docs/parser_docs/yang2tosca/yang2tosca.rst b/docs/parser_docs/yang2tosca/yang2tosca.rst deleted file mode 100644 index 5aaf463..0000000 --- a/docs/parser_docs/yang2tosca/yang2tosca.rst +++ /dev/null @@ -1,98 +0,0 @@ -.. This work is licensed under a Creative Commons Attribution 4.0 International License. -.. http://creativecommons.org/licenses/by/4.0 - -================= -Parser YANG2TOSCA -================= - -Overview -======== - -Parser is an open source project and licensed under Apache 2. Parser will help -to provide a tooling mechanism, by parsing Telecom operators’ VNF descriptors -(YANG templates) into TOSCA templates and then further translate TOSCA -templates into certain common templates, which could be used in IaaS orchestration -projects like OpenStack Heat. - -Prerequisites -============= - -Parser requires the following to be installed. - -1. PYANG --------- - -Please follow the below installation steps. - -Step 1: Clone pyang tool or download the zip file from the following link. - -.. code-block:: bash - - git clone https://github.com/mbj4668/pyang.git - -OR - -.. code-block:: bash - - wget https://github.com/mbj4668/pyang/archive/master.zip - -Step 2: Change directory to the downloaded directory and run the setup file. - -.. code-block:: bash - - cd pyang - python setup.py - -2. python-lxml --------------- - -Please follow the below installation link. http://lxml.de/installation.html - - -Installation -============================ - -Please follow the below installation steps to install parser. - -Step 1: Clone the parser project. - -.. code-block:: bash - - git clone https://gerrit.opnfv.org/gerrit/parser - -Execution -=========================== - -Step 1: Change directory to where the scripts are present. - -.. code-block:: bash - - cd parser/yang2tosca - -Step 2: Copy the YANG file which needs to be converted into TOSCA to - current (parser/yang2tosca) folder. - -Step 3: Run the python script "parser.py" with the YANG file as an input option. - -.. code-block:: bash - - python parser.py -n "YANG filename" - -Example: - -.. code-block:: bash - - python parser.py -n example.yaml - -Step 4: Verify the TOSCA YAMl which file has been created with the same name - as the YANG file with a “_tosca” suffix. - -.. code-block:: bash - - cat "YANG filename_tosca.yaml" - -Example: - -.. code-block:: bash - - cat example_tosca.yaml diff --git a/docs/release/configguide/featureconfig.rst b/docs/release/configguide/featureconfig.rst new file mode 100644 index 0000000..a2db7a7 --- /dev/null +++ b/docs/release/configguide/featureconfig.rst @@ -0,0 +1,21 @@ +.. This work is licensed under a Creative Commons Attribution 4.0 International License. +.. http://creativecommons.org/licenses/by/4.0 + + + +Parser configuration +===================== +Parser can be configured with any installer in current OPNFV, it only depends on +openstack. + +Pre-configuration activities +---------------------------- +For parser, there is not specific pre-configuration activities. + +Hardware configuration +---------------------- +For parser, there is not hardware configuration needed for any current feature. + +Feature configuration +--------------------- +For parser, there is not specific configure on openstack. diff --git a/docs/release/configguide/index.rst b/docs/release/configguide/index.rst new file mode 100644 index 0000000..7ee9b0f --- /dev/null +++ b/docs/release/configguide/index.rst @@ -0,0 +1,12 @@ +.. This work is licensed under a Creative Commons Attribution 4.0 International License. +.. http://creativecommons.org/licenses/by/4.0 + +********************************** +OPNFV Parser Configuration Guide +********************************** + +.. toctree:: + :maxdepth: 1 + + featureconfig + postinstall diff --git a/docs/release/configguide/postinstall.rst b/docs/release/configguide/postinstall.rst new file mode 100644 index 0000000..53ffcbe --- /dev/null +++ b/docs/release/configguide/postinstall.rst @@ -0,0 +1,38 @@ +.. This work is licensed under a Creative Commons Attribution 4.0 International License. +.. http://creativecommons.org/licenses/by/4.0 + +************************************* +Parser Post Installation Procedure +************************************* + +Add a brief introduction to the methods of validating the installation +according to this specific installer or feature. + +.. contents:: + :depth: 3 + :local: + + +Automated post installation activities +====================================== +Describe specific post installation activities performed by the OPNFV +deployment pipeline including testing activities and reports. Refer to +the relevant testing guides, results, and release notes. + +note: this section should be singular and derived from the test projects +once we have one test suite to run for all deploy tools. This is not the +case yet so each deploy tool will need to provide (hopefully very simillar) +documentation of this. + + + post configuration procedures +======================================= +Describe any deploy tool or feature specific scripts, tests or procedures +that should be carried out on the deployment post install and configuration +in this section. + + +Platform components validation +============================== +Describe any component specific validation procedures necessary for your +deployment tool in this section. diff --git a/docs/release/installation/index.rst b/docs/release/installation/index.rst new file mode 100644 index 0000000..24deb84 --- /dev/null +++ b/docs/release/installation/index.rst @@ -0,0 +1,11 @@ +.. This work is licensed under a Creative Commons Attribution 4.0 International License. +.. http://creativecommons.org/licenses/by/4.0 + +*************************************** +OPNFV Parser Installation Instruction +*************************************** + +.. toctree:: + :maxdepth: 1 + + installation.instruction diff --git a/docs/release/installation/installation.instruction.rst b/docs/release/installation/installation.instruction.rst new file mode 100644 index 0000000..3a1417a --- /dev/null +++ b/docs/release/installation/installation.instruction.rst @@ -0,0 +1,76 @@ +.. This work is licensed under a Creative Commons Attribution 4.0 International License. +.. http://creativecommons.org/licenses/by/4.0 + + +Parser general configuration +===================== +Parser can be configured with any installer in current OPNFV. + +Pre-configuration activities +----------------------------- +For parser, there is not specific pre-configuration activities. + +Hardware configuration +----------------------- +For parser, there is not hardware configuration needed for this specific installer. + +Jumphost configuration +----------------------- +For parser, there is not intial Jumphost configuration (network and software)needed in order +to deploy any installer. + + +Parser tosca2heat configuration +===================== +For tosca2heat components(tosca-parser and heat-translator) in parser,there are not specific +configuration of each component in installer. + + +Parser yang2tosca configuration +===================== +Parser yang2tosca requires the following to be installed. + +1. PYANG +-------- + +Please follow the below installation steps. + +Step 1: Clone pyang tool or download the zip file from the following link. + +.. code-block:: bash + + git clone https://github.com/mbj4668/pyang.git + +OR + +.. code-block:: bash + + wget https://github.com/mbj4668/pyang/archive/master.zip + +Step 2: Change directory to the downloaded directory and run the setup file. + +.. code-block:: bash + + cd pyang + python setup.py + +2. python-lxml +-------------- + +Please follow the below installation link. http://lxml.de/installation.html + + +Parser policy2tosca configuration +============================ +Parser - POLICY2TOSCA requires the following to be installed. + +1. cliff +-------- + +Install cliff with the following links. +:: +- `install ` +or +- `demoapp + + diff --git a/docs/release/release-notes/index.rst b/docs/release/release-notes/index.rst new file mode 100644 index 0000000..28dd0b6 --- /dev/null +++ b/docs/release/release-notes/index.rst @@ -0,0 +1,11 @@ +.. This work is licensed under a Creative Commons Attribution 4.0 International License. +.. http://creativecommons.org/licenses/by/4.0 + +**************************** +OPNFV Parser Release Notes +**************************** + +.. toctree:: + :maxdepth: 1 + + release-notes diff --git a/docs/release/release-notes/release-notes.rst b/docs/release/release-notes/release-notes.rst new file mode 100644 index 0000000..ead095c --- /dev/null +++ b/docs/release/release-notes/release-notes.rst @@ -0,0 +1,233 @@ +.. This work is licensed under a Creative Commons Attribution 4.0 International License. +.. http://creativecommons.org/licenses/by/4.0 + + +This document provides the release notes for of . + +.. contents:: + :depth: 3 + :local: + + +Version history +--------------- + ++--------------------+--------------------+--------------------+--------------------+ +| **Date** | **Ver.** | **Author** | **Comment** | +| | | | | ++--------------------+--------------------+--------------------+--------------------+ +| 2015-04-14 | 0.1.0 | Jonas Bjurel | First draft | +| | | | | ++--------------------+--------------------+--------------------+--------------------+ +| | 0.1.1 | | | +| | | | | ++--------------------+--------------------+--------------------+--------------------+ +| | 1.0 | | | +| | | | | ++--------------------+--------------------+--------------------+--------------------+ + +Important notes +=============== + + + +: + +**Attention:** Please be aware that since LSV3 a pre-deploy script must be ran on the Fuel master - +see the OPNFV@Fuel SW installation instructions + + +Summary +======= + + + +: + +Arno Fuel@OPNFV is based the OpenStack Fuel upstream project version 6.0.1, +but adds OPNFV unique components such as OpenDaylight version: Helium as well as other OPNFV unique configurations...... + + +Release Data +============ + + +: + ++--------------------------------------+--------------------------------------+ +| **Project** | E.g. Arno/genesis/fuel@opnfv | +| | | ++--------------------------------------+--------------------------------------+ +| **Repo/commit-ID** | E.g. genesis/adf634a0d4..... | +| | | ++--------------------------------------+--------------------------------------+ +| **Release designation** | E.g. Arno RC2 | +| | | ++--------------------------------------+--------------------------------------+ +| **Release date** | E.g. 2015-04-16 | +| | | ++--------------------------------------+--------------------------------------+ +| **Purpose of the delivery** | E.g. OPNFV Internal quality assurance| +| | | ++--------------------------------------+--------------------------------------+ + +Version change +^^^^^^^^^^^^^^^^ + +Module version changes +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + +: + +- Fuel have changed from 5.1 to 6.0.1 + +- OpenDaylight has changed from Helium-SR1 to Helium-SR2 + +Document version changes +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + +: + +- The Fuel@OPNFV installation guide version has changed from version 0.1 to to 0.2 + +Reason for version +^^^^^^^^^^^^^^^^^^^^ +Feature additions +~~~~~~~~~~~~~~~~~~~~~~~ + + +: + +**JIRA BACK-LOG:** + ++--------------------------------------+--------------------------------------+ +| **JIRA REFERENCE** | **SLOGAN** | +| | | ++--------------------------------------+--------------------------------------+ +| BGS-123 | ADD OpenDaylight ml2 integration | +| | | ++--------------------------------------+--------------------------------------+ +| BGS-456 | Add auto-deployment of Fuel@OPNFV | +| | | ++--------------------------------------+--------------------------------------+ + +Bug corrections +~~~~~~~~~~~~~~~~~~~~~ + +**JIRA TICKETS:** + ++--------------------------------------+--------------------------------------+ +| **JIRA REFERENCE** | **SLOGAN** | +| | | ++--------------------------------------+--------------------------------------+ +| BGS-888 | Fuel doesn't deploy | +| | | ++--------------------------------------+--------------------------------------+ +| BGS-999 | Floating IP doesn't work | +| | | ++--------------------------------------+--------------------------------------+ + +Deliverables +---------------- + +Software deliverables +^^^^^^^^^^^^^^^^^^^^^^^ + + + +: + +Documentation deliverables +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + + +: + + +Known Limitations, Issues and Workarounds +========================================= + +System Limitations +^^^^^^^^^^^^^^^^^^^^ + + +: + +**Max number of blades:** 1 Fuel master, 3 Controllers, 20 Compute blades + +**Min number of blades:** 1 Fuel master, 1 Controller, 1 Compute blade + +**Storage:** Ceph is the only supported storage configuration. + +**Max number of networks:** 3800 (Needs special switch config.) + +**L3Agent:** L3 agent and floating IPs is not supported. + +Known issues +^^^^^^^^^^^^^^^ + + +: + +**JIRA TICKETS:** + ++--------------------------------------+--------------------------------------+ +| **JIRA REFERENCE** | **SLOGAN** | +| | | ++--------------------------------------+--------------------------------------+ +| BGS-987 | Nova-compute process does | +| | not re-spawn when killed | +| | | ++--------------------------------------+--------------------------------------+ +| BGS-654 | MOS 5.1 : neutron net-list returns | +| | "400 Bad request" | +| | | ++--------------------------------------+--------------------------------------+ + +Workarounds +^^^^^^^^^^^^^^^^^ + + + +: + +- In case the contact with a compute is lost - restart the compute host +- In case the disk is full on a controller - delete all files in /tmp + +Test Result +=========== + + +: + +Fuel@OPNFV Arno RC2 has undergone QA test runs with the following results: + ++--------------------------------------+--------------------------------------+ +| **TEST-SUITE** | **Results:** | +| | | ++--------------------------------------+--------------------------------------+ +| Tempest test suite 123 | Following tests failed: | +| | | +| | 1. Image resizing.... | +| | | +| | 2. Heat deploy.... | ++--------------------------------------+--------------------------------------+ +| Robot test suite 456 | Following tests failed: | +| | | +| | 1....... | +| | | +| | 2....... | ++--------------------------------------+--------------------------------------+ + +References +========== + + +: + +For more information on the OPNFV Danube release, please see: + +http://opnfv.org/danube diff --git a/docs/release/scenarios/scenario.name/index.rst b/docs/release/scenarios/scenario.name/index.rst new file mode 100644 index 0000000..a857e62 --- /dev/null +++ b/docs/release/scenarios/scenario.name/index.rst @@ -0,0 +1,16 @@ +.. This work is licensed under a Creative Commons Attribution 4.0 International License. +.. http://creativecommons.org/licenses/by/4.0 + + +**************************************** + overview and description +**************************************** +.. This document will be used to provide a description of the scenario for an end user. +.. You should explain the purpose of the scenario, the types of capabilities provided and +.. the unique components that make up the scenario including how they are used. + +.. toctree:: + :maxdepth: 1 + + scenario.description + diff --git a/docs/release/scenarios/scenario.name/scenario.description.rst b/docs/release/scenarios/scenario.name/scenario.description.rst new file mode 100644 index 0000000..8c2cbab --- /dev/null +++ b/docs/release/scenarios/scenario.name/scenario.description.rst @@ -0,0 +1,39 @@ +.. This work is licensed under a Creative Commons Attribution 4.0 International License. +.. http://creativecommons.org/licenses/by/4.0 +.. (c) + +This document provides scenario level details for of . + +.. contents:: + :depth: 3 + :local: + +============ +Introduction +============ +.. In this section explain the purpose of the scenario and the types of capabilities provided + +Scenario components and composition +=================================== +.. In this section describe the unique components that make up the scenario, +.. what each component provides and why it has been included in order +.. to communicate to the user the capabilities available in this scenario. + +Scenario usage overview +======================= +.. Provide a brief overview on how to use the scenario and the features available to the +.. user. This should be an "introduction" to the userguide document, and explicitly link to it, +.. where the specifics of the features are covered including examples and API's + +Limitations, Issues and Workarounds +=================================== +.. Explain scenario limitations here, this should be at a design level rather than discussing +.. faults or bugs. If the system design only provide some expected functionality then provide +.. some insight at this point. + +References +========== + +For more information on the OPNFV Danube release, please visit +http://www.opnfv.org/danube + diff --git a/docs/release/userguide/feature.userguide.rst b/docs/release/userguide/feature.userguide.rst new file mode 100644 index 0000000..c42330c --- /dev/null +++ b/docs/release/userguide/feature.userguide.rst @@ -0,0 +1,184 @@ +.. This work is licensed under a Creative Commons Attribution 4.0 International License. +.. http://creativecommons.org/licenses/by/4.0 +.. (c) + +Parser tosca2heat Installation +============================ + +Please follow the below installation steps to install tosca2heat submodule in parser. + +Step 1: Clone the parser project. + +.. code-block:: bash + + git clone https://gerrit.opnfv.org/gerrit/parser + +Step 2: Install the heat-translator sub project. + +.. code-block:: bash + + # uninstall pre-installed tosca-parser + pip uninstall -y heat-translator + + # change directory to heat-translator + cd parser/tosca2heat/heat-translator + + # install requirements + pip install -r requirements.txt + + # install heat-translator + python setup.py install + +Step 3: Install the tosca-parser sub project. + +.. code-block:: bash + + # uninstall pre-installed tosca-parser + pip uninstall -y tosca-parser + + # change directory to tosca-parser + cd parser/tosca2heat/tosca-parser + + # install requirements + pip install -r requirements.txt + + # install tosca-parser + python setup.py install + + + **Notes** It must uninstall pre-installed tosca-parser and heat-translator before install the two + components, and install heat-translator before installing tosca-parser, which is sure to use the + OPNFV version of tosca-parser and heat-translator other than openstack's components. + +Parser tosca2heat Execution +=========================== + +Step 1: Change directory to where the tosca yaml files are present, example is +below with vRNC definiton. + +.. code-block:: bash + + cd parser/tosca2heat/tosca-parser/toscaparser/extensions/nfv/tests/data/vRNC/Definitions + + +Step 2: Run the python command heat-translator with the TOSCA yaml file as an input option. + +.. code-block:: bash + + heat-translator --template-file= --template-type=tosca + --outpurt-file= + +Example: + +.. code-block:: bash + + heat-translator --template-file=vRNC.yaml \ + --template-type=tosca --output-file=vRNC_hot.yaml + +Notes: heat-translator will call class of ToscaTemplate in tosca-parser firstly to validate and +parse input yaml file, then tranlate the file into hot file, if you only want to validate or +check the input file and don't want to translate, please use tosaca-parser as following: + +.. code-block:: bash + + tosca-parser --template-file= + +Example: + +.. code-block:: bash + + tosca-parser --template-file=vRNC.yaml + +Parser tosca2heat References +=========================== +Refer two upstream components: + https://github.com/openstack/tosca-parser/blob/master/doc/source/usage.rst + https://github.com/openstack/heat-translator/blob/master/doc/source/usage.rst + + + + +Parser yang2tosca Execution +============================ + +Step 1: Change directory to where the scripts are present. + +.. code-block:: bash + + cd parser/yang2tosca + +Step 2: Copy the YANG file which needs to be converted into TOSCA to + current (parser/yang2tosca) folder. + +Step 3: Run the python script "parser.py" with the YANG file as an input option. + +.. code-block:: bash + + python parser.py -n "YANG filename" + +Example: + +.. code-block:: bash + + python parser.py -n example.yaml + +Step 4: Verify the TOSCA YAMl which file has been created with the same name + as the YANG file with a “_tosca” suffix. + +.. code-block:: bash + + cat "YANG filename_tosca.yaml" + +Example: + +.. code-block:: bash + + cat example_tosca.yaml + + + + + +Parser policy2tosca Execution +============================ + +Step 1: To see a list of commands available. + +.. code-block:: bash + + policy2tosca --help + +Step 2: To see help for an individual command, include the command name on the command line + +.. code-block:: bash + + policy2tosca help + +Step 3: To inject/remove policy types/policy definitions provide the TOSCA file as input to +policy2tosca command line. + +.. code-block:: bash + + policy2tosca [arguments] + +Example: + +.. code-block:: bash + + policy2tosca add-definition --policy_name rule2 --policy_type tosca.policies.Placement.Geolocation +--description "test description" --properties region:us-north-1,region:us-north-2,min_inst:2 --targets +VNF2,VNF4 --metadata "map of strings" --triggers "1,2,3,4" --source example.yaml + + +Step 4: Verify the TOSCA YAMl updated with the injection/removal executed. + +.. code-block:: bash + + cat "" + +Example: + +.. code-block:: bash + + cat example_tosca.yaml + diff --git a/docs/release/userguide/index.rst b/docs/release/userguide/index.rst new file mode 100644 index 0000000..87059c9 --- /dev/null +++ b/docs/release/userguide/index.rst @@ -0,0 +1,23 @@ +.. This work is licensed under a Creative Commons Attribution 4.0 International License. +.. http://creativecommons.org/licenses/by/4.0 + + +======================= +OPNFV Parser User Guide +======================= + +.. The feature user guide should provide an OPNFV user with enough information to +.. use the features provided by the feature project in the supported scenarios. +.. This guide should walk a user through the usage of the features once a scenario +.. has been deployed and is active according to the installation guide provided +.. by the installer project. + +.. toctree:: + :maxdepth: 1 + + feature.userguide +.. The feature.userguide.rst file should contain the text for this document +.. additional documents can be added to this directory and added in the right order +.. to this file as a list below. + + diff --git a/docs/testing/index.rst b/docs/testing/index.rst new file mode 100644 index 0000000..99c2cfd --- /dev/null +++ b/docs/testing/index.rst @@ -0,0 +1,14 @@ +.. This work is licensed under a Creative Commons Attribution 4.0 International +.. License. +.. http://creativecommons.org/licenses/by/4.0 + + +============================================= +OPNFV Parser Danube Overview +============================================= + + +.. toctree:: + :maxdepth: 1 + + testusage diff --git a/docs/testing/testusage.rst b/docs/testing/testusage.rst new file mode 100644 index 0000000..405d6bd --- /dev/null +++ b/docs/testing/testusage.rst @@ -0,0 +1,54 @@ +.. This work is licensed under a Creative Commons Attribution 4.0 International License. +.. http://creativecommons.org/licenses/by/4.0 + + +Parser tosca2heat test usage +=========================== +1. run tox in tosca-parser sub project + +.. code-block:: bash + + # change directory to tosca-parser + cd parser/tosca2heat/tosca-parser + + # run with pep8 + tox -epep8 + + # run unit test + tox -epy27 + +or + +.. code-block:: bash + + # change directory to tosca-parser + cd parser/tosca2heat/tosca-parser + + # run tox + tox + + +2. run tox in heat-translator sub project + +.. code-block:: bash + + # change directory to heat-translator + cd parser/tosca2heat/heat-translator + + # run with pep8 + tox -epep8 + + # run unit test + tox -epy27 + tox -epy34 + +or + +.. code-block:: bash + + # change directory to heat-translator + cd parser/tosca2heat/heat-translator + + # run tox + tox + diff --git a/docs/userguide/featureusage.rst b/docs/userguide/featureusage.rst deleted file mode 100644 index c42330c..0000000 --- a/docs/userguide/featureusage.rst +++ /dev/null @@ -1,184 +0,0 @@ -.. This work is licensed under a Creative Commons Attribution 4.0 International License. -.. http://creativecommons.org/licenses/by/4.0 -.. (c) - -Parser tosca2heat Installation -============================ - -Please follow the below installation steps to install tosca2heat submodule in parser. - -Step 1: Clone the parser project. - -.. code-block:: bash - - git clone https://gerrit.opnfv.org/gerrit/parser - -Step 2: Install the heat-translator sub project. - -.. code-block:: bash - - # uninstall pre-installed tosca-parser - pip uninstall -y heat-translator - - # change directory to heat-translator - cd parser/tosca2heat/heat-translator - - # install requirements - pip install -r requirements.txt - - # install heat-translator - python setup.py install - -Step 3: Install the tosca-parser sub project. - -.. code-block:: bash - - # uninstall pre-installed tosca-parser - pip uninstall -y tosca-parser - - # change directory to tosca-parser - cd parser/tosca2heat/tosca-parser - - # install requirements - pip install -r requirements.txt - - # install tosca-parser - python setup.py install - - - **Notes** It must uninstall pre-installed tosca-parser and heat-translator before install the two - components, and install heat-translator before installing tosca-parser, which is sure to use the - OPNFV version of tosca-parser and heat-translator other than openstack's components. - -Parser tosca2heat Execution -=========================== - -Step 1: Change directory to where the tosca yaml files are present, example is -below with vRNC definiton. - -.. code-block:: bash - - cd parser/tosca2heat/tosca-parser/toscaparser/extensions/nfv/tests/data/vRNC/Definitions - - -Step 2: Run the python command heat-translator with the TOSCA yaml file as an input option. - -.. code-block:: bash - - heat-translator --template-file= --template-type=tosca - --outpurt-file= - -Example: - -.. code-block:: bash - - heat-translator --template-file=vRNC.yaml \ - --template-type=tosca --output-file=vRNC_hot.yaml - -Notes: heat-translator will call class of ToscaTemplate in tosca-parser firstly to validate and -parse input yaml file, then tranlate the file into hot file, if you only want to validate or -check the input file and don't want to translate, please use tosaca-parser as following: - -.. code-block:: bash - - tosca-parser --template-file= - -Example: - -.. code-block:: bash - - tosca-parser --template-file=vRNC.yaml - -Parser tosca2heat References -=========================== -Refer two upstream components: - https://github.com/openstack/tosca-parser/blob/master/doc/source/usage.rst - https://github.com/openstack/heat-translator/blob/master/doc/source/usage.rst - - - - -Parser yang2tosca Execution -============================ - -Step 1: Change directory to where the scripts are present. - -.. code-block:: bash - - cd parser/yang2tosca - -Step 2: Copy the YANG file which needs to be converted into TOSCA to - current (parser/yang2tosca) folder. - -Step 3: Run the python script "parser.py" with the YANG file as an input option. - -.. code-block:: bash - - python parser.py -n "YANG filename" - -Example: - -.. code-block:: bash - - python parser.py -n example.yaml - -Step 4: Verify the TOSCA YAMl which file has been created with the same name - as the YANG file with a “_tosca” suffix. - -.. code-block:: bash - - cat "YANG filename_tosca.yaml" - -Example: - -.. code-block:: bash - - cat example_tosca.yaml - - - - - -Parser policy2tosca Execution -============================ - -Step 1: To see a list of commands available. - -.. code-block:: bash - - policy2tosca --help - -Step 2: To see help for an individual command, include the command name on the command line - -.. code-block:: bash - - policy2tosca help - -Step 3: To inject/remove policy types/policy definitions provide the TOSCA file as input to -policy2tosca command line. - -.. code-block:: bash - - policy2tosca [arguments] - -Example: - -.. code-block:: bash - - policy2tosca add-definition --policy_name rule2 --policy_type tosca.policies.Placement.Geolocation ---description "test description" --properties region:us-north-1,region:us-north-2,min_inst:2 --targets -VNF2,VNF4 --metadata "map of strings" --triggers "1,2,3,4" --source example.yaml - - -Step 4: Verify the TOSCA YAMl updated with the injection/removal executed. - -.. code-block:: bash - - cat "" - -Example: - -.. code-block:: bash - - cat example_tosca.yaml - diff --git a/docs/userguide/index.rst b/docs/userguide/index.rst deleted file mode 100644 index 938f9c6..0000000 --- a/docs/userguide/index.rst +++ /dev/null @@ -1,26 +0,0 @@ -.. This work is licensed under a Creative Commons Attribution 4.0 International -.. License. -.. http://creativecommons.org/licenses/by/4.0 -.. (c) OPNFV, Ericsson AB and others. - -================= -Parser User Guide -================= -Parser is an open source project and licensed under Apache 2. Parser will help -to provide a tooling mechanism, by parsing and then further translating Telecom -operators deployment descriptors into certain common templates, which could be -used in IaaS orchestration projects like OpenStack Heat(the template file is HOT, -which stands for Heat Orchestrator Template). - -This document contains installation guide , execution guide as well as testing guide -for Parser's three submodules: tosca2heat, yang2tosca and policy2tosca. - - -Contents: - -.. toctree:: - :numbered: - :maxdepth: 2 - -.. include:: featureusage.rst -.. include:: testusage.rst diff --git a/docs/userguide/policy2tosca.rst b/docs/userguide/policy2tosca.rst deleted file mode 100644 index 3f4f2e7..0000000 --- a/docs/userguide/policy2tosca.rst +++ /dev/null @@ -1,52 +0,0 @@ -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or -# implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -Execution -=========================== - -Step 1: To see a list of commands available. - -.. code-block:: bash - - policy2tosca --help - -Step 2: To see help for an individual command, include the command name on the command line - -.. code-block:: bash - - policy2tosca help - -Step 3: To inject/remove policy types/policy definitions provide the TOSCA file as input to policy2tosca command line. - -.. code-block:: bash - - policy2tosca [arguments] - -Example: - -.. code-block:: bash - - policy2tosca add-definition --policy_name rule2 --policy_type tosca.policies.Placement.Geolocation --description "test description" --properties region:us-north-1,region:us-north-2,min_inst:2 --targets VNF2,VNF4 --metadata "map of strings" --triggers "1,2,3,4" --source example.yaml - - -Step 4: Verify the TOSCA YAMl updated with the injection/removal executed. - -.. code-block:: bash - - cat "" - -Example: - -.. code-block:: bash - - cat example_tosca.yaml diff --git a/docs/userguide/testusage.rst b/docs/userguide/testusage.rst deleted file mode 100644 index 47f37f1..0000000 --- a/docs/userguide/testusage.rst +++ /dev/null @@ -1,54 +0,0 @@ -.. This work is licensed under a Creative Commons Attribution 4.0 International License. -.. http://creativecommons.org/licenses/by/4.0 -.. (c) - -Parser tosca2heat test usage -=========================== -1. run tox in tosca-parser sub project - -.. code-block:: bash - - # change directory to tosca-parser - cd parser/tosca2heat/tosca-parser - - # run with pep8 - tox -epep8 - - # run unit test - tox -epy27 - -or - -.. code-block:: bash - - # change directory to tosca-parser - cd parser/tosca2heat/tosca-parser - - # run tox - tox - - -2. run tox in heat-translator sub project - -.. code-block:: bash - - # change directory to heat-translator - cd parser/tosca2heat/heat-translator - - # run with pep8 - tox -epep8 - - # run unit test - tox -epy27 - tox -epy34 - -or - -.. code-block:: bash - - # change directory to heat-translator - cd parser/tosca2heat/heat-translator - - # run tox - tox - diff --git a/docs/userguide/yang2tosca.rst b/docs/userguide/yang2tosca.rst deleted file mode 100644 index 4708c9a..0000000 --- a/docs/userguide/yang2tosca.rst +++ /dev/null @@ -1,49 +0,0 @@ -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or -# implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -Execution -=========================== - -Step 1: Change directory to where the scripts are present. - -.. code-block:: bash - - cd parser/yang2tosca - -Step 2: Copy the YANG file which needs to be converted into TOSCA to - current (parser/yang2tosca) folder. - -Step 3: Run the python script "parser.py" with the YANG file as an input option. - -.. code-block:: bash - - python parser.py -n "YANG filename" - -Example: - -.. code-block:: bash - - python parser.py -n example.yaml - -Step 4: Verify the TOSCA YAMl which file has been created with the same name - as the YANG file with a “_tosca” suffix. - -.. code-block:: bash - - cat "YANG filename_tosca.yaml" - -Example: - -.. code-block:: bash - - cat example_tosca.yaml -- cgit 1.2.3-korg