/
Splitting VDU: VFC + Container

Splitting VDU: VFC + Container

onap.nodes.ComputeIn the Info Model, the VDU element combines 2 aspects: application logic and expectations of the underlying infrastructure.

The Data Model implements the IM VDU element as a pair of related resources:

  1. VFC - an ONAP resource that represents a piece of application-level logic and includes:

    1. a requirement for hosting by a container

    2. a software image to launch the application logic on the container

    3. a free set of application-level requirements and capabilities

  2. Container - an ONAP resource that represents a unit of infrastructure allocation. It expresses the following ideas:

    1. a "hardware shopping list" - in the terms of TOSCA requirements, which are based on specially designed TOSCA capability types

    2. a software image that the Orchestrator uses to launch such a unit - by means of a TOSCA artifact 

    3. an ability to host application logic - modeled as a TOSCA capability of a special capability type







ONAP Data Model Normatives
node_types: # the very base of the hierarchy of VDU types onap.nodes.Compute: derived_from: onap.nodes.Resource artifacts: container_image: type: tosca.artifacts.Deployment description: an image used to launch the Container interfaces: Standard: start: implementation: container_image capabilities: host: type: tosca.capabilities.Container # the TOSCA Specs type is good enough occurrences: [0..UNBOUNDED] requirements: - cpu: capability: onap.capabilities.infrastructure.CPU: occurrences: [0..1] - memory: capability: onap.capabilities.infrastructure.Memory: occurrences: [0..UNBOUNDED] - storage: capability: onap.capabilities.infrastructure.Storage: occurrences: [0..UNBOUNDED] - io: capability: onap.capabilities.infrastructure.IO: occurrences: [0..UNBOUNDED] - nic: capability: onap.capabilities.infrastructure.NIC: occurrences: [0..UNBOUNDED]

It is possible to model nested hosting, for example a docker container running on a specific VM.




To create a reusable Container customization, create a sub-type:

Sample VDU sub-type - more details
# a more concrete VDU type onap.nodes.sample.MyCompute: derived_from: onap.nodes.Compute artifacts: container_image: type: tosca.artifacts.Deployment.Image.VM.ISO file: http://the.url.of/the.image.iso interfaces: Standard: start: implementation: image capabilities: host: type: onap.capabilities.Container requirements: - cpu: capability: onap.capabilities.infrastructure.CPU: occurrences: [0..UNBOUNDED] - memory: capability: onap.capabilities.infrastructure.Memory: occurrences: [0..UNBOUNDED] - storage: capability: onap.capabilities.infrastructure.Storage: occurrences: [0..UNBOUNDED] - io: capability: onap.capabilities.infrastructure.IO: occurrences: [0..UNBOUNDED] - nic: capability: onap.capabilities.infrastructure.NIC: occurrences: [0..UNBOUNDED]



A Container node in a VNF topology:

Container node
node_templates: container_123: type: onap.nodes.sample.MyContainer capabilities: host: # just saying... requirements: - memory: node_filter: capabilities: - onap.capabilities.infrastructure.Memory: properties: - mem_size: {greater_or_equal: 2MB} - cpu: node_filter: capabilities: - onap.capabilities.infrastructure.hpa.CPU: properties: - schema_selector: constraints: # fixed value for this vendor - equal_to: Intel64 - schema_version: constraints: - greater_or_equal: 2.0 - custom_features: constraints: - schema: http://json.schema.url



VFCs meet Containers:

VFCs meet VDUs






See also: Hardware Platform Requirements



Related content

Design-Time Data Model: 01. Quick Start
Design-Time Data Model: 01. Quick Start
More like this
VoLTE vCSCF
VoLTE vCSCF
More like this
TOSCA capbility types
TOSCA capbility types
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
OOM with TOSCA and Cloudify
OOM with TOSCA and Cloudify
More like this
Specifying HPA Capability Requirements using TOSCA-based VNF Descriptors
Specifying HPA Capability Requirements using TOSCA-based VNF Descriptors
More like this