Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

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

...

  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




Anchor
onap.nodes.Container
onap.nodes.Container

Code Block
titleONAP Data Model Normatives
linenumberstrue
collapsetrue
node_types:
  # the very base of the hierarchy of VDU types
  onap.nodes.VDUCompute:
    derived_from: onap.nodes.Resource
    artifacts:
      vducontainer_image:
        type: tosca.artifacts.Deployment
        description: an image used to launch the VDUContainer
    interfaces:
      Standard:
        start: 
          implementation: vducontainer_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 It is possible to model nested hosting, for example a docker container running on a specific VM.



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

Code Block
titleSample VDU sub-type - more details
linenumberstrue
collapsetrue
  # a more concrete VDU type
  onap.nodes.sample.MyVDUMyCompute:
    derived_from: onap.nodes.VDUCompute
    artifacts:
      vducontainer_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 Container node in a VNF topology:

Code Block
titleVDU Container node
linenumberstrue
collapsetrue
node_templates:
  vducontainer_123:
    type: onap.nodes.sample.MyVDUMyContainer
    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 VDUsContainers:

Code Block
titleVFCs meet VDUs
linenumberstrue
collapsetrue
node_templates:
  vducompute_123:
    type: onap.nodes.VDUCompute
    capabilities:
      host:
        #....
  
  vfc_1:
    type: onap.nodes.Resource
    requirements:
      - host:
          node: vducompute_123
          capability: host
          
  vfc_2:
    type: onap.nodes.Resource
    requirements:
      - host:
          node: vducompute_123
          capability: host




See also: Hardware Platform Requirements

...