Outdated, new version is here: SDN-R on docker-compose
For module tests and first integration test it is beneficial to create a "stand-alone" instance of ONAP SDN-R. Such version can run on a single developer system.
Prerequisites
Operating System:
$ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 20.04.1 LTS Release: 20.04 Codename: focal
It is assumed that any operation system which is supported by docker and docker-compose can be used.
The host systems must have internet connectivity.
The user must have sudo privileges.
Basic Installation
For running ONAP SDN-R as "stand-alone" version docker and docker-compose must be installed.
- Docker installation on Ubuntu: https://docs.docker.com/engine/install/ubuntu/
- docker-compose installation: https://docs.docker.com/compose/install/
Check the versions:
$ docker --version Docker version 19.03.8, build afacb8b7f0 $ docker-compose --version docker-compose version 1.27.2, build 18f557f
For IPv6 support a docker configuration by creating /etc/docker/daemon.json is required.
$ sudo -s $ cat <<EOT >> /etc/docker/daemon.json { "log-driver": "json-file", "log-opts": { "max-size": "10m", "max-file": "3" }, "ipv6": true, "fixed-cidr-v6": "2001:db8:1::/64" } EOT $ exit $ sudo systemctl restart docker
Docker compose configuration
A docker-compose.yaml file contains all the configuration required to run the different docker images, which are used to verify the different functions of ONAP SDN-R.
The following file is used to configure and run
- SDN-R Controller (ODL with SDN-R extensions
- SDN-R data cache (ElasticSearch)
- VES-Collector and DMaaP
- O-RAN-SC Simulator as NetConf-Server and VES emitter
mkdir onap-sdnr-standalone cd onap-sdn-standalone
TBD
docker network create \
--ipv6 \
--driver=bridge \
--subnet=172.50.0.0/16 \
--subnet=2001:3984:3989::/64 \
--gateway=172.50.0.1 \
--gateway=2001:3984:3989::1 \
oam
Build and run single node SDN-R
Build and run container
Login to nexus repository (for first time) .. see here: Docker DevOps
docker login -u docker -p docker nexus3.onap.org:10001
- Build
cd $HOME/ccsdk/distribution/odlwt-alpine-standalone-master mvn clean install -P docker
- Use (1) to run container with name "sdnr" in detached mode without any port mapping or (2) to run with mapping to host:8181
(1) docker run --detach --name sdnr --env SDNRWT="true" oof-pci/ccsdk-odlwt-alpine-image:latest (2) docker run --detach --name sdnr --env SDNRWT="true" -p8181:8181 oof-pci/ccsdk-odlwt-alpine-image:latest
- With (1) do open UX Web GUI by using browser http://172.17.0.2:8181/index2.html (!) on host machine with user/password = admin/admin
- Wait about 30 seconds that container is up and running
- Verify with curl -v http://172.18.0.2:8181/index2.html that it is running. Correct ouput ends with lines: HTTP/1.1 301 Moved Permanently , < Location: odlux/index.html, < Content-Length: 0
- docker ps should show a single running container
- docker inspect sdnr gives IP adress to be used. In the example 172.17.0.2
- With start (2) you can open UX Web GUI by using browser http://HOST_IP:8181/index2.html from different machine with user/password = admin/admin
- Login to docker container command line with name "sdnr"
docker exec -t -i "sdnr" /bin/bash -c 'TERM=xterm exec /bin/bash'
- Opendaylight home is under "/opt/opendaylight". Coul could cd $ODL_HOME
- Leave CLI with exit.
Stop and remove container
docker stop sdnr docker rm sdnr
Build and run single node CENTENNIAL POC5
.. waiting for content