ONAP DT DM by example..
Work in progress..
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
################################## ### 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: # .... onap.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: toscaonap.interfaces.node.lifecycle.Standard requirements: - container: capability: tosca.capabilities.Container occurrences: [1, UNBOUNDED] onap.nodes.VNF: derived_from: onap.nodes.Resource description: an abstract base for the hierarchy of concrete VNF resources properties: # ECOMP's # ONAP AndyIM's interfaces: Standard: # just a reminder that type: tosca.interfaces.node.lifecycle.StandardVNF onap.nodes.VDU: derived_from: onap.nodes.Resourcerequirements: description: a virtualization container capabilities: container:- compute: type: toscaonap.capabilities.ContainerCompute occurrences: [0, UNBOUNDED] requirements: - computestorage: type: onap.capabilities.ComputeStorage - storageoccurrences: [0, UNBOUNDED] #TODO: check on the HPA use case type: onap.capabilities.Storage |
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
################################## ### VendorSample VNF ### ################################## node_types: com.vendorxxx.VNF_ABCSampleVNF: 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: the_important_capability: requirements: - compute: node_filter: capabilities: - onap.capabilities.Compute: properties: num_cpus: {in_range: [2, 4]} mem_size: {greater_or_equal: 1GB} - storage: #... policies: scale_the_value: type: onap.policies.scaling.Fixed: properties: quantity: {get_input: num_resource_instances} targets: [internal_valuable_resource_1, vdu_1] separate_hosts: type: onap.policies.placement.AntiAffinity targets: [vduinternal_valuable_resource_1] properties: distance: PhysicalHost same_office: type: onap.policies.placement.Affinity targets: [vduinternal_valuable_resource_1] properties: scope: DataCenter substitution_mappings: node_type: com.vendorxxx.VNF_ABCSampleVNF properties: num_of_instances_inside: mapping: [SELF, num_resource_instances] capabilities: the_important_capability: mapping: [internal_valuable_resource_1, valuable_capability] requirements: compute_1: mapping: [vduinternal_valuable_resource_1, compute] storage_1: mapping: [vduinternal_valuable_resource_1, storage] |
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
###################################### ### A Sample Service using the VendorSample VNF ### ###################################### topology_template: node_templates: vnf_1: type: com.vendorxxx.VNF_ABCSampleVNF properties: num_of_instances_inside: 13 requirements: # infrastructure requirements, to be sutisfied by the orchestrator - compute: node_filter: capabilities: - onap.capabilities.Compute: properties: num_cpus: {in_range: [2, 4]} mem_size: {greater_or_equal: 1GB} |
...