Skip to end of metadata
Go to start of metadata
You are viewing an old version of this page. View the current version.
Compare with Current
View Page History
« Previous
Version 14
Next »
ONAP DT DM by example..
Work in progress..
##################################
### 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 tosca.capabilities.Compute
onap.capabilities.Storage:
# a derivation of tosca.capabilities.Storage
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:
derived_from: tosca.nodes.Root
description: the very base of the ONAP resource hierarchy
interfaces:
Standard: # just a reminder that all resources have a standard lifecycle interface
type: onap.interfaces.node.lifecycle.Standard
requirements:
- container:
capability: tosca.capabilities.Container
occurrences: [0, UNBOUNDED]
onap.nodes.VNF:
derived_from: onap.nodes.Resource
description: an abstract base for the hierarchy of concrete VNF resources
properties:
# ECOMP's
# ONAP IM's
interfaces:
Standard: # just a reminder that
type: tosca.interfaces.node.lifecycle.VNF
#TODO: check on the HPA use case
onap.nodes.VDU:
derived_from: onap.nodes.Resource
description: a virtualization container; contains the software image, states requirements for hardware
capabilities:
container:
type: tosca.capabilities.Container
occurrences: [0, UNBOUNDED]
requirements:
- compute:
type: onap.capabilities.Compute
occurrences: [0, UNBOUNDED]
- storage:
type: onap.capabilities.Storage
occurrences: [0, UNBOUNDED]
##################################
### 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:
requirements:
- compute:
node_filter:
capabilities:
- onap.capabilities.Compute:
properties:
num_cpus: {in_range: [2, 4]}
mem_size: {greater_or_equal: 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]
requirements:
compute_1:
mapping: [vdu_1, compute]
storage_1:
mapping: [vdu_1, storage]
######################################
### A Sample Service using the Sample VNF ###
######################################
topology_template:
node_templates:
vnf_1:
type: com.vendorxxx.SampleVNF
properties:
num_of_instances_inside: 13
requirements: # infrastructure requirements, to be satisfied by the orchestrator
- compute_1:
capabilities: onap.capabilities.Compute
- storage_1:
capabilities: onap.capabilities.Storage
Points to emphasize:
- Scaling expressed through policies
- Affinity/anti-affinity expressed through policies
- VDU node type to model a virtual container (VM, Docker container):
- States quantified requirements for infrastructure:
- Generic requirements: computational power, storage volumes,
- Requirements for specific hardware: Intel’s, AMD, etc.
- Includes a software image used to initialize the container - as a TOSCA artifact
- 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
- The requirements for hardware/infrastructure specified by the VDU nodes across the model will be satisfied on instantiation by the orchestrator.
- The VNFD element of the Information Model is modelled through a combination of the following TOSCA constructs:
- 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
- A TOSCA topology template – the “implementation” part of the definition: the internal topology of component resources and policies
- 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
- 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 Overview, Scaling