diff options
author | Eric Multanen <eric.w.multanen@intel.com> | 2018-08-29 20:21:23 -0700 |
---|---|---|
committer | Eric Multanen <eric.w.multanen@intel.com> | 2018-09-06 21:03:58 -0700 |
commit | ca9d5080794355f7267f350a9364162920ed4fcf (patch) | |
tree | baafda54df129a57ec5d100635412ed7da205cdd /tosca/vCPE/Definitions | |
parent | 2380377cffe9385c16228a8a3bceb1320ac6e718 (diff) |
Add TOSCA templates for vCPE use case
Adds initial TOSCA files and script to generate
CSAR files for the vCPE use case VNFs.
Change-Id: Idb85153e8e18b9c21f24aa6ef92d887e17da07c3
Issue-ID: INT-536
Signed-off-by: Eric Multanen <eric.w.multanen@intel.com>
Diffstat (limited to 'tosca/vCPE/Definitions')
-rw-r--r-- | tosca/vCPE/Definitions/onap_dm.yaml | 827 |
1 files changed, 827 insertions, 0 deletions
diff --git a/tosca/vCPE/Definitions/onap_dm.yaml b/tosca/vCPE/Definitions/onap_dm.yaml new file mode 100644 index 00000000..0a3faba0 --- /dev/null +++ b/tosca/vCPE/Definitions/onap_dm.yaml @@ -0,0 +1,827 @@ +tosca_definitions_version: tosca_simple_yaml_1_0 +#Artifact Types +#Based on R2 Design-time Resource DM clean version v8 +artifact_types: + tosca.artifacts.nfv.SwImage: + derived_from: tosca.artifacts.Deployment.Image + +#Capabilities Type +#Based on R2 Design-time Resource DM clean version v21 +capability_types: + tosca.capabilities.nfv.VirtualBindable: + derived_from: tosca.capabilities.Root + + tosca.capabilities.nfv.Metric: + derived_from: tosca.capabilities.Root + + tosca.capabilities.nfv.VirtualCompute: + derived_from: tosca.capabilities.Root + properties: + logical_node: + type: tosca.datatypes.nfv.LogicalNodeData + required: false + compute_requirements: + type: map + entry_schema: + type: string + required: false + requested_additional_capabilities: + type: map + entry_schema: + type: tosca.datatypes.nfv.RequestedAdditionalCapability + required: false + virtual_memory: + type: tosca.datatypes.nfv.VirtualMemory + required: true + virtual_cpu: + type: tosca.datatypes.nfv.VirtualCpu + required: true + + tosca.capabilities.nfv.VirtualStorage: + derived_from: tosca.capabilities.Root + + tosca.capabilities.nfv.VirtualLinkable: + derived_from: tosca.capabilities.Root + + tosca.capabilities.nfv.ExtVirtualLinkable: + derived_from: tosca.capabilities.Root + +#Data Types +#Based on R2 Design-time Resource DM clean version v45 +data_types: + tosca.datatypes.nfv.L2AddressData: + derived_from: tosca.datatypes.Root + properties: + mac_address_assignment: + type: boolean + required: true + + tosca.datatypes.nfv.injectFile: + derived_from: tosca.datatypes.Root + properties: + source_path: + type: string + required: true + dest_path: + type: string + required: true + + tosca.datatypes.nfv.L3AddressData: + derived_from: tosca.datatypes.Root + properties: + ip_address_assignment: + type: boolean + required: true + floating_ip_activated: + type: boolean + required: true + ip_address_type: + type: string + required: false + constraints: + - valid_values: [ipv4, ipv6] + number_of_ip_address: + type: integer + required: false + fixed_ip_address: + type: list + entry_schema: + type: string + required: false + + tosca.datatypes.nfv.AddressData: + derived_from: tosca.datatypes.Root + properties: + address_type: + type: string + required: true + constraints: + - valid_values: [mac_address, ip_address] + l2_address_data: + type: tosca.datatypes.nfv.L2AddressData # empty in "GS NFV IFA011 V0.7.3" + required: false + l3_address_data: + type: tosca.datatypes.nfv.L3AddressData + required: false + + tosca.datatypes.nfv.VirtualNetworkInterfaceRequirements: + derived_from: tosca.datatypes.Root + properties: + name: + type: string + required: false + description: + type: string + required: false + support_mandatory: + type: boolean + required: true + #TODO HPA + network_interface_requirements: + type: map + entry_schema: + type: string + required: true + nic_io_requirements: + type: tosca.datatypes.nfv.LogicalNodeData + required: false + + tosca.datatypes.nfv.ConnectivityType: + derived_from: tosca.datatypes.Root + properties: + layer_protocol: + type: string + required: true + constraints: + - valid_values: [ethernet, mpls, odu2, ipv4, ipv6, pseudo_wire ] + flow_pattern: + type: string + required: false + constraints: # not defined in IFA011 v2.4.1 and SOL001 v.6.0 + - valid_values: [Line, Tree, Mesh] + + tosca.datatypes.nfv.RequestedAdditionalCapability: + derived_from: tosca.datatypes.Root + properties: + #name: + # key of containing map + support_mandatory: + type: boolean + required: true + min_requested_additional_capability_version: + type: string + required: false + preferred_requested_additional_capability_version: + type: string + required: false + requested_additional_capability_name: + type: string + required: true + target_performance_parameters: + type: map + entry_schema: + type: string + required: true + + tosca.datatypes.nfv.VirtualMemory: + derived_from: tosca.datatypes.Root + properties: + virtual_mem_size: + type: scalar-unit.size # Number + required: true + virtual_mem_oversubscription_policy: + type: string + required: false + #TODO HPA + vdu_memory_requirements: + type: map + entry_schema: + type: string + required: false + numa_enabled: + type: boolean + required: false + + tosca.datatypes.nfv.VirtualCpu: + derived_from: tosca.datatypes.Root + properties: + cpu_architecture: + type: string + required: false + num_virtual_cpu: + type: integer + required: true + virtual_cpu_clock: + type: scalar-unit.frequency + required: false + virtual_cpu_oversubscription_policy: + type: string + required: false + #TODO HPA + vdu_cpu_requirements: + type: map + entry_schema: + type: string + required: false + virtual_cpu_pinning: + type: tosca.datatypes.nfv.VirtualCpuPinning + required: false + + tosca.datatypes.nfv.VirtualCpuPinning: + derived_from: tosca.datatypes.Root + properties: + cpu_pinning_policy: + type: string # CpuPinningPolicy + constraints: + - valid_values: [ static, dynamic ] + required: false + cpu_pinning_map: + type: map + entry_schema: + type: string + required: false + + tosca.datatypes.nfv.VnfcConfigurableProperties: + derived_from: tosca.datatypes.Root + properties: + additional_vnfc_configurable_properties: + type: map + entry_schema: + type: string + required: false + + tosca.datatypes.nfv.VduProfile: + derived_from: tosca.datatypes.Root + properties: + min_number_of_instances: + type: integer + required: true + max_number_of_instances: + type: integer + required: true + #localAffinityOrAntiAffinityRule: # not defined in SOL001 v.6.0 + # type: tosca.datatype.nfv.LocalAffinityOrAntiAffinityRule + # required: true + #affinityOrAntiAffinityGroupId: # not defined in SOL001 v.6.0 + # type: string + # required: true + watchdog: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: string + required: true + vmBootUpTimeOut: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: integer + required: false + + + tosca.datatypes.nfv.VlProfile: + derived_from: tosca.datatypes.Root + properties: + max_bit_rate_requirements: + type: tosca.datatypes.nfv.LinkBitRateRequirements + required: true + min_bit_rate_requirements: + type: tosca.datatypes.nfv.LinkBitRateRequirements + required: true + qos: + type: tosca.datatypes.nfv.Qos + required: false + initiationParameters: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: map + entry_schema: + type: string + required: false + cidr: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: string + required: false + networkName: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: string + required: false + startIp: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: string + required: false + endIp: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: string + required: false + gatewayIp: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: string + required: false + segmentationId: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: integer + required: false + physicalNetwork: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: string + required: false + networkType: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: string + required: false + constraints: + - valid_values: [VLAN, VXLAN] + dhcpEnabled: # not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: boolean + required: false + vlanTransparent: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: boolean + required: false + + tosca.datatypes.nfv.InstantiationLevel: + derived_from: tosca.datatypes.Root + properties: + description: + type: string + required: true + vdu_levels: + type: map # key: vduId + required: true + entry_schema: + type: tosca.datatypes.nfv.VduLevel + scale_info: + type: map # key: aspectId + required: false + entry_schema: + type: tosca.datatypes.nfv.ScaleInfo + + tosca.datatypes.nfv.VduLevel: + derived_from: tosca.datatypes.Root + properties: + number_of_instances: + type: integer + required: true + + tosca.datatypes.nfv.VnfLcmOperationsConfiguration: + derived_from: tosca.datatypes.Root + properties: + instantiate: + type: tosca.datatypes.nfv.VnfInstantiateOperationConfiguration + scale: + type: tosca.datatypes.nfv.VnfScaleOperationConfiguration + scale_to_level: + type: tosca.datatypes.nfv.VnfScaleToLevelOperationConfiguration + heal: + type: tosca.datatypes.nfv.VnfHealOperationConfiguration + terminate: + type: tosca.datatypes.nfv.VnfTerminateOperationConfiguration + operate: + type: tosca.datatypes.nfv.VnfOperateOperationConfiguration + + tosca.datatypes.nfv.VnfInstantiateOperationConfiguration: + derived_from: tosca.datatypes.Root + #properties: + #parameters: + #modeled as part of operation parameter list + + tosca.datatypes.nfv.VnfScaleOperationConfiguration: + derived_from: tosca.datatypes.Root + properties: + #parameters: + #modeled as part of the operation parameter list + scaling_by_more_than_one_step_supported: + type: boolean + + tosca.datatypes.nfv.VnfScaleToLevelOperationConfiguration: + derived_from: tosca.datatypes.Root + properties: + #parameters: + #modeled as part of the operation parameter list + arbitrary_target_levels_supported: + type: boolean + + tosca.datatypes.nfv.VnfHealOperationConfiguration: + derived_from: tosca.datatypes.Root + properties: + #parameters: + #modeled as part of the operation parameter list + causes: + type: list + entry_schema: + type: string + + tosca.datatypes.nfv.VnfTerminateOperationConfiguration: + derived_from: tosca.datatypes.Root + properties: + min_graceful_termination_timeout: + type: integer + max_recommended_graceful_termination_timeout: + type: integer + + tosca.datatypes.nfv.VnfOperateOperationConfiguration: + derived_from: tosca.datatypes.Root + properties: + min_graceful_termination_timeout: + type: integer + max_recommended_graceful_termination_timeout: + type: integer + + tosca.datatypes.nfv.ScaleInfo: + derived_from: tosca.datatypes.Root + properties: + scaleLevel: + type: integer + required: true + + tosca.datatypes.nfv.ScaleAspect: + derived_from: tosca.datatypes.Root + properties: + name: + type: string + required: true + description: + type: string + required: true + associated_group: + type: string #Identifier + required: false + max_scale_level: + type: integer #PositiveInteger + required: true + + tosca.datatypes.nfv.LinkBitRateRequirements: + derived_from: tosca.datatypes.Root + properties: + root: + type: integer + required: true + leaf: + type: integer + required: true + + tosca.datatypes.nfv.Qos: + derived_from: tosca.datatypes.Root + properties: + latency: + type: integer #Number [ms] + required: true + packet_delay_variation: + type: integer #Number [ms] + required: true + packet_loss_ratio: + type: float + constraints: + - in_range: [ 0.0, 1.0 ] + required: false + + tosca.datatypes.nfv.CpProtocolData: + derived_from: tosca.datatypes.Root + properties: + asscociated_layer_protocol: + type: string + constraints: + - valid_values: [ethernet, mpls, odu2, ipv4, ipv6, pseudo-wire ] + required: true + address_data: + type: tosca.datatypes.nfv.AddressData + required: false + + tosca.datatypes.nfv.VnfConfigurableProperties: + derived_from: tosca.datatypes.Root + properties: + is_autoscale_enabled: + type: boolean + required: false + is_autoheal_enabled: + type: boolean + required: false + additional_configurable_properties: + type: tosca.datatypes.nfv.VnfAdditionalConfigurableProperties + required: false + + tosca.datatypes.nfv.VnfAdditionalConfigurableProperties: + derived_from: tosca.datatypes.Root + + tosca.datatypes.nfv.VnfInfoModifiableAttributes: + derived_from: tosca.datatypes.Root + properties: + extensions: + type: tosca.datatypes.nfv.VnfInfoModifiableAttributesExtensions + required: false + metadata: + type: tosca.datatypes.nfv.VnfInfoModifiableAttributesMetadata + required: false + + tosca.datatypes.nfv.VnfInfoModifiableAttributesExtensions: + derived_from: tosca.datatypes.Root + + tosca.datatypes.nfv.VnfInfoModifiableAttributesMetadata: + derived_from: tosca.datatypes.Root + + tosca.datatypes.nfv.LogicalNodeData: + derived_from: tosca.datatypes.Root + properties: + #TODO HPA + logical_node_requirements: + type: map # not defined in SOL001 v.6.0 + entry_schema: + type: string + required: false + +#Interface Types +#Based on R2 Design-time Resource DM clean version v10 +interface_types: + tosca.interfaces.nfv.vnf.lifecycle.Nfv: + derived_from: tosca.interfaces.Root + instantiate: + description: Invoked upon receipt of an Instantiate VNF request + instantiate_start: + description: Invoked before instantiate + instantiate_end: + description: Invoked after instantiate + terminate: + description: Invoked upon receipt Terminate VNF request + terminate_start: + description: Invoked before terminate + terminate_end: + description: Invoked after terminate + modify_information: + description: Invoked upon receipt of a Modify VNF Information request + modify_information_start: + description: Invoked before modify_information + modify_information_end: + description: Invoked after modify_information + change_flavour: + description: Invoked upon receipt of a Change VNF Flavour request + change_flavour_start: + description: Invoked before change_flavour + change_flavour_end: + description: Invoked after change_flavour + change_external_connectivity: + description: Invoked upon receipt of a Change External VNF Connectivity request + change_external_connectivity_start: + description: Invoked before change_external_connectivity + change_external_connectivity_end: + description: Invoked after change_external_connectivity + operate: + description: Invoked upon receipt of an Operate VNF request + operate_start: + description: Invoked before operate + operate_end: + description: Invoked after operate + heal: + description: Invoked upon receipt of a Heal VNF request + heal_start: + description: Invoked before heal + heal_end: + description: Invoked after heal + scale: + description: Invoked upon receipt of a Scale VNF request + scale_start: + description: Invoked before scale + scale_end: + description: Invoked after scale + scale_to_level: + description: Invoked upon receipt of a Scale VNF to Level request + scale_to_level_start: + description: Invoked before scale_to_level + scale_to_level_end: + description: Invoked after scale_to_level + # indicator_changed: + # description: On receiving a VNF indicator value change notification + +#Node Types +#Based on R2 Design-time Resource DM clean version v36 +node_types: + tosca.nodes.nfv.Vdu.Compute: + derived_from: tosca.nodes.Root + properties: + name: + type: string + required: true + description: + type: string + required: true + boot_order: + type: list # explicit index (boot index) not necessary, contrary to IFA011 + entry_schema: + type: string + required: false + nfvi_constraints: + type: list + entry_schema: + type: string + required: false + configurable_properties: + type: map + entry_schema: + type: tosca.datatypes.nfv.VnfcConfigurableProperties + required: true + vdu_profile: + type: tosca.datatypes.nfv.VduProfile + required: true + inject_files: #Aligned with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v0.6.0 + #type: list + #entry_schema: + #TODO workaround of SDC bug + type: tosca.datatypes.nfv.injectFile + required: false + meta_data: #metadata attached to the VM or container + type: map + entry_schema: + type: string + required: false + user_data: #cloudinit userdata script support + type: string + required: false + #attributes: NOT DEFINED IN ONAP IM and SOL001 + #private_address: + # status: deprecated + #public_address: + # status: deprecated + #networks: + # status: deprecated + #ports: + # status: deprecated + capabilities: + virtual_compute: + type: tosca.capabilities.nfv.VirtualCompute + virtual_binding: + type: tosca.capabilities.nfv.VirtualBindable + occurrences: [1, UNBOUNDED] + monitoring_parameter: + type: tosca.capabilities.nfv.Metric + occurrences: [0, UNBOUNDED] + requirements: + - virtual_storage: + capability: tosca.capabilities.nfv.VirtualStorage + relationship: tosca.relationships.nfv.Vdu.AttachedTo + node: tosca.nodes.nfv.Vdu.VirtualStorage + occurrences: [ 0, UNBOUNDED ] + #artifacts: + # - sw_image: + # file: + # type: tosca.artifacts.nfv.SwImage + + tosca.nodes.nfv.Vdu.VirtualStorage: + derived_from: tosca.nodes.Root + properties: + #id: + # node name + type_of_storage: + type: string + constraints: + - valid_values: [volume, object, root, block] + required: true + size_of_storage: + type: scalar-unit.size + required: true + #TODO HPA + vdu_storage_requirements: + type: map + entry_schema: + type: string + required: false + rdma_enabled: + type: boolean + required: false + capabilities: + virtual_storage: + type: tosca.capabilities.nfv.VirtualStorage + #artifacts: + # - sw_image: + # file: + # type: tosca.artifacts.Deployment.Image + + tosca.nodes.nfv.Cp: + derived_from: tosca.nodes.Root + properties: + layer_protocol: + type: list + entry_schema: + constraints: + - valid_values: [ethernet, mpls, odu2, ipv4, ipv6, pseudo_wire ] + type: string + required: true + role: #Name in ETSI NFV IFA011 v0.7.3 cpRole + type: string + constraints: + - valid_values: [ root, leaf ] + required: false + description: + type: string + required: false + protocol_data: + type: list + entry_schema: + type: tosca.datatypes.nfv.CpProtocolData + required: true + trunk_mode: + type: boolean + required: true + allowedAddressData: # Aligned with ONAP R2 Im.not defined in IFA011 v2.4.1 and SOL001 v0.6.0 + type: tosca.datatypes.nfv.AddressData + required: false + + tosca.nodes.nfv.VduCp: + derived_from: tosca.nodes.nfv.Cp + properties: + bitrate_requirement: + type: integer + required: false + vnic_name: # Aligned with ONAP R2 Im.not defined in IFA011 v2.4.1 and SOL001 v0.6.0 + type: string + required: false + vnic_order: # Aligned with ONAP R2 Im. not defined in IFA011 v2.4.1 and SOL001 v0.6.0 + type: integer + required: false + vnic_type: # Aligned with ONAP R2 Im. not defined in IFA011 v2.4.1 and SOL001 v0.6.0 + type: string + constraints: + - valid_values: [normal, macvtap, direct, baremetal, direct-physical, virtio-forwarder] + required: false + virtual_network_interface_requirements: + type: list + entry_schema: + type: tosca.datatypes.nfv.VirtualNetworkInterfaceRequirements + required: false + #order: + # type: integer + # required: false + # constraints: + # - greater_or_equal: 0 + requirements: + - virtual_link: + capability: tosca.capabilities.nfv.VirtualLinkable + relationship: tosca.relationships.nfv.VirtualLinksTo + node: tosca.nodes.nfv.VnfVirtualLink + - virtual_binding: + capability: tosca.capabilities.nfv.VirtualBindable + relationship: tosca.relationships.nfv.VirtualBindsTo + node: tosca.nodes.nfv.Vdu.Compute + + tosca.nodes.nfv.VnfVirtualLink: + derived_from: tosca.nodes.Root + properties: + connectivity_type: + type: tosca.datatypes.nfv.ConnectivityType + required: true + description: + type: string + required: false + test_access: + type: list + entry_schema: + type: string + required: false + vl_profile: + type: tosca.datatypes.nfv.VlProfile + required: true + capabilities: + monitoring_parameter: + type: tosca.capabilities.nfv.Metric + occurrences: [0, UNBOUNDED] + virtual_linkable: + type: tosca.capabilities.nfv.VirtualLinkable + + tosca.nodes.nfv.VNF: + derived_from: tosca.nodes.Root + properties: + descriptor_id: # instead of vnfd_id + type: string # GUID + required: true + descriptor_version: # instead of vnfd_version + type: string + required: true + provider: # instead of vnf_provider + type: string + required: true + product_name: # instead of vnf_product_name + type: string + required: true + software_version: # instead of vnf_software_version + type: string + required: true + product_info_name: # instead of vnf_product_info_name + type: string + required: false + product_info_description: # instead of vnf_product_info_description + type: string + required: false + vnfm_info: + type: list + entry_schema: + type: string + required: true + localization_languages: + type: list + entry_schema: + type: string + required: false + default_localization_language: + type: string + required: false + configurable_properties: + type: tosca.datatypes.nfv.VnfConfigurableProperties + required: false + modifiable_attributes: + type: tosca.datatypes.nfv.VnfInfoModifiableAttributes + required: false # true in IFA011, but all of members are false + flavour_id: + type: string + required: true + flavour_description: + type: string + required: true + #capabilities: + # monitoring_parameter: + # modelled as ad hoc capabilities in the VNF node template + requirements: + - virtual_link: + capability: tosca.capabilities.nfv.VirtualLinkable + relationship: tosca.relationships.nfv.VirtualLinksTo + node: tosca.nodes.nfv.VnfVirtualLink + occurrences: [ 0, UNBOUNDED ] + interfaces: + Nfv: + type: tosca.interfaces.nfv.vnf.lifecycle.Nfv + +#Relationship Types +#Based on R2 Design-time Resource DM clean version v4 +relationship_types: + tosca.relationships.nfv.VirtualBindsTo: + derived_from: tosca.relationships.DependsOn + valid_target_types: [ tosca.capabilities.nfv.VirtualBindable] + + tosca.relationships.nfv.VirtualLinksTo: + derived_from: tosca.relationships.DependsOn + valid_target_types: [ tosca.capabilities.nfv.VirtualLinkable] + + tosca.relationships.nfv.Vdu.AttachedTo: + derived_from: tosca.relationships.DependsOn + valid_target_types: [ tosca.capabilities.nfv.VirtualStorage] |