You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 12 Next »

In 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.VDU:
    derived_from: onap.nodes.Resource
    artifacts:
      vdu_image:
        type: tosca.artifacts.Deployment
        description: an image used to launch the VDU
    interfaces:
      Standard:
        start: 
          implementation: vdu_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]

Please note that VDU is derived from Resource, and thus inherits a requirement for a host. This way we are able to model the situations when a container is hosted by another container, for example a docker container running on a specific VM.



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

Sample VDU sub-type - more details
  # a more concrete VDU type
  onap.nodes.sample.MyVDU:
    derived_from: onap.nodes.VDU
    artifacts:
      vdu_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 VDU node in a VNF topology:

VDU node
node_templates:
  vdu_123:
    type: onap.nodes.sample.MyVDU
    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 VDUs:

VFCs meet VDUs
node_templates:
  vdu_123:
    type: onap.nodes.VDU
    capabilities:
      host:
        #....
  
  vfc_1:
    type: onap.nodes.Resource
    requirements:
      - host:
          node: vdu_123
          capability: host
          
  vfc_2:
    type: onap.nodes.Resource
    requirements:
      - host:
          node: vdu_123
          capability: host




See also: Hardware Platform Requirements


  • No labels