Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

SDN-R microservices in ONAP Dublin/El Alto are compiled in gerrit since first version of 0.4.2 for Opendaylight Flourine SR2. 

...

Test environment for creating and running docker container is located here: https://github.com/onap-oof-pci-poc/ccsdk/tree/master/distribution/odlwt-alpine-standalone-0.4.1-SNAPSHOT

...

Table of Contents

ONAP to ODL Dependency Background

The parent used in the pom file for a CCSDK feature is defining the Opendaylight Version that is targeted as run time environment. The interfaces provided by an Opendaylight main version, like Flourine, are not changed from one SRn to SRn+1. 

...

Artifacts version number

Parents version number

Target ODL Version
0.4.1/0.4.1-SNAPSHOT1.2.1/1.2.1-SNAPSHOTFlourine SR1
0.4.2/0.4.2-SNAPSHOT1.2.2/1.2.2-SNAPSHOTFlourine SR2
0.5.0/0.5.0-SNAPSHOT1.3.0/1.3.0-SNAPSHOTFlourine SR2
0.5.0/0.5.0-SNAPSHOT1.3.1/1.3.1-SNAPSHOTFlourine SR2

Example for adapting to a different Opendaylight version

Prerequ:

  • Server with Ubuntu with development setup for ONAP with access to ONAP Nexus.

...

Code Block
languagebash
cd ~
git clone git clone https://gerrit.onap.org/r/ccsdk/features
cd features/sdnr/wt
cp -r wt wt-0.4.1 
cd wt-0.4.1 
sed -i 's#<version>1.2.2-SNAPSHOT</version>#<version>1.2.1-SNAPSHOT</version>#g' $(find . -name "pom.xml") 
sed -i 's#<version>0.4.2-SNAPSHOT</version>#<version>0.4.1-SNAPSHOT</version>#g' $(find . -name "pom.xml")
mvn clean install

Create and run a Wireless transport micro services (wt) Container

Refering to github repository https://github.com/onap-oof-pci-poc/ccsdk with distribution/odlwt-alpine-standalone-0.4.1-SNAPSHOT

This distribution uses the ONAP ODL image "onap/ccsdk-odl-fluorine-alpine-image" to create the ONAP WT Container.

  • Container image versin 0.4.1-SNAPSHOUT with OpenDaylight Flourine SR1
  • There is no dependency to other ONAP Containers.
  • This version is including 0.4.1-SNAPSHOT features.

Configuration used by this container

  • Linux alpine as OS
  • ODL as single node or cluster node
  • Added bundles are Repository: 'ccsdk/features'/sdnr
  • ENTRYPOINT /opt/onap/ccsdk/bin/startSdnr.sh
  • ODLUX Login: - ODL Default is user here: admin/admin

Creation of 0.4.1-SNAPSHOUT Version for ODL Flourine SR1

The ONAP Dublin parents 1.2.1-SNAPSHOT and 1.2.1 are creating the bundles for ODL Flourine SR1. Parents with higher version number are creating bundles for ODL Floutine SR2.

Prerequ: Ubuntu with development setup for ONAP with access to ONAP Nexus.

Steps to create a Flourine SR1 Version, by example for using 0.4.2-SNAPSHOT:

cd features/sdnr/wt
     cp -r wt wt-0.4.1
     cd wt-0.4.1
     sed -i 's#<version>1.2.2-SNAPSHOT</version>#<version>1.2.1-SNAPSHOT</version>#g' $(find . -name "pom.xml")
     sed -i 's#<version>0.4.2-SNAPSHOT</version>#<version>0.4.1-SNAPSHOT</version>#g' $(find . -name "pom.xml")

Hint: It could occur that the versin number is used by something in the pom.xml. As a check use grep command with the version numbers to replace:

grep "<version>1\.2\.1-SNAPSHOT</version>" $(find . -name pom.xml)

Compile features and create image

After changing the version numbers a private build is required of "wireless transport" features for version "0.4.1-SNAPSHOT".

cd features/sdnr/wt
     mvn clean install

Create image with

cd distribution/odlwt-alpine-standalone-0.4.1-SNAPSHOT
     mvn clean install -P docker


Note

HINT: ONAP/Nexus does contain also a bundle with such a version number. This version is used as default if no compilation was done. Indication is such error: "[ERROR] Failed to execute goal io.fabric8:docker-maven-plugin:0.16.5:build (generate-images) on project distribution-odlwt-alpine: Unable to build image [oof-pci/ccsdk-odlwt-alpine-image]: COPY failed: stat /var/lib/docker/tmp/docker-builder864199067/preload.cache.schema: no such file or directory -> [Help 1]"

Parameters

  • SDNRWT true|false
    • Switch on the SDNRWT feature.

Cluster specific

  • Node index, provided via host-name
    • Format name-n
    • n defines the host index. Starts with 0 .. N-1. Index of the cluster node that is started.
  • --env SDNC_REPLICAS=n
    • n Number of cluster members.

  • --env PEERODLCLUSTER="true"
    • Set to any value for non GEO redundant setup.

  • --env ENABLEODLCLUSTER="true"
    • Mandatory to enable cluster configuration

Examples

Start single node

     docker run imageName

Start three node clusters

     docker run imageName --env NODE_INDEX="1" --env NODE_LIST="10.42.167.43 10.42.168.2 192.168.178.65"
     docker run imageName --env NODE_INDEX="2" --env NODE_LIST="10.42.167.43 10.42.168.2 192.168.178.65"
     docker run imageName --env NODE_INDEX="3" --env NODE_LIST="10.42.167.43 10.42.168.2 192.168.178.65"

Reference

Opendaylight cluster configuration

Container ports

docker run --detach --publish 8181:8181 --name sdnr "$IMAGE"

Version reference ODL ↔ ONAP

Import during compile is to have the same mdsal version inuse that is also provided by the Opendaylight/Karaf OSGi system.

If the Opendaylight Version name is known, e.g. Flourine/SR2 the related mdsal api information can be found by github opendaylight repository in the pom that is creating this API. This repository contains the names of the opendaylight version as Tag or Branch. It is located here: https://github.com/opendaylight/mdsal/blob/release/fluorine-sr3/binding/mdsal-binding-api/pom.xml . The artifact <version> is the relevant version number, here 2.5.2

  • Client: Enter a running sdnr container and open client by $ODL_HOME/bin/client. that is also visible with karaf/opendaylight/client under feature:list and used by a specific ODL Version. Search for odl-mdsal-binding: odl-mdsal-binding │ 2.5.2 │ │ Started │ odl-mdsal-binding │ OpenDaylight :: MD-SAL :: Binding
  • Repository: The list command "ls $ODL_HOME/system/org/opendaylight/mdsal/mdsal-binding-api/" indicates a directory with related version number. Here "2.5.2"

In ONAP/ccsdk the same version number is specified in via parent pom.xml by the  <odl.mdsal.version>2.5.2</odl.mdsal.version> parameter.

In the example above all this version numbers should show 2.5.2 and the world is OK.