...
Requirement | Description | JIRA |
---|---|---|
R1 | In the TOSCA.meta, reuse the same metadata structure defined by TOSCA and ETSI
| |
R2 | In the TOSCA.meta, reuse the same ETSI defined Entry Keywords
| |
R3 | In the main manifest file, reuse the metadata structure defined by ETSI with new keywords (the following proposal is under discussion)
| |
R4 | In the main manifest file, reuse the artifact security as defined by ETSI
For Jakarta PoC, ONAP shall support the security option #2. So, the App provider delivers one zip file consisting of the CSAR file, a signature file and a certificate file that includes the App provider public key. -- AppPackage.zip –- AppPackage.csar –- AppPackage.csar signature –- Signing certificate | |
R5 | In the main manifest file non_mano_artifact_sets, reuse the same structure with the existing keywords defined by ONAP
|
...
ETSI-Entry-Manifest: app_main_descripter.mf
- Definitions
- ASD_1_0asd_types.yaml // TASK #<6>: define ASD data models for node_types, artifact_types, data_types...
// note: it will be finalized after the ASD data model
- main_app_template.yaml. // descriptor leveraging ASD
e.g., Sample main_app_template.App
...
Code Block |
---|
tosca_definitions_version: tosca_simple_yaml_1_3
data_types:
ExtCpdData:
version: 1.0
description: "Describes the datatype for exposed service"
properties:
id:
description: "A symbolic name for this exposed service (extCpd)"
required: true
type: string
virtualLinkRequirement:
description: >
Refers in an abstract way to the network or multiple networks that
the ExtCpd shall be exposed on (ex: OAM, EndUser, backhaul, LI, etc)
required: false
type: string
interfaceOrder:
description: >
Mandatory attribute for a secondary network interface.
Defines the order (0-N) in which an the additional/secondary
network interface declaration appears in the pod manifest
required: false
networkInterfaceRequirements:
description: >
Details container implementation specific requirements on
the NetworkAttachmentDefinition
required: false
type: ExtCpdData.NetworkInterfaceRequirementsIE
switchPlane:
description: >
Used to indicate resource pool (left or right) to allocate
connection resources for sepcific secondary interfaces
required: false
type: string
constraints:
- valid_values: [left, right]
inputParamMappings:
description: >
Information on what helm chart input parameters that
are required to be configured for this extCpd
required: false
type: ExtCpdData.ParamMappings
resourceMapping:
description: >
Kubernetes API resource name for the resource manifest for the service
required: false
type: ExtCpdData.ParamMappings
artifact_types:
AsdDeploymentItem:
version: 1.0
description: "The default type of the ASD artifacts"
properties:
artifactType:
type: string
constraints:
- valid_values: ["helm_chart", "helmfile", "crd", "terraform" ]
itemId:
type: integer
deploymentOrder:
type: integer
lifecycleParameters:
type: list
entry_schema: string
node_types:
ApplicationServiceDescriptor:
description: "The ASD node type"
properties:
id:
type: string
provider:
type: string
applicationName:
type: string
applicationVersion:
type: string
extCpds:
type: list
entry_schema: ExtCpdData
enhancedClusterCapabilities:
type: list
entry_schema: string
requirements:
- virtual_link_1:
capability: tosca.capabilities.nfv.VirtualLinkable
relationship: tosca.relationships.nfv.VirtualLinksTo
occurrences: [ 0, 1 ]
- virtual_link_2:
capability: tosca.capabilities.nfv.VirtualLinkable
relationship: tosca.relationships.nfv.VirtualLinksTo
occurrences: [ 0, 1 ]
- ...
- virtual_link_8:
capability: tosca.capabilities.nfv.VirtualLinkable
relationship: tosca.relationships.nfv.VirtualLinksTo
occurrences: [ 0, 1 ]
|
- main_app_template.yaml. // descriptor leveraging ASD
e.g., Sample main_app_template.yaml
Code Block |
---|
tosca_definitions_version: tosca_simple_yaml_1_3
imports:
- asd_types.yaml
- nsd_types.yaml
topology_template:
substitution_mappings:
node_type: tosca.nodes.nfv.ASD_in_NS
substitution_filter:
properties:
- descriptor_id: { equal: 'b1bb0ce7-2222-4fa7-95ed-4840d70a1179' }
requirements:
virtual_link_1: [ applicationServiceDescriptor, virtual_link_1 ]
virtual_link_2: [ applicationServiceDescriptor, virtual_link_2 ]
...
virtual_link_8: [ applicationServiceDescriptor, virtual_link_8 ]
node_templates:
applicationServiceDescriptor:
type: ApplicationServiceDescriptor
version: 1.0
description: "Sample Application to Illustrate ASD Usage"
properties:
id: fdsa-xdsfg-sdfsd-wqeuy
provider: MyCompany
applicationName: SampleApp
applicationVersion: “2.3”
applicationInfoName: “Sample Application”
extCpds:
- id: webpage-service
virtualLinkRequirement: endUser
- id: transactionAPI
virtualLinkRequirement: backhaul
interfaceOrder: 0
switchPlane: left
enhancedClusterCapabilities: [ o-ran.o-cloud.hw.gpgpu ]
artifacts: #these are the deployment items:
sampleapp-db:
type: AsdDeploymentItem
file: "sampleapp-db-operator-helm.tgz" # this can be also a uri
properties:
artifactType: "helm_chart"
itemId: 1
deploymentOrder: 1
lifecycleParameters:
- ".Values.db.fullBackupInterval"
- ".Values.db.walConsolidationInterval"
sampleapp-services:
type: AsdDeploymentItem
file: "sampleapp-services-helm.tgz" # this can be also a uri
properties:
artifactType: "helm_chart"
itemId: 2
deploymentOrder: 2
lifecycleParameters:
- ".Values.app.initialWebReplicas" |
- Artifacts (optional; Images, Licenses and Artifacts directories can be located under the root directory)
- Images
- <image> // or image reference
- <image> // or image reference
- Licenses
- LICENSE.txt
Deployment
- HELM //TASK #<7>: use the "HELM" directory to contain Helm Charts
- <Helm Chart A file> // Helm Charts can include values.schema.json along with values.yaml
- <Helm Chart B file> // It is for imposing a structure on the values.yaml file
- HELM //TASK #<7>: use the "HELM" directory to contain Helm Charts
- Images
...