This guide is geared to provide information regarding how to do service design to automate instantiation and day0 configuration.
Installation
ONAP is meant to be deployed within a Kubernetes environment. Hence, the de-facto way to deploy CDS is through Kubernetes.
ONAP also package Kubernetes manifest as Chart, using Helm.
Prerequisite
https://docs.onap.org/en/latest/guides/onap-developer/settingup/index.html
Setup local Helm
helm serve & helm repo add local http://127.0.0.1:8879
Get the chart
Make sure to checkout the release to use, by replacing $release-tag
in bellow command
git clone https://gerrit.onap.org/r/oom git checkout tags/$release-tag cd oom/kubernetes make cds
Install CDS
helm install --name cds cds
Result
$ kubectl get all --selector=release=cds NAME READY STATUS RESTARTS AGE pod/cds-blueprints-processor-54f758d69f-p98c2 0/1 Running 1 2m pod/cds-cds-6bd674dc77-4gtdf 1/1 Running 0 2m pod/cds-cds-db-0 1/1 Running 0 2m pod/cds-controller-blueprints-545bbf98cf-zwjfc 1/1 Running 0 2m NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE service/blueprints-processor ClusterIP 10.43.139.9 <none> 8080/TCP,9111/TCP 2m service/cds NodePort 10.43.254.69 <none> 3000:30397/TCP 2m service/cds-db ClusterIP None <none> 3306/TCP 2m service/controller-blueprints ClusterIP 10.43.207.152 <none> 8080/TCP 2m NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE deployment.apps/cds-blueprints-processor 1 1 1 0 2m deployment.apps/cds-cds 1 1 1 1 2m deployment.apps/cds-controller-blueprints 1 1 1 1 2m NAME DESIRED CURRENT READY AGE replicaset.apps/cds-blueprints-processor-54f758d69f 1 1 0 2m replicaset.apps/cds-cds-6bd674dc77 1 1 1 2m replicaset.apps/cds-controller-blueprints-545bbf98cf 1 1 1 2m NAME DESIRED CURRENT AGE statefulset.apps/cds-cds-db 1 1 2m
Design time
Bellow are the requirements to enable automation for a service within ONAP.
Currently, ONAP officially supports instantiation and post-instantiation use cases.
Instantiation use case
The goal is to be able to automatically resolve all the HEAT environment variables, called cloud parameters.
Prerequisite
- Have the HEAT template along with HEAT environment file
- Identify which cloud parameter are static and dynamic
- Create and fill-in the bellow table for all the dynamic cloud parameters
Required workflows
The following workflows are contracts established between SO, SDNC and CDS to cover the instantiation and the post-instantiation use cases.
resource-assignment
This action is meant to assign resources needed to instantiate the service. The goal is to resolved all the HEAT environment variables.
This action is triggered by Generic-Resource-API (GR-API) within SDNC as part of the AssignBB orchestrated by SO. Hence it will be triggered for each VNF(s) and VF-Module(s).
In order to know for which entity the action is triggered, one input is required, that is the artifact prefix (see bellow for explanation).
artifacts
For each VNF and VF-Module comprising the service, a combinaison of a template and mapping is needed.
The requirement is as follow for VNF:
${vnf-name}-template
${vnf-name}-mapping
and as follow for VF-Module, where the vf-module-label
is actually the name of the HEAT template file.
${vf-module-label}-template
${vf-module-label}-mapping
${vnf-name}
and ${vf-module-label}
is what we call the artifact prefix.
template
The template has to be a resource accumulator template; that be composed of the following sections:
resource-accumulator-resolved-data: defines all the resources that can be resolved directly from the context. It expresses a direct mapping between the name of the resource and its value.
capability-data: defines what capability to use to create a specific resource, along with the ingredients required to invoke the capability and the output mapping.
scripts
If any of the mapping uses a source capabbility to resolve a parameters.
config-assign
This action is meant to assign all the resources and mesh the templates needed for the configuration to apply post-instantiation.
This action is triggered by SO during after the AssignBB has been executed for Service, VNF and VF-Module.
artifacts
Combinaison of templates with respective mappings
Scripts if needed
config-deploy
This action is meant to push the configuration templates defined during the config-assign step for the post-instantiation.
This action is triggered by SO during after the CreateBB has been executed for all the VF-Modules.
artifacts
Combinaison of templates with respective mappings
Scripts using Netconf or Restconf to push configure the network element.