This is an initial draft and up for comments before uploading to the readthedocs.


Pulling code :

Following are the repository which are required to be pulled

# Repository which contains source code for SO
git clone ssh://<LFID> && scp -p -P 29418 <LFID> so/.git/hooks/

# This repository is libraries for openstack services
git clone ssh://<LFID> && scp -p -P 29418 <LFID> libs/.git/hooks/

# This repository contains required docker configs for various dockers
git clone ssh://<LFID> && scp -p -P 29418 <LFID> docker-config/.git/hooks/

After cloning repository one can use mvm to build code.

$ mvn clean install

If you want to switch branch to any any specific tag, release :

git checkout <branch-name> # current active branches master, casablanca etc...

SO docker images and docker build

Following are the list of dockers required for SO deployment

$ docker ps
fb338faccd2a onap/so/api-handler-infra "/app/ ..." 13 days ago Up 56 seconds>5080/tcp,>8080/tcp testlab_api-handler-infra_1 # responsible for exposing north bound APIs.
c7d645a3a948 onap/so/vfc-adapter "/app/ ..." 13 days ago Up 22 seconds>5084/tcp,>8084/tcp testlab_vfc-adapter_1 # responsible for
b352794e9129 onap/so/sdnc-adapter "/app/ ..." 13 days ago Up 14 seconds>5086/tcp,>8086/tcp testlab_sdnc-adapter_1
4fd0a0ac1723 onap/so/sdc-controller "/app/ ..." 13 days ago Up 34 seconds>5085/tcp,>8085/tcp testlab_sdc-controller_1
8ddd1639b983 onap/so/openstack-adapter "/app/ ..." 13 days ago Up 1 second>5087/tcp,>8087/tcp testlab_openstack-adapter_1
631ca370ea66 onap/so/bpmn-infra "/app/ ..." 13 days ago Up 46 seconds>5081/tcp,>8081/tcp testlab_bpmn-infra_1
0d881e6506c1 onap/so/request-db-adapter "/app/ ..." 13 days ago Up About a minute>5083/tcp,>8083/tcp testlab_request-db-adapter_1
762578ec4e8d onap/so/catalog-db-adapter "/app/ ..." 13 days ago Up About a minute>5082/tcp,>8082/tcp testlab_catalog-db-adapter_1
c9f544cfd7b4 mariadb:10.1.11 "/docker-entrypoin..." 13 days ago Up About a minute>3306/tcp testlab_mariadb_1

Below are the responsibilities of each module

docker-config_mariadb_1 # responsible for handling the DB store (mariadb).
docker-config_api-handler-infra_1 # responsible for handling the DB store (mariadb).
docker-config_sdc-controller_1 # responsible for handling CSAR distribution and parsing.
docker-config_bpmn-infra_1 # responsible for executing BMPN worklows.
docker-config_vfc-adapter_1 is # responsible for communicating with VFC.
docker-config_sdnc-adapter_1 # responsible for communicating with SDNC.
docker-config_openstack-adapter_1 # responsible for comomunicating with openstack.
docker-config_catalog-db-adapter_1 # responsible for API to communicate with DB.
docker-config_request-db-adapter_1 # responsible for API to track requests details.
docker-config_so-monitoring_1 # responsible for Monitoring.

One can create docker image locally from code using following command from /so/packages/docker:

$ mvn clean install -U -DskipTests=true -Dmaven.test.skip=true -Dmaven.javadoc.skip=true -Dadditionalparam=-Xdoclint:none -P docker

For creating docker image you need to run the above command from /so/package/docker

To run the docker images go to /docker-config folder which was cloned from the above command and run the command 

$ docker-compose up -d

SO docker deployment

For initialization of docker there are 2 deployment options currently adpoted in ONAP:
- using heat template
- using OOM

OOM based deployment

- for installing and configuring SO using OOM deployment one can refer to the below links:

- Ensure SO is marked true against field enabled in the oom/oom_setup_kubernetes\onap\values.yaml for successful deployment.

===== values.yaml =====
enabled: true

replicaCount: 1

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

# so server configuration
# message router configuration
dmaapTopic: "AUTO"
# openstack configuration
openStackUserName: "vnf_user"
openStackRegion: "RegionOne"
openStackKeyStoneUrl: ""
openStackServiceTenantName: "service"
openStackEncryptedPasswordHere: "c124921a3a0efbe579782cde8227681e"

# configure embedded mariadb
mariadbRootPassword: password

Upgrade Images in OOM deployment

To Upgrade SO image one has to modify the the image for the respective component in SO charts by modifying values.yaml


====== oom/kubernetes/so/charts/so-bpmn-infra/values.yaml =====
image: onap/so/bpmn-infra:1.3.3
pullPolicy: Always

Now build the charts after modifying image version following the below sequence of commands:

step1:  Build all repos again

$ make all # from path oom/kubernetes

step2: Delete the existing pods already deployed

$ helm del dev-so --purge # delete previous existing deployment

step3: Deploy the new pods.

$ helm deploy dev local/onap --namespace onap

Now SO will be upgraded with new image version.

Pull Daily Images in OOM deployment

To pull the daily image one can go to and pull the appropriate image tag by following previous steps.

Testing your patch

- To test patch developer has to replace corresponding `jar` files in pod to path `/app` in corresponding pod. This can be done using :

$ kubectl cp mso-infrastructure-bpmn-1.3.0-SNAPSHOT.jar onap/dev-so-so-bpmn-infra-54db5cd955-h7f5s:/app/mso-infrastructure-bpmn-1.3.0-SNAPSHOT.jar

- Modify your \app\ to specify name of your jar as follows :

===== =====
java ${jvmargs} -jar mso-infrastructure-bpmn-1.3.0-SNAPSHOT.jar

- Now, restart docker instance from corresponding node.

$ docker restart <docker-name>

SO debug logging

To see the various logs on can go to /app/log folder inside corresponding pod e.g. /app/logs/bpmn for bpmn related logs.

  • No labels

1 Comment

  1. Seshu Kumar Mudiganti - Thanks for this doc. This really helps all onap newbies. Could you also provide instructions to live debug standalone instance of SO containers ? Like linking to source and stepping through... that way this doc gets complete in all aspects.