/
Design-Time Data Model: 01. Quick Start

Design-Time Data Model: 01. Quick Start

ONAP DT DM by example..

Work in progress..



ONAP Data Model Normatives
################################## ### ONAP Data Model Normatives ### ################################## data_types: interface_types: onap.interfaces.node.lifecycle.Standard: derived_from: tosca.interfaces.node.lifecycle.Standard description: the ONAP resource lifecycle interface, in case it extends the standard TOSCA's # here come the extensions onap.interfaces.node.lifecycle.VNF: # VNFs may need an extended lifecycle interface onap.interfaces.node.lifecycle.Service: # Services may need an extended lifecycle interface capability_types: onap.capabilities.Compute: # a derivation of a TOSCA normative capability type onap.capabilities.Storage: # a derivation of a TOSCA normative capability type policy_types: onap.policies.scaling.Fixed: # .... onap.policies.scaling.Variable: # .... onap.policies.placement.Affinity: # .... onap.policies.placement.AntiAffinity: # .... onap.policies.naming.NumSequence: # .... node_types: #TODO: provide a description of the metadata for the node templates onap.nodes.Resource: description: | a base of the ONAP hierarchy of resources derived_from: tosca.nodes.Root requirements: - host: description: | An ONAP resource may be hosted by a TOSCA container. In a VDU, this requirement is of the onap.capabilities.Compute type capability: tosca.capabilities.Container occurrences: [0, 1] relationship: onap.relationship.HostedOn onap.nodes.Function: derived_from: onap.nodes.Resource description: | a virtual function (VNF, VDU, VFC) properties: # all IM properties # all ECOMP VNF properties requirements: # 1. MANY requirements of type onap.capabilities.Compute (a summary of # the Compute requirements of all inner Container and VDU nodes # exposed through the substitution mapping) # 2. MANY requirements of type onap.capabilities.Linkable (a summary of # the Linkable requirements of all ExtCPs inside the topology # exposed through the substitution mapping) # 3. MANY OTHER application-level reqs&caps onap.nodes.VDU: derived_from: onap.nodes.Resource description: | represents a virtualization container at the infrastructure level; contains the software image, declares [required] hardware capabilities capabilities: host: type: tosca.capabilities.Container occurrences: [0, UNBOUNDED] compute: type: onap.capabilities.Compute occurrences: [0, UNBOUNDED] storage: type: onap.capabilities.Storage occurrences: [0, UNBOUNDED]
Sample VNF
################################## ### Sample VNF ### ################################## node_types: com.vendorxxx.SampleVNF: derived_from: onap.nodes.VNF description: a concrete VNF provided by a vendor properties: num_of_instances_inside: type: integer requirements: - compute_1: type: onap.capabilities.Compute - storage_1: type: onap.capabilities.Storage capabilities: the_important_capability: #... topology_template: inputs: num_resource_instances: description: how many resource instances to create type: integer node_templates: vl_1: cp_1: internal_valuable_resource_1: type: com.vendorxxx.ResourceType artifacts: image: ResourceDockerFile capabilities: valuable_capability: #.... requirements: container: node: vdu_1 capability: container vdu_1: type: onap.nodes.VDU artifacts: image: myImageFile.ovf capabilities: container: compute: num_cpus: 2 mem_size: 1GB policies: scale_the_value: type: onap.policies.scaling.Fixed: properties: quantity: {get_input: num_resource_instances} targets: [internal_valuable_resource_1] separate_hosts: type: onap.policies.placement.AntiAffinity targets: [internal_valuable_resource_1] properties: distance: PhysicalHost same_office: type: onap.policies.placement.Affinity targets: [internal_valuable_resource_1] properties: scope: DataCenter substitution_mappings: node_type: com.vendorxxx.SampleVNF properties: num_of_instances_inside: mapping: [SELF, num_resource_instances] # a mapping to an input capabilities: the_important_capability: mapping: [internal_valuable_resource_1, valuable_capability] compute_1: mapping: [vdu_1, compute] storage_1: mapping: [vdu_1, storage]
Service using the Vendor VNF
###################################### ### A Sample Service using the Sample VNF ### ###################################### topology_template: node_templates: vnf_1: type: com.vendorxxx.SampleVNF properties: num_of_instances_inside: 13 capabilities: # infrastructure requirements, to be satisfied by the orchestrator - compute_1: capabilities: onap.capabilities.Compute - storage_1: capabilities: onap.capabilities.Storage



Points to emphasize:

  1. Scaling expressed through policies

  2. Affinity/anti-affinity expressed through policies

  3. VDU node type to model a virtual container (VM, Docker container):

    1. States quantified requirements for infrastructure: 

      1. Generic requirements: computational power, storage volumes, 

      2. Requirements for specific hardware: Intel’s, AMD, etc.

    2. Includes a software image used to initialize the container - as a TOSCA artifact

    3. In order to specify hardware/infrastructure requirements for a resource, the designer creates a VDU node in the topology template and then creates a relationship between the resource node and the VDU node using the tosca.capabilities.Container capability-requirement pair; multiple resources may share a VDU

    4. The requirements for hardware/infrastructure specified by the VDU nodes across the model will be satisfied on instantiation by the orchestrator.

  4. The VNFD element of the Information Model is modelled through a combination of the following TOSCA constructs:

    1. A TOSCA node type – the “interface” part of the definition: derived from the onap.nodes.VNF node type (and, consequently, from the basic onap.nodes.Resource); exposes the important properties, capabilities, requirements

    2. A TOSCA topology template – the “implementation” part of the definition: the internal topology of component resources and policies

    3. A TOSCA substitution mapping construct that wires the interface to the implementation: interface properties are mapped to the implementation topology inputs, interface capabilities and requirements – to those of the component resource nodes

  5. An occurrence of the VNF in a higher-level topology (a service or a “higher” VNF) is modelled as a TOSCA node template of the VNFD “interface” node type, with its properties populated and requirements and capabilities involved into relationships with the neighbor nodes.



See also: ECOMP SDC Metadata OverviewAffinity and AntiAffinitySplitting VDU: VFC + ContainerScaling



Related content

Principle and Guideline for Data Model (Draft)
Principle and Guideline for Data Model (Draft)
More like this
Splitting VDU: VFC + Container
Splitting VDU: VFC + Container
More like this
DRAFT ONAP Virtual Network Function Descriptor (VNFD) based on TOSCA Simple YAML Profile Specification
DRAFT ONAP Virtual Network Function Descriptor (VNFD) based on TOSCA Simple YAML Profile Specification
More like this
ONAP Architecture Principles
ONAP Architecture Principles
More like this
ONAP Architecture Principles (New)
ONAP Architecture Principles (New)
More like this
OOM with TOSCA and Cloudify
OOM with TOSCA and Cloudify
More like this