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.
...
Setup local Helm
Code Block | ||||
---|---|---|---|---|
| ||||
helm serve &
helm repo add local http://127.0.0.1:8879 |
...
Make sure to checkout the release to use, by replacing $release-tag
in bellow command
Code Block | ||||
---|---|---|---|---|
| ||||
git clone https://gerrit.onap.org/r/oom
git checkout tags/$release-tag
cd oom/kubernetes
make cds |
Install CDS
Code Block | ||||
---|---|---|---|---|
| ||||
helm install --name cds cds |
Result
Code Block | ||||
---|---|---|---|---|
| ||||
$ 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 |
...
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 For instantiation, the goal is to be able to automatically resolve all the HEAT environment variables, called cloud parameters.
For post-instantiation, the goal is to configure the VNF with initial configuration.
Prerequisite
Gather what you need:
Deck of Cards id prerequisite Card label instantiation Have the HEATtemplate along with the HEATenvironment file.
Card label post-instantiation Have the configuration template to apply on the VNF.
- XML for NETCONF
- JSON / XML for RESTCONF
- not supported yet - CLI
- Identify which cloud parameter values are static and dynamic
Create and fill-in the
bellowa table for all the dynamic values
Card label instantiation Here are the information to capture for each dynamic cloud parameters
Cloud Parameter name How to resolve Input for resolution Output of resolution Name as in the HEAT environment file Deck of Cards id how to resolve Card label Input Value will be given as input in the request.
Card label Default Value will be defaulted in the model.
Card label REST Value will be resolved by sending a query to the REST system
Auth URL URI Payload VERB Supported Auth type
Deck of Cards id auth Card label Token Use token based authentication
- token
Card label Basic Use basic authentication
- username
- password
Card label SSL Use SSL basic authentication
- keystore type
- truststore
- truststore password
- keystore
- keystore password
http(s)://<host>:<port> /xyz JSON formatted payload HTTP method Card label SQL Value will be resolved by sending a SQL statement to the DB system
Type URL Query Username Password Only maria-db
supported for nowSQL statement Deck of Cards id input Card label REST List of
...
placeholders used for
- URI
- Payload
Card label DB List of placeholders used for
- SQL statement
This is the expected result from the system, and you should know what value out of the response is of interest for you.
...
If it's a JSON payload, then you should think about the json path to access to value of interest.
Data dictionary
Required workflows
The following workflows are contracts established between SO, SDNC and CDS to cover the instantiation and the post-instantiation use cases.
...
Scripts using Netconf or Restconf to push configure the network element.