...
All components run as docker containers and communicate via a private docker network. Details of the architecture can be found from Jakarta Kohn 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)
...
Copy the default configuration file oran/a1-policy-management/config/application_configuration.json (JakartaKohn) 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 "
...
The configuration must comply to the following JSON schema. There are several publicly available tools (e.g. online) where it is possible to validate JSON objects against their schema.
The schema is available in the gerrit repo (application_configuration_schema.json (JakartaKohn))
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
{ "$schema": "http://json-schema.org/draft-04/schema#", "type": "object", "properties": { "config": { "type": "object", "properties": { "//description": { "type": "string" }, "description": { "type": "string" }, "controller": { "type": "array", "items": [ { "type": "object", "properties": { "name": { "type": "string" }, "baseUrl": { "type": "string" }, "userName": { "type": "string" }, "password": { "type": "string" } }, "required": [ "name", "baseUrl", "userName", "password" ], "additionalProperties": false } ] }, "ric": { "type": "array", "items": [ { "type": "object", "properties": { "name": { "type": "string" }, "baseUrl": { "type": "string" }, "controller": { "type": "string" }, "managedElementIds": { "type": "array", "items": [ { "type": "string" }, { "type": "string" } ] } }, "required": [ "name", "baseUrl", "managedElementIds" ], "additionalProperties": false } ] }, "streams_publishes": { "type": "object", "properties": { "dmaap_publisher": { "type": "object", "properties": { "type": { "type": "string" }, "dmaap_info": { "type": "object", "properties": { "topic_url": { "type": "string" } }, "required": [ "topic_url" ] } }, "required": [ "type", "dmaap_info" ] } }, "required": [ "dmaap_publisher" ] }, "streams_subscribes": { "type": "object", "properties": { "dmaap_subscriber": { "type": "object", "properties": { "type": { "type": "string" }, "dmaap_info": { "type": "object", "properties": { "topic_url": { "type": "string" } }, "required": [ "topic_url" ] } }, "required": [ "type", "dmaap_info" ] } }, "required": [ "dmaap_subscriber" ] } }, "required": [ "ric" ], "additionalProperties": false } }, "required": [ "config" ] } |
...
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.34.31 | nexus3.onap.org:10004/onap/ccsdk-oran-a1policymanagementservice:1.34.41-STAGING-latest | onap/ccsdk-oran-a1policymanagementservice:1.34.42-SNAPSHOT |
SDNC image | nexus3.onap.org:10002/onap/sdnc-image:2.35.15 | nexus3.onap.org:10004/onap/sdnc-image:2.35.15-STAGING-latest | onap/sdnc-image:2.35.25-SNAPSHOT |
Run A1-enabled Controller
...
Download and edit the docker compose file, oam/installation/src/main/yaml/docker-compose.yaml (JakartaKohn) and keep only sdnc and
maria db
images. The rest of the images are not need for A1 Policy testing.
In addition, remove or comment out the following two entries for sdnc in the docker-compose file: '- ansible' and '- ansible:ansiblehost'.
(However if you want to change the SLI DG graphs or run your own SLI DG graphs, then keep the dgbuilder
image. If you wish to use the DMaaP interface then keep & configure the dmaaplistener
image.)
Download the sdnc-basic.yml file → https://gerrit.nordix.org/plugins/gitiles/onap/sdnc/oam/+/refs/heads/master/installation/src/main/yaml/sdnc-basic.yml (or) sdnc-basic.yaml
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.35.15
Locally built | Release image from nexus |
---|---|
sdnc: | sdnc: |
(There is also a file named sdnc_basic.yaml that can be used instead, it only includes maria db and sdnc so it only needs to be modified when images have not been built locally so versions need to be updated from latest to a specific version, for example nexus3.onap.org:10002/onap/sdnc-image:2.35.15. In this case when using a different docker compose file you will use docker-compose -f sdnc-basic.yml up
instead of the normal docker-compose up
command in the code block below)
The docker-compose files above requires several environment variables to be set according to your environment.
Sample settings for these environment variables can be found here (JakartaKohn), but first check if these values are suitable for your environment.
...
The SDNC/ODL API GUI is also handy, where the internal A1-Policy APIs can be seen/tested. (It may take several minutes before the URLs work as expected as the SDNC/ODL component loads)
http://localhost:8282/apidoc/explorer/index.html (or) http://yourclusteripaddress:8282/apidoc/explorer/index.html |
(Note these instructions create an A1 Controller deployment scenario aligned towards the sample A1 Policy configuration given above)
...
For more details about running the OSC A1 Simulator see the related OSC NONRTRIC Wiki page (Release F) and OSC A1 Simulator Documentation (f-releaseF Release)
Run ONAP A1 Policy Management Service Docker Container
Run A1 Policy Management Service docker container using the command below, after the A1-Controller and simulators have been fully started.
It may be useful to set the logging level toTRACE
level, where you can verify the A1-Controller, A1-Simualtors and A1 Policy Management Service is fully up and running.
The configuration file (application_configuration.json described above) must be mounted as avolume
into the container, so absolute path and name of the file must be substituted in the following command:Code Block language bash title Docker: Run the A1 Policy Management Service docker run -p 8081:8081 --network=nonrtric-docker-net --name=a1policymanagmentservice --volume <Absolute path to application_configuration.json created above>:/opt/app/policy-agent/data/application_configuration.json nexus3.onap.org:10002/onap/ccsdk-oran-a1policymanagementservice:1.34.31
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)
Code Block language bash title Optional: Enable TRACE level logging in A1 Policy Management Service collapse true curl -X POST http://localhost:8081/actuator/loggers/org.onap.ccsdk.oran.a1policymanagementservice -H "Content-Type:application/json" -d {\"configuredLevel\":\"trace\"}
Once the Policy Management Service is up and running, it establishes connections to all configured near-RT-RICs (
ric1
,ric2
,ric3
,ric4
) via the A1 Controller.If the
a1policymanagmentservice
container is configured to log atTRACE
level, the following logs entries should appear indicating that connection to the configured RICs has been established successfully via A1 Controller.
...
For troubleshooting/verification purposes you can view/access the A1 Policy Management Service swagger API from url: http://localhost:8081/swagger-ui.html
(Note: the hostname may be different depending on your environment, port 8081
is configured in the docker command above)
Note: the hostname may be different depending on your environment, port 8081
is configured in the docker command above)
Run OSC Non-RT RIC Control Panel Docker Container
...