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 12 Next »

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 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
##################################
### 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]            

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
      requirements:  # infrastructure requirements, to be satisfied by the orchestrator
        - compute_1:
            capabilities: onap.capabilities.Compute
        - storage_1:
            capabilities: onap.capabilities.Storage


See also: Scaling


  • No labels