This page describes how to get the Istanbul release version of A1-Policy functions up and running using Docker.
...
All components run as docker containers and communicate via a private docker network. Details of the architecture can be found from London Release page.
Note: Version numbers used in this page may not be the most recent ... you should verify the latest version numbers for released pre-built components in the docker image repository (https://nexus3.onap.org)
...
Java 11 (make sure that JAVA_HOME environment variable points to correct Java version)
Maven 3.6 (make sure you have configured maven to access the ONAP maven repositories)
Docker and docker-compose (latest)
...
Copy the default configuration file oran/a1-policy-management/config/application_configuration.json (london) to the current directory, then replace/amend the configuration with the sample demo configuration below.
(Note the configuration below is just a sample, and should be updated to match particular deployments. The deployment below assumes 4 near-RT-RICs exist - addressable at the URLs given. See the step "Run OSC Near-RT-RIC/A1 Simulator Docker Containers" below)The
controller
URL(
hostname, port),username
andpassword
values to access the A1 Controller (SDNC + A1 Adapter) must match the values configured for the SDNC-A1-Controller. (See the step "Run A1 Controller" further below). The port number for http is 8181.
(Note the configuration below is just a sample, and should be updated to match particular deployments. The deployment below assumes an A1 Controller function (SDNC) exists - addressable at the url given, using the authentication credentials given.)Any defined
ric
host names (in thename
andbaseUrl
for eachric
entry) must match the given docker container names in near-RT-RIC simulator startup - port is always the simulator's internal port 8085 for http or 8185 for https.The A1 Policy Management service can entirely by-pass the A1-Controller (SDNC + A1 Adapter) if desired - it is optional to access the near-RT-RIC through an A1-Controller.
Info title Alternative: Bypass the A1-Controller - connect direct from A1-Policy Management Service There is no functional gain in accessing the near-RT-RIC through an A1-Controller.
To bypass the A1-Controller (SDNC + A1 Adapter), where the A1-Policy Management Service connects directly to the A1 Interface:
- In the configuration the "
controller
" property is optional in the "ric
" objects - If all configured
ric
s bypass the A1-Controller (do not have "controller
" values) then the "controller
" object at the top of the configuration can be omitted. - If all configured
ric
s bypass the A1-Controller there is no need to start an A1-Controller.
- In the configuration the "
...
Component | Release image and version tag | Staging images and version tag | Manual snapshot (only available if manually built) and version tag |
---|---|---|---|
A1 Policy Management Service | nexus3.onap.org:10002/onap/ccsdk-oran-a1policymanagementservice:1.5.0 | nexus3.onap.org:10004/onap/ccsdk-oran-a1policymanagementservice:1.65.01-STAGING-latest | onap/ccsdk-oran-a1policymanagementservice:1.65.01-SNAPSHOT |
SDNC image | nexus3.onap.org:10002/onap/sdnc-image:2.5.5 | nexus3.onap.org:10004/onap/sdnc-image:2.5.5-STAGING-latest | onap/sdnc-image:2.5.5-SNAPSHOT |
...
Download the sdnc-basic.yml (Gerrit - london) (or) sdnc-basic.yaml (wiki)
If you have built the images locally you don't need any other change, however if the images have not been built locally, versions should be modified, from latest to the version that you would like to use, for example: nexus3.onap.org:10002/onap/sdnc-image:2.5.5
...
If the steps above are unsuccessful more help can be found from the CCSDK/SDNC Developer teams: CCSDK Project & SDNC Project
Run OSC Near-RT-RIC/A1 Simulator Docker Containers
Start docker containers for each near-RT-RIC defined in
oran/a1-policy-management/config/application_configuration.json
in the step "Configure the A1 Policy Management Service" above.
Different Simulators can use different A1-Interface profiles, for exampleOSC_2.1.0
andSTD_2.0.0
below. Start each simulator instance with the following commands (use separate shells):Code Block (Each in a new shell) docker run -p 8085:8085 -p 8185:8185 -e A1_VERSION=OSC_2.1.0 -e ALLOW_HTTP=true --network=nonrtric-docker-net --name=ric1 nexus3.o-ran-sc.org:10002/o-ran-sc/a1-simulator:2.65.0 docker run -p 8086:8085 -p 8186:8185 -e A1_VERSION=OSC_2.1.0 -e ALLOW_HTTP=true --network=nonrtric-docker-net --name=ric2 nexus3.o-ran-sc.org:10002/o-ran-sc/a1-simulator:2.65.0 docker run -p 8087:8085 -p 8187:8185 -e A1_VERSION=STD_2.0.0 -e ALLOW_HTTP=true --network=nonrtric-docker-net --name=ric3 nexus3.o-ran-sc.org:10002/o-ran-sc/a1-simulator:2.65.0 docker run -p 8088:8085 -p 8188:8185 -e A1_VERSION=STD_2.0.0 -e ALLOW_HTTP=true --network=nonrtric-docker-net --name=ric4 nexus3.o-ran-sc.org:10002/o-ran-sc/a1-simulator:2.65.0
(Note these commands create a deployment scenario aligned towards the sample A1 Policy configuration given above)
(Note these commands can be run in the background - all in one shell - by usingdocker run -d -p .....
)For the
OSC.2.1.0
simulators create a new A1 Policy Type policy type definition (JSON), and load it into each of theOSC.2.1.0
A1 Simulators instances.
(Note the format for A1 Policy Type Definitions (JSON) differs for different A1-Interface profiles)Code Block language js title pt1.json collapse true { "name": "pt1", "description": "pt1 policy type", "policy_type_id": 1, "create_schema": { "$schema": "http://json-schema.org/draft-07/schema#", "title": "OSC_Type1_1.0.0", "description": "Type 1 policy type", "type": "object", "properties": { "scope": { "type": "object", "properties": { "ueId": { "type": "string" }, "qosId": { "type": "string" } }, "additionalProperties": false, "required": [ "ueId", "qosId" ] }, "qosObjectives": { "type": "object", "properties": { "priorityLevel": { "type": "number" } }, "additionalProperties": false, "required": [ "priorityLevel" ] } }, "additionalProperties": false, "required": [ "scope", "qosObjectives" ] } }
Insert the example policy type into the started
OSC_2.1.0
A1 Simulator instances by running thesecurl
commands (in this example toric1
exposed to port 8085 andric2
exposed to port 8086):Code Block language bash curl -X PUT -v "http://localhost:8085/a1-p/policytypes/1" -H "accept: application/json" \ -H "Content-Type: application/json" --data-binary @pt1.json curl -X PUT -v "http://localhost:8086/a1-p/policytypes/1" -H "accept: application/json" \ -H "Content-Type: application/json" --data-binary @pt1.json
For the
STD_2.0.0
simulators create a new A1 Policy Type policy type definition (JSON), and load it into each of theSTD_2.0.0
A1 Simulators instances.
(Note the format for A1 Policy Type Definitions (JSON) differs for different A1-Interface profiles)Code Block language js title std_qos2_0.0.1.json collapse true { "policySchema": { "$schema": "http://json-schema.org/draft-07/schema#", "title": "STD_QOS2_0.1.0", "description": "STD QOS2 policy type", "type": "object", "properties": { "scope": { "type": "object", "properties": { "ueId": { "type": "string" }, "qosId": { "type": "string" } }, "additionalProperties": false, "required": [ "ueId", "qosId" ] }, "qosObjectives": { "type": "object", "properties": { "priorityLevel": { "type": "number" } }, "additionalProperties": false, "required": [ "priorityLevel" ] } } }, "statusSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "title": "STD_QOS_0.2.0", "description": "STD QOS policy type status", "type": "object", "properties": { "enforceStatus": { "type": "string" }, "enforceReason": { "type": "string" }, "additionalProperties": false, "required": [ "enforceStatus" ] } } }
Insert the example policy type into the started
STD_2.0.0
A1 Simulator instances by running thesecurl
commands (in this example toric3
exposed to port 8087 andric4
exposed to port 8088):Code Block language bash curl -X PUT -v "http://localhost:8087/policytype?id=STD_QOS2_0.1.0" -H "accept: application/json" \ -H "Content-Type: application/json" --data-binary @std_qos2_0.0.1.json curl -X PUT -v "http://localhost:8088/policytype?id=STD_QOS2_0.1.0" -H "accept: application/json" \ -H "Content-Type: application/json" --data-binary @std_qos2_0.0.1.json
...
docker run -p 9090:9090 --network=nonrtric-docker-net --name=nonrtric-gateway --volume /home/infra/workspace/application-nonrtricgateway.yaml:/opt/app/nonrtric-gateway/config/application.yaml:ro nexus3.o-ran-sc.org:10002/o-ran-sc/nonrtric-gateway:1.02.0
In order to run docker container for control panel use the following command:
...