Versions Compared

Key

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

UPDATE IN PROGRESS

This page describes how to run various NONRTRIC functions in Docker.

...

Note: If the policy management service is started with config for the SDNC A1 Controller (the second config option), do the steps described in section Run the SDNC A1 Controller Docker Container below before proceeding.

NOTE: Use below Endpoint to use a1policymanagement V2

curl localhost:8081/a1-policy/v2/rics

...

{"rics":[{"ric_id":"ric1","managed_element_ids":["kista_1","kista_2"],"policytype_ids":[],"state":"UNAVAILABLE"},{"ric_id":"ric3","managed_element_ids":["kista_5","kista_6"],"policytype_ids":[],"state":"UNAVAILABLE"},{"ric_id":"ric2","managed_element_ids":["kista_3","kista_4"],"policytype_ids":[],"state":"UNAVAILABLE"}]}

...

NOTE: Use below Endpoint to use a1policymanagement V3

curl localhost:8081/a1policymanagement/v1/rics

Expected output (not that all simulators - ric1,ric2 and ric3 will indicate "state":"UNAVAILABLE" until the simulators has been started in Run A1 Simulator Docker Containers):

{"rics":[{"ricId":"ric1","managedElementIds":["kista_1","kista_2"],"policyTypeIds":[],"state":"UNAVAILABLE"},{"ricId":"ric3","managedElementIds":["kista_5","kista_6"],"policyTypeIds":[],"state":"UNAVAILABLE"},{"ricId":"ric2","managedElementIds":["kista_3","kista_4"],"policyTypeIds":[],"state":"UNAVAILABLE"}]}

Run the SDNC A1 Controller Docker Container (ONAP SDNC)
Anchor
runsdnc
runsdnc

This step is only applicable if the configuration for the Policy Management Service include the SDNC A1 Controller (second config option), see Run the A1 Policy Management Service Docker Container.

Create the docker

...

This step is only applicable if the configuration for the Policy Management Service include the SDNC A1 Controller (second config option), see Run the A1 Policy Management Service Docker Container.

Create the docker compose file - be sure to update image for the a1controller to the one listed for SDNC A1 Controller in the table on the top of this page.
docker-compose.yaml 

Code Block
titledocker-compose.yaml
version: '3'
 
networks:
  default:
    external: true
    name: nonrtric-docker-net
 
services:
  db:
    image: nexus3.o-ran-sc.org:10001/mariadb:10.5
    container_name: sdncdb
    networks:
      - default
    ports:
      - "3306"
    environment:
      - MYSQL_ROOT_PASSWORD=itsASecret
      - MYSQL_ROOT_HOST=%
      - MYSQL_USER=sdnctl
      - MYSQL_PASSWORD=gamma
      - MYSQL_DATABASE=sdnctl
    logging:
      driver:   "json-file"
      options:
        max-size: "30m"
        max-file: "5"
 
  a1controller:
    image: nexus3.onap.org:10001/onap/sdnc-image:2.56.41
    depends_on :
      - db
    container_name: a1controller
    networks:
      - default
    entrypoint: ["/opt/onap/sdnc/bin/startODL.sh"]
    ports:
      - 8282:8181
      - 8443:8443
    links:
      - db:dbhost
      - db:sdnctldb01
      - db:sdnctldb02
    environment:
      - MYSQL_ROOT_PASSWORD=itsASecret
      - MYSQL_USER=sdnctl
      - MYSQL_PASSWORD=gamma
      - MYSQL_DATABASE=sdnctl
      - SDNC_CONFIG_DIR=/opt/onap/sdnc/data/properties
      - SDNC_BIN=/opt/onap/sdnc/bin
      - ODL_CERT_DIR=/tmp
      - ODL_ADMIN_USERNAME=admin
      - ODL_ADMIN_PASSWORD=Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U
      - ODL_USER=admin
      - ODL_PASSWORD=Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U
      - SDNC_DB_INIT=true
=true
      - A1_TRUSTSTORE_PASSWORD=a1adapter
      - AAI_TRUSTSTORE_PASSWORD=changeit
    logging:
      driver:   "json-file"
      options:
 - A1_TRUSTSTORE_PASSWORD=a1adapter
      max- AAI_TRUSTSTORE_PASSWORD=changeit
size: "30m"
     logging:
      driver:   "json-file"
      options:
        max-size: "30m"
        max-file: "5"

Start the SNDC A1 controller with the following command, using the created docker-compose file.

...

docker-compose up

Open this url below in a web browser to verify that the SDNC A1 Controller is up and running. It may take a few minutes until the endpoint is available.

...

http://localhost:8282/apidoc/explorer/index.html#/controller%20A1-ADAPTER-API
Username/password: admin/Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U
   max-file: "5"

Start the SNDC A1 controller with the following command, using the created docker-compose file.

docker-compose up

Open this url below in a web browser to verify that the SDNC A1 Controller is up and running. It may take a few minutes until the endpoint is available.

http://localhost:8282/apidoc/explorer/index.html#/controller%20A1-ADAPTER-API
Username/password: admin/Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U
The Karaf logs of A1 controller can be followed e.g. by using command 

docker execa1controller sh -c "tail -f /opt/opendaylight/data/log/karaf.log"

Run the A1 Simulator (Near-RT-RIC simulator) Docker Containers
Anchor
runsimulators
runsimulators

Start a simulator for each ric defined in in the application_configuration.json created above in section Run the A1 Policy Management Service Docker Container. Each simulator will use one of the currently available A1 interface versions. Each simulator uses different local ports.

ric1

docker run --rm --network=nonrtric-docker-net -p 8085:8085 -p 8185:8185 -e A1_VERSION=OSC_2.1.0 -e ALLOW_HTTP=true--name=ric1 nexus3.o-ran-sc.org:10002/o-ran-sc/a1-simulator:2.7.0

ric2

docker run --rm --network=nonrtric-docker-net -p 8086:8085 -p 8186:8185 -e A1_VERSION=STD_1.1.3 -e ALLOW_HTTP=true--name=ric2 nexus3.o-ran-sc.org:10002/o-ran-sc/a1-simulator:2.7.0

ric3

The Karaf logs of A1 controller can be followed e.g. by using command 

...

Start a simulator for each ric defined in in the application_configuration.json created above in section Run the A1 Policy Management Service Docker Container. Each simulator will use one of the currently available A1 interface versions. Each simulator uses different local ports.

ric1

docker run --rm --network=nonrtric-docker-net -p 80858087:8085 -p 81858187:8185 -e A1_VERSION=OSCSTD_2.10.0 -e ALLOW_HTTP=true --name=ric1 ric3 nexus3.o-ran-sc.org:10002/o-ran-sc/a1-simulator:2.5.0

ric2

...

7.0

Wait at least one minute to let the policy management service synchronise the rics. Then run the command below another terminal. The output should match the configuration in the file. Note that each ric now has the state "AVAILABLE".

NOTE: Use below Endpoint to use a1policymanagement V2

curl localhost:8081/a1-policy/v2/rics

Expected output - all state should indicated AVAILABLE:

{"rics":[{"ric_id":"ric1","managed_element_ids":["kista_1","kista_2"],"policytype_ids":[],"state":"AVAILABLE"},{"ric_id":"ric3","managed_element_ids":["kista_5","kista_6"],"policytype_ids":[],"state":"AVAILABLE"},{"ric_id":"ric2","managed_element_ids":["kista_3","kista_4"],"policytype_ids":[""],"state":"AVAILABLE"}]}

NOTE: Use below Endpoint to use a1policymanagement V3

curl localhost:8081/a1policymanagement/v1

ric3

...

docker run --rm --network=nonrtric-docker-net -p 8087:8085 -p 8187:8185 -e A1_VERSION=STD_2.0.0 -e ALLOW_HTTP=true --name=ric3 nexus3.o-ran-sc.org:10002/o-ran-sc/a1-simulator:2.5.0

Wait at least one minute to let the policy management service synchronise the rics. Then run the command below another terminal. The output should match the configuration in the file. Note that each ric now has the state "AVAILABLE".

curl localhost:8081/a1-policy/v2

/rics

Expected output - all state should indicated AVAILABLE:

ric_idmanaged_element_idspolicytype_idsric_idmanaged_element_idspolicytype_idsric_idmanaged_element_idspolicytype_ids

{"rics":[{"

ricId":"ric1","

managedElementIds":["kista_1","kista_2"],"

policyTypeIds":[],"state":"AVAILABLE"},{"

ricId":"ric3","

managedElementIds":["kista_5","kista_6"],"

policyTypeIds":[],"state":"AVAILABLE"},{"

ricId":"ric2","

managedElementIds":["kista_3","kista_4"],"

policyTypeIds":[""],"state":"AVAILABLE"}]}


Only the simulators using version STD_2.0.0 and OSC_2.1.0 supports A1 Policy types. Run the commands below to add one A1 Policy type in each  of ric1 and ric3. A1-AP version 1 (STD_1.1.3) does not support A1 Policy types.

...

List the synchronised types using a1policymanagement V2 endpoint:

curl localhost:8081/a1-policy/v2/policy-types

...

{"policytype_ids":["","123","std_pt1"]}

List the synchronised types using a1policymanagement V3 endpoint:

curl localhost:8081/a1policymanagement/v1/policytypes

Expected output:

[{"policyTypeId": "", "nearRtRicId": "ric2"},{"policyTypeId":"123","nearRtRicId": "ric1"}, {"policyTypeId":"std_pt1","nearRtRicId": "ric3"}]

Run the Information Coordinator Service Docker Container
Anchor
runics
runics

...

docker run --rm --network=nonrtric-docker-net -p 8083:8083 -p 8434:8434 --name=information-service-container nexus3.o-ran-sc.org:10002/o-ran-sc/nonrtric-plt-informationcoordinatorservice:1.57.0

Verify that the Information Coordinator Service is started and responding (response is an empty array).

...

docker run --rm -p 9096:9096 -p 9196:9196 -e ALLOW_HTTP=true --network=nonrtric-docker-net --name=rapp-catalogue-service-enhanced nexus3.o-ran-sc.org:10002/o-ran-sc/nonrtric-plt-rappcatalogue-enhanced:1.2.0.1

Verify that the service is up and running

...

docker run --rm\
-v<absolute-path-to-config-file>/application.yaml:/opt/app/dmaap-adapter-service/config/application.yaml \
-v<absolute-path-to-config-file>/application_configuration.json:/opt/app/dmaap-adapter-service/data/application_configuration.json \
-p 9086:8084 -p 9087:8435 --network=nonrtric-docker-net --name=dmaapadapterservice nexus3.o-ran-sc.org:10002/o-ran-sc/nonrtric-plt-dmaapadapter:1.34.0

Setup jobs to produce data according to the types in application_configuration.json

...

Start the CAPIF Core (Release HJ) in a separate shell with the following command:

docker run --rm -v \
<absolute-path-to-config-file>/type_config.json:/configs/type_config.json \
-p 8090:8090 --network=nonrtric-docker-net --name=capifcore \
nexus3.o-ran-sc.org:10002/o-ran-sc/nonrtric-plt-capifcore:1.3.1.0

This is a basic start command without helm. See CAPIF (Release H) and the README file in the sme repository for more options.

...