Note: work in progress
Table of Contents
Concepts
- K8S CISM Cluster: Container Infrastructure Service Manager Cluster performs the same function as VIM Zone but operates on containerized application level.
- CNF: Cloud Native Network Function. Containerized VNF is designed to be deployed in the cloud as a container. CNF is a better fit for microservice architecture due to the deployment size.
- Kubernetes: Kubernetes (K8s) is an open-source system for automating deployment, scaling and management of containerized applications
- POD: A Pod is a group of one or more containers (such as Docker containers), with shared storage/network, and a specification for how to run the containers.
App Onboarding Package Requirement
Jira server ONAP Jira serverId 425b2b0a-557c-3c0c-b515-579789cceedb key REQ-1043
Requirement | Description | Comments | |||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
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 Note: the following proposal is under discussion
| it is optional for ASD
| R3 | In the main manifest file, reuse the metadata structure defined by ETSI with new keywords Note: the following proposal is under discussion
Note: there could be additional optional keywords. | |||||||||||||||||||||||||
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
|
...
Note: the package structure is in progress
Application Package Onboarding and Distribution to ONAP
The following diagram depicts Application Package onboarding and distribution to ONAP and repositories.
Gliffy Diagram | ||||||||
---|---|---|---|---|---|---|---|---|
|
SDC Package Onboarding Process
...
- SDC shall support Application Package onboarding and distribution, where the onboarding package conforms to 1) ETSI SOL004, 2) Application onboarding package requirements, and 3) its embedded model conforms to ASDASD.
- Note: ASD-based vFW could be a candidate, but we are looking for additional NF use cases.
Epic | Description | JIRA | Priority | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
SDC Shall Support Application Package onboarding and distribution |
|
| 1 | ||||||||
SDC User Story
User Story | Description | JIRA Ticket | Priority | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
US 1 | SDC supports the App Onboarding Package, which is compliant to the ETSI NFV SOL004 CSAR structure with the TOSCA-Metadata directory
|
| 1 | ||||||||
US 2 | SDC creates an SDC VSP package thru onboarding of an Application Service CSAR based on ASD
|
| 1 | ||||||||
US 3 | SDC creates AS internal CSAR (VF resource) by importing VSP CSAR to add CNF/Application based on ASD
|
| 1 | ||||||||
US 4 | Create an Service CSAR consists of one or more CNF/Application based on ASD
|
| 1 | ||||||||
US 5 | SDC distributes Service CSAR to ONAP runtime components thru DMaaP
| No impact | 1 | ||||||||
US 6 | For the App Package notification, ONAP Runtime Catalog Manager queries from SDC and stores associated Helm Charts and Images to the target Helm and Image Artifact Repositories
| 1 | |||||||||
US 7 | Enhance TOSCA parser for ASD |
| 1 |
SDC Onboarding and Distribution Sequence
...
- artifacts.yml
- capabilities.yml
- data.yml // TASK #<19>: SDC extends data.yml for ASD types
- groups.yml. // TASK #<20>: SDC extends the VF-Module for additional properties
- interfaces.yml
- nodes.yml // TASK #<21>: SDC extends nodes.yml for ASD-based CNF
- policies.yml
- relationships.yml
- resource-<...>-template.yml. TASK #<22>: SDC generates this based on the onboarding ASD model
- resource-<...>-template-interface.yml TASK #<23>: SDC generates this based on the onboarding ASD model
- Artifacts
- Deployment: TASK #<24>: SDC preserves the original onboarding App package and additional License files thru SDC UI
- ORAN_PACKAGE (original)
- <App>.csar // original vendor CSAR
- VENDOR_LICENSE
- VF_LICENSE
- HELM
- <HELM Chart A file>
- <HLEM Chart B file>
- IMAGE
- <image>
- <image>
- Informational
- OTHER
- VSP_<?>_Information.txt
- ORAN_PACKAGE (original)
- Deployment: TASK #<24>: SDC preserves the original onboarding App package and additional License files thru SDC UI
- csar.meta
- Files. (missing from SDC****; Its handling is under discussion)
Images<image><image>
- e.g.,
tosca_definitions_version: tosca_simple_yaml_1_3
metadata:
invariantUUID: 92e593ad-cc7d-4a97-8b64-83bc301e2e4f
UUID: 90c7b63b-001a-4398-abb9-951e1a842437
name: asd1
description: f
category: Generic
type: VF
subcategory: Application Service Descriptor // TASK #<25>: SDC extends the subcategory to have Application Service Descriptor; was Network Elements
resourceVendor: d
resourceVendorRelease: 2.6.1
reourceVendorModelNumber: ''
imports:
- nodes:
file: nodes.yml
- datatypes:
file: data.yml
- capabilities:
file: capabilities.yml
- relationships:
file: relationships.yml
- groups:
file: groups.yml
- policies:
file: policies.yml
- annotations:
file: annotations.yml
- resource-asd1-interface:
file: resource-Asd1-template-interface.yml
topology_template:
inputs:
skip_post_instantiation_configuration:
default: true
type: boolean
required: false
nf_naming:
default:
ecomp_generated_naming: true
type: org.openecomp.datatypes.Naming
required: false
multi_stage_design:
default: false
type: boolean
required: false
nf_naming_code:
type: string
required: false
nf_function:
type: string
required: false
controller_actor:
default: SO-REF-DATA
type: string
required: false
availability_zone_max_count:
default: 1
type: integer
required: false
sdnc_artifact_name:
type: string
required: false
max_instances:
type: integer
required: false
nf_type:
type: string
required: false
sdnc_model_version:
type: string
required: false
nf_role:
type: string
required: false
min_instances:
type: integer
required: false
sdnc_model_name:
type: string
required: false
node_templates:
asd_instance:
type: org.onap.asd.CNF
metadata:
invariantUUID: 3948bd3d-f4e2-41a9-b3b4-edc6c6db927e
UUID: 05329593-52f8-482d-a967-8dbb28bb117a
name: Asd1.CNF
description: Not reusable inner VFC
category: Generic
version: '1.0'
customizationUUID: 59c10655-f68e-47d3-bf7b-d8f5698f6f75
type:VFC. // ??
subcategory: Abstract
resourceVendor: d
resourceVendorRelease: 2.6.1
reourceVendorModelNumber: ''
properties:
oran_id: ASD Instanceoran_product_name: vFW
oran_provider_id: vendorA
oran_package_version: 1.0.0
group:
Asd..helmA..module-0:
type: org.openecomp.groups.VfModule
metadata:
vfModuleModelName: Asd..helmA..module-0
vfModuleModelInvariantUUID: 766017db-5c11-47f9-a3c4-1fed0dbae9cb
vfModuleModelUUID: 57a35aad-4290-4b55-a0b2-150aad6da058
vfModuleModelVersion: '0.0'
properties:
min_vf_module_instances: 1
vf_module_label: helmA
max_vf_module_instances: 1
vf_module_type: Base
isBase: true
initial_count: 1
volume_group: false
Asd..helmB..module-1:
type: org.openecomp.groups.VfModule
metadata:
vfModuleModelName: Asd..helmB..module-0
vfModuleModelInvariantUUID: 766017db-5c11-47f9-a3c4-1fed0dbae9cb
vfModuleModelUUID: 57a35aad-4290-4b55-a0b2-150aad6da058
vfModuleModelVersion: '0.0'
properties:
min_vf_module_instances: 0
vf_module_label: helmB
vf_module_type: Expansion
isBase: false
initial_count: 0
volume_group: false
substitution_mappings:
node_type: org.openecomp.resource.vf.Asd1
properties:
nf_naming:
- nf_naming
skip_post_instantiation_configuration:
- skip_post_instantiation_configuration
multi_stage_design:
- multi_stage_design
nf_function:
- nf_function
nf_naming_code:
- nf_naming_code
controller_actor:
- controller_actor
availability_zone_max_count:
- availability_zone_max_count
sdnc_artifact_name:
- sdnc_artifact_name
max_instances:
- max_instances
nf_type:
- nf_type
sdnc_model_version:
- sdnc_model_version
nf_role:
- nf_role
min_instances:
- min_instances
sdnc_model_name:
- sdnc_model_name
...
- TOSCA-Metadata
- TOSCA.meta TASK #<26>: SDC generates TOSCA-Metadata directory and TOSCA.meta
- Definitions: TASK #<27>: for the Multi Model way, SDC does not use ONAP internal model. Note: impact to the existing ONAP components are under discussion.
-
artifacts.ymlcapabilities.ymldata.ymlgroups.ymlinterfaces.ymlnodes.ymlpolicies.ymlrelationships.yml- asd_types.yaml. // instead of using ONAP type definitions, support the ASD model specific definitions are included
- resource-<...>-template.yml. // TASK #<28>: SDC UI modifies onboarding ASD for changing the default values
- resource-<...>-template-interface.yml. // TASK #<29>: SDC UI modifies onboarding ASD for changing the default values.
- Artifacts
- Deployment
- ORAN_PACKAGE
- AS_<...>DataTypes.csar
- HELM
- <HELM Chart file>
- <HLEM Chart file>
- IMAGE
- <image>
- <image>
- VENDOR_LICENSE
- vendor-license-model.xml
- ORAN_PACKAGE
- Deployment
...
- Node type for ASD and data type for the deployment items added to Definitions/nodes.yaml and Definitions/data.yaml respectively
- interface type (i.e. the substitution mapping type) created from org.openecomp.resource.abstract.nodes.VF, in standard ONAP way, with the standard ONAP properties
- Main template generated as follows:
- node template added for the ASD type generated from the definition in the onboarded csar
- vfModule group type added for each deployment item. see below for explanation of the properties and values used
extend thelifecycl parametersorg.openecomp.groups.VfModule
to hold the DeploymentItems properties, such as deployment_order andlifecycle parameters.//note: SO CNFM can read the DeploymentItems attributes including priorities for orchestration.- sub. mapping added in standard ONAP way
- Helm charts added to Artifacts/Deployment/HELM (similar to what is done today for onap zip cnf packages)
- Original onboarded ASD csar is included in the same way as we do for ETSI.
- Can we add anything specific to allow SO identify the package as ASD?; it could be done by SO deducing from the info already there (e.g. does it have a node template of the ASD type), but will be straightforward to add something explicitly if that is preferred, similar to what we have suggested in the TOSCA.meta
- We need a way for SDC to recognise the onboarded csar as an ASD, for etsi we reply on presence of ETSI-... metdata. We can add something similar for ASD
- we can use ASD-specific metadata the main manifest file
- we can use the TOSCA.metadata model type flag
...
file | types | Comments |
---|---|---|
data.yaml |
| |
| TBD | |
| TBD | |
nodes.yaml |
| |
resource-<asd>-template.yml |
|
e.g., deployment_order
|
...