ONAP Frankfurt Deployment Components necessary for the vFW & VLB use case with CDS:

In order to run the VLB with CDS use case, we need an ONAP Frankfurt Release instance that includes the following components::

ONAP Component NameDescription 
A&AIRequired for Inventory Cloud Owner, Customer, Owning Entity, Service, Generic VNF, VF Module

SDC

VSP , VF, and Service Modeling of the VLB
DMAAPDistribution of the CSAR to all ONAP components 
SORequires for Macro Orchestration using the generic building blocks

CDS

[CCSDK]

Used for ONAP E2E Zero Touch Declarative Provisioning & Configuration Management for VNF/CNF/PNF.

  • CDS UI mS
  • CDS Blueprint Processor mS
  • CDS Controller Blueprint mS

SDNC needs to include:

  • Netbox
  • Naming Generation mS
Provides GENERIC-RESOURCE-API for cloud Instantiation orchestration via CDS.
PolicyUsed to Store Naming Policy 
VID Used for User Interface for Run Time Execution of the Marco Instantiation flow. 
AAFUsed for Authentication and Authorization of requests
PortalUsed for accessing the ONAP Components GUI like SDC, VID, etc ...
RobotUsed for running automated tasks, like provisioning cloud customer, cloud region, service subscription, etc ...
Shared Cassandra DBUsed as a shared storage for ONAP components that rely on Cassandra DB, like AAI
Shared Maria DBUsed as a shared storage for ONAP components that rely on Maria DB, like SDNC, and SO

ONAP Deployment Guide:

In order to deploy such an instance, we can follow the ONAP deployment guide in this link : https://docs.onap.org/en/dublin/submodules/oom.git/docs/oom_quickstart_guide.html#quick-start-label

As we can see from the guide, we can use an override file that helps us customize our ONAP deployment, without modifying the OOM Folder, so you can download this override file here, that includes the necessary components mentioned above.

override.yaml for vDNS
# Copyright © 2019 Amdocs, Bell Canada, Orange
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#       http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

#################################################################
# Global configuration overrides.
#
# These overrides will affect all helm charts (ie. applications)
# that are listed below and are 'enabled'.
#################################################################
global:
  # Change to an unused port prefix range to prevent port conflicts
  # with other instances running within the same k8s cluster
  nodePortPrefix: 302
  nodePortPrefixExt: 304

  # ONAP Repository
  # Uncomment the following to enable the use of a single docker
  # repository but ONLY if your repository mirrors all ONAP
  # docker images. This includes all images from dockerhub and
  # any other repository that hosts images for ONAP components.
  #repository: nexus3.onap.org:10001

  # readiness check - temporary repo until images migrated to nexus3
  readinessRepository: oomk8s
  # logging agent - temporary repo until images migrated to nexus3
  loggingRepository: docker.elastic.co

  # image pull policy
  pullPolicy: IfNotPresent

  # override default mount path root directory
  # referenced by persistent volumes and log files
  persistence:
    mountPath: /dockerdata-nfs

  # flag to enable debugging - application support required
  debugEnabled: true

#################################################################
# Enable/disable and configure helm charts (ie. applications)
# to customize the ONAP deployment.
#################################################################
aaf:
  enabled: true
aai:
  enabled: true
  global:
    cassandra:
      replicas: 1
  aai-cassandra:
    replicaCount: 1
appc:
  enabled: false
cassandra:
  enabled: true
  replicaCount: 1
clamp:
  enabled: false
cli:
  enabled: false
consul:
  enabled: false
contrib:
  enabled: true
dcaegen2:
  enabled: false
dmaap:
  enabled: true
esr:
  enabled: false
log:
  enabled: false
  log-logstash:
    replicaCount: 1
sniro-emulator:
  enabled: false
oof:
  enabled: false
mariadb-galera:
  enabled: true
msb:
  enabled: false
multicloud:
  enabled: false
nbi:
  enabled: false
policy:
  enabled: true
  config:
    preloadPolicies: true
pomba:
  enabled: false
portal:
  enabled: true
robot:
  enabled: true
  config:
    openStackEncryptedPasswordHere: <openStackEncryptedPassword>
  openStackFlavourMedium: <openStackFlavourMedium>
  openStackKeyStoneUrl: <openStackKeyStoneUrl>
  openStackPublicNetId: <openStackPublicNetId>
  openStackPassword: <openStackPassword>
  openStackRegion: <openStackRegion>
  openStackTenantId: <openStackTenantId>
  openStackUserName: <openStackUserName>
  ubuntu14Image: <ubuntu14Image>
  ubuntu16Image: <ubuntu16Image>
  openStackPrivateNetId: <openStackPrivateNetId>
  openStackSecurityGroup: <openStackSecurityGroup>
  openStackPrivateSubnetId: <openStackPrivateSubnetId>
  openStackPrivateNetCidr: "10.0.0.0/8"
  vnfPubKey: <vnfPubKey>

sdc:
  enabled: true
  global:
    cassandra:
      replicaCount: 1
sdnc:
  enabled: true

  replicaCount: 1

  mysql:
    replicaCount: 1


so:
  enabled: true

  replicaCount: 1

  liveness:
    # necessary to disable liveness probe when setting breakpoints
    # in debugger so K8s doesn't restart unresponsive container
    enabled: true

  # so server configuration
  config:
    # message router configuration
    dmaapTopic: "AUTO"
    # openstack configuration
    openStackUserName: <openStackUserName>
    openStackRegion: <openStackRegion>
    openStackKeyStoneUrl: <openStackKeyStoneUrl>
    openStackServiceTenantName: <openStackServiceTenantName>
    openStackEncryptedPasswordHere: <openStackEncryptedPasswordHere>

  # configure embedded mariadb
  mariadb:
    config:
      mariadbRootPassword: password

uui:
  enabled: false
vfc:
  enabled: false
vid:
  enabled: true
vnfsdk:
  enabled: false

As we can see in the override.yaml file above, we can enable or disable the deployment of a specific ONAP component, and in our case, we enabled only the necessary components to run the VLB demo.

We can also see that we can configure the parameters needed for the use case to run, like OpenStack Username, Passowrd, Region, Tenant, Image Names, and Flavors.

We have also enable "PreloadPolicies", so that the Naming Policy is deployed when ONAP POLICY components starts.

Post Deployment:

After completing the first part above, we should have a functional ONAP deployment for the Frankfurt Release.

We will need to apply a few modifications to the deployed ONAP Frankfurt instance in order to run the VLB use case:

Initialize cloud account:

Our use case will need a customer, service subscription, cloud-region, tenant, and complex.

We can initialize this information by running the robot script "./demo-k8s.sh onap init_customer".

Robot initialize cloud account
root@olc-Frankfurt-rancher:~# cd oom/kubernetes/robot/
root@olc-Frankfurt-rancher:~/oom/kubernetes/robot# ./demo-k8s.sh onap init_customer
Number of parameters:
2
KEY:
init_customer
++ kubectl --namespace onap get pods
++ sed 's/ .*//'
++ grep robot
+ POD=onap-robot-robot-6dd6bfbd85-nl29n
+ ETEHOME=/var/opt/ONAP
++ kubectl --namespace onap exec onap-robot-robot-6dd6bfbd85-nl29n -- bash -c 'ls -1q /share/logs/ | wc -l'
+ export GLOBAL_BUILD_NUMBER=3
+ GLOBAL_BUILD_NUMBER=3
++ printf %04d 3
+ OUTPUT_FOLDER=0003_demo_init_customer
+ DISPLAY_NUM=93
+ VARIABLEFILES='-V /share/config/vm_properties.py -V /share/config/integration_robot_properties.py -V /share/config/integration_preload_parameters.py'
+ kubectl --namespace onap exec onap-robot-robot-6dd6bfbd85-nl29n -- /var/opt/ONAP/runTags.sh -V /share/config/vm_properties.py -V /share/config/integration_robot_properties.py -V /share/config/integration_preload_parameters.py -d /share/logs/0003_demo_init_customer -i InitCustomer --display 93
Starting Xvfb on display :93 with res 1280x1024x24
Executing robot tests at log level TRACE
==============================================================================
Testsuites                                                                    
==============================================================================
Testsuites.Demo :: Executes the VNF Orchestration Test cases including setu...
==============================================================================
Initialize Customer                                                   | PASS |
------------------------------------------------------------------------------
Testsuites.Demo :: Executes the VNF Orchestration Test cases inclu... | PASS |
1 critical test, 1 passed, 0 failed
1 test total, 1 passed, 0 failed
==============================================================================
Testsuites                                                            | PASS |
1 critical test, 1 passed, 0 failed
1 test total, 1 passed, 0 failed
==============================================================================
Output:  /share/logs/0003_demo_init_customer/output.xml
Log:     /share/logs/0003_demo_init_customer/log.html
Report:  /share/logs/0003_demo_init_customer/report.html
root@olc-Frankfurt-rancher:~/oom/kubernetes/robot# 

E2E Automation with ControllerExeuctionBB for CDS Action Execution: 

Update SO catalog orchestration_flow_reference table to execute config-assign & config-deploy CDS actions where id in (1465 , 1495 )


Orchestration Flow Reference Table Updates
from rancher

root@sb00-nfs:~# kubectl -n onap exec -it dev-mariadb-galera-0 bash

bash-4.2$ mysql -uroot -pTepsMavaFota9+
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 172842
Server version: 10.1.24-MariaDB MariaDB Server

Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> use catalogdb
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A


MariaDB [catalogdb]> select * from orchestration_flow_reference where FLOW_NAME like '%Config%';

MariaDB [catalogdb]> update orchestration_flow_reference set FLOW_NAME='ControllerExecutionBB', scope='vnf', action='config-assign' where id in (1465);

MariaDB [catalogdb]> update orchestration_flow_reference set FLOW_NAME='ControllerExecutionBB', scope='vnf', action='config-deploy' where id in (1495);


MariaDB [catalogdb]> select * from orchestration_flow_reference where COMPOSITE_ACTION='Service-Macro-Create' order by seq_no;
+------+----------------------+--------+-----------------------------+--------------+----------------------+-------+---------------+
| id   | COMPOSITE_ACTION     | SEQ_NO | FLOW_NAME                   | FLOW_VERSION | NB_REQ_REF_LOOKUP_ID | SCOPE | ACTION        |
+------+----------------------+--------+-----------------------------+--------------+----------------------+-------+---------------+
| 1447 | Service-Macro-Create |      1 | AssignServiceInstanceBB     |            1 |                  262 | NULL  | NULL          |
| 1450 | Service-Macro-Create |      2 | CreateNetworkCollectionBB   |            1 |                  262 | NULL  | NULL          |
| 1453 | Service-Macro-Create |      3 | AssignNetworkBB             |            1 |                  262 | NULL  | NULL          |
| 1456 | Service-Macro-Create |      4 | AssignVnfBB                 |            1 |                  262 | NULL  | NULL          |
| 1459 | Service-Macro-Create |      5 | AssignVolumeGroupBB         |            1 |                  262 | NULL  | NULL          |
| 1462 | Service-Macro-Create |      6 | AssignVfModuleBB            |            1 |                  262 | NULL  | NULL          |
| 1465 | Service-Macro-Create |      7 | ControllerExecutionBB       |            1 |                  262 | vnf   | config-assign |
| 1468 | Service-Macro-Create |      8 | AssignPnfBB                 |            1 |                  262 | NULL  | NULL          |
| 1471 | Service-Macro-Create |      9 | WaitForPnfReadyBB           |            1 |                  262 | NULL  | NULL          |
| 1474 | Service-Macro-Create |     10 | ActivatePnfBB               |            1 |                  262 | NULL  | NULL          |
| 1477 | Service-Macro-Create |     11 | CreateNetworkBB             |            1 |                  262 | NULL  | NULL          |
| 1480 | Service-Macro-Create |     12 | ActivateNetworkBB           |            1 |                  262 | NULL  | NULL          |
| 1483 | Service-Macro-Create |     15 | CreateVolumeGroupBB         |            1 |                  262 | NULL  | NULL          |
| 1486 | Service-Macro-Create |     16 | ActivateVolumeGroupBB       |            1 |                  262 | NULL  | NULL          |
| 1489 | Service-Macro-Create |     17 | CreateVfModuleBB            |            1 |                  262 | NULL  | NULL          |
| 1492 | Service-Macro-Create |     18 | ActivateVfModuleBB          |            1 |                  262 | NULL  | NULL          |
| 1495 | Service-Macro-Create |     19 | ControllerExecutionBB       |            1 |                  262 | vnf   | config-deploy |
| 1498 | Service-Macro-Create |     20 | ActivateVnfBB               |            1 |                  262 | NULL  | NULL          |
| 1501 | Service-Macro-Create |     21 | ActivateNetworkCollectionBB |            1 |                  262 | NULL  | NULL          |
| 1504 | Service-Macro-Create |     22 | ActivateServiceInstanceBB   |            1 |                  262 | NULL  | NULL          |
+------+----------------------+--------+-----------------------------+--------------+----------------------+-------+---------------+
20 rows in set (0.00 sec)

MariaDB [catalogdb]>


Scale Out Automation with ControllerExeuctionBB for CDS Action Execution: 

SO catalog orchestration_flow_reference SO table updates required to execute HealthCheck & ScaleOutReconfiguration CDS actions where id in (1717, 1729, 1732 )


Orchestration Flow Reference Table Updates
from rancher

root@sb00-nfs:~# kubectl -n onap exec -it dev-mariadb-galera-0 bash

bash-4.2$ mysql -uroot -pTepsMavaFota9+
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 172842
Server version: 10.1.24-MariaDB MariaDB Server

Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> use catalogdb
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A



MariaDB [catalogdb]> update orchestration_flow_reference set FLOW_NAME='ControllerExecutionBB', scope='vnf', action='HealthCheck' where id in (1717, 1732);
MariaDB [catalogdb]> update orchestration_flow_reference set FLOW_NAME='ControllerExecutionBB', scope='vfmodule', action='ScaleOutReconfiguration' where id in (1729);   


MariaDB [catalogdb]> select * from orchestration_flow_reference where COMPOSITE_ACTION='VFModule-ScaleOut' order by seq_no;
+------+-------------------+--------+-----------------------+--------------+----------------------+----------+-------------------------+
| id   | COMPOSITE_ACTION  | SEQ_NO | FLOW_NAME             | FLOW_VERSION | NB_REQ_REF_LOOKUP_ID | SCOPE    | ACTION                  |
+------+-------------------+--------+-----------------------+--------------+----------------------+----------+-------------------------+
| 1717 | VFModule-ScaleOut |      1 | ControllerExecutionBB |            1 |                  310 | vnf      | HealthCheck             |
| 1720 | VFModule-ScaleOut |      2 | AssignVfModuleBB      |            1 |                  310 | NULL     | NULL                    |
| 1723 | VFModule-ScaleOut |      3 | CreateVfModuleBB      |            1 |                  310 | NULL     | NULL                    |
| 1726 | VFModule-ScaleOut |      4 | ActivateVfModuleBB    |            1 |                  310 | NULL     | NULL                    |
| 1729 | VFModule-ScaleOut |      5 | ControllerExecutionBB |            1 |                  310 | vfmodule | ScaleOutReconfiguration |
| 1732 | VFModule-ScaleOut |      6 | ControllerExecutionBB |            1 |                  310 | vnf      | HealthCheck             |
+------+-------------------+--------+-----------------------+--------------+----------------------+----------+-------------------------+
6 rows in set (0.00 sec)


MariaDB [catalogdb]>

Scale In Automation with ControllerExeuctionBB for CDS Action Execution: 

SO catalog orchestration_flow_reference SO table updates required to execute HealthCheck & ScaleInReconfiguration CDS actions where id in (1164, 1165, 1174)


Orchestration Flow Reference Table Updates
from rancher

root@sb00-nfs:~# kubectl -n onap exec -it dev-mariadb-galera-0 bash

bash-4.2$ mysql -uroot -pTepsMavaFota9+
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 172842
Server version: 10.1.24-MariaDB MariaDB Server

Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> use catalogdb
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

select * from orchestration_flow_reference where COMPOSITE_ACTION='VFModule-Delete' order by seq_no;

insert into orchestration_flow_reference (id, COMPOSITE_ACTION, SEQ_NO, FLOW_NAME, FLOW_VERSION, NB_REQ_REF_LOOKUP_ID, SCOPE, ACTION) value ("1164", "VFModule-Delete", "1", "ControllerExecutionBB", "1", "135", "vnf", "HealthCheck");

insert into orchestration_flow_reference (id, COMPOSITE_ACTION, SEQ_NO, FLOW_NAME, FLOW_VERSION, NB_REQ_REF_LOOKUP_ID, SCOPE, ACTION) value ("1165", "VFModule-Delete", "2", "ControllerExecutionBB", "1", "135", "vfmodule", "ScaleInReconfiguration");


insert into orchestration_flow_reference (id, COMPOSITE_ACTION, SEQ_NO, FLOW_NAME, FLOW_VERSION, NB_REQ_REF_LOOKUP_ID, SCOPE, ACTION) value ("1174", "VFModule-Delete", "6", "ControllerExecutionBB", "1", "135", "vnf", "HealthCheck");



MariaDB [catalogdb]> select * from orchestration_flow_reference where COMPOSITE_ACTION='VFModule-Delete' order by id;
+------+------------------+--------+-----------------------+--------------+----------------------+----------+------------------------+
| id   | COMPOSITE_ACTION | SEQ_NO | FLOW_NAME             | FLOW_VERSION | NB_REQ_REF_LOOKUP_ID | SCOPE    | ACTION                 |
+------+------------------+--------+-----------------------+--------------+----------------------+----------+------------------------+
| 1164 | VFModule-Delete  |      1 | ControllerExecutionBB |            1 |                  212 | vnf      | HealthCheck            |
| 1165 | VFModule-Delete  |      2 | ControllerExecutionBB |            1 |                  212 | vfmodule | ScaleInReconfiguration |
| 1166 | VFModule-Delete  |      3 | DeactivateVfModuleBB  |            1 |                  212 | NULL     | NULL                   |
| 1169 | VFModule-Delete  |      4 | DeleteVfModuleBB      |            1 |                  212 | NULL     | NULL                   |
| 1172 | VFModule-Delete  |      5 | UnassignVfModuleBB    |            1 |                  212 | NULL     | NULL                   |
| 1174 | VFModule-Delete  |      6 | ControllerExecutionBB |            1 |                  212 | vnf      | HealthCheck            |
+------+------------------+--------+-----------------------+--------------+----------------------+----------+------------------------+
6 rows in set (0.00 sec)

MariaDB [catalogdb]>


CDS Bootstrap command for preloading the CDS Catalog Data for Data Dictionary, Node Types, and CBA:  

Step 1:

Edit the blueprint processor HTTP service and change the ClusterIP to NodePort. This shall expose an http external node port need to execute the curl command in step 2. 

 

Step 2:

Execute the Curl Command to preload the CDS Catalog Data for Data Dictionary, Node Types and CBA.  Substitute k8s and cds_http_port with the right information. 


CDS CBA & DD Bootstrap
curl --location --request POST 'http://{{k8s}}:{{cds_http_port}}/api/v1/blueprint-model/bootstrap' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic Y2NzZGthcHBzOmNjc2RrYXBwcw==' \
--data-raw '{
"loadModelType" : true,
"loadResourceDictionary" : true,
"loadCBA" : true
}'
  • No labels