-# O-RAN-SC docker-compose files
-
-The docker-compose.yml file will create an entire nonrtric system with one command:
-docker-compose up
-
-Two docker-compose files are provided in this folder:
-
-nosdnc/docker-compose.yml
-This file is to create nonrtric system without sdnc a1-controller
-
-sdnc/docker-compose.yml
-This file is to create nonrtric system with sdnc a1-controller
+## License
+Copyright (C) 2020 Nordix Foundation.
+Licensed under the Apache License, Version 2.0 (the "License")
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
-Howto:
-cd nosdnc/
-docker-compose up
+ http://www.apache.org/licenses/LICENSE-2.0
-or
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
-cd sdnc/
-docker-compose up
+For more information about license please see the [LICENSE](LICENSE.txt) file for details.
+## O-RAN-SC docker-compose files:
+The docker compose file helps the user to deploy all or partial components of nonrtric with one command.
+
+All the components in nonrtric has individual docker compose file so you can simply mix and match different components and deploy
+it at your preference.
+
+For ex.
+I want to Control Panel, A1 Policy Management Service & A1 Simulator,
+docker-compose -f docker-compose.yaml -f control-panel/docker-compose.yaml -f policy-service/docker-compose.yaml -f a1-sim/docker-compose.yaml up -d
+
+To remove all the containers use the same command,
+docker-compose -f docker-compose.yaml -f control-panel/docker-compose.yaml -f policy-service/docker-compose.yaml -f a1-sim/docker-compose.yaml down
+
+It can be used with any combination to deploy nonrtric components.
+
+## Policy Service Prerequisite:
+The A1 Policy Service can perform A1 Policy management with or without A1 Adapter. To enable/disable A1 Adapter all you have to do is,
+With SDNC A1 Adapter:
+Rename application_configuration.controller.json to application_configuration.json & start the container. Don't forget to add the A1 Adapter url,username & password in the application_configuration.json file.
+You also need to update the A1 Adapter url & credentials in the application_configuration file.
+Ex:
+For example if you use the OSC A1 Adapter then,
+"baseUrl": "http://a1controller:8282"
+"userName": "admin",
+"password": "Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U"
+docker-compose -f docker-compose.yaml -f policy-service/docker-compose.yaml -f a1-sim/docker-compose.yaml up -d
+Without SDNC A1 Adapter:
+Rename application_configuration.nocontroller.json to application_configuration.json & start the container.
+Ex:
+docker-compose -f docker-compose.yaml -f policy-service/docker-compose.yaml -f a1-sim/docker-compose.yaml up -d
+
+## To create sample data:
The scripts in data/ will generate some dummy data in the running system.
It will create:
one policy type in a1-sim-OSC
This is to generate some data into the ECS microservice
prepareDmaapMsg.sh
-This is to generate some data into the Dmaap MR, so that PMS reads message from MR
-
-## License
-
-Copyright (C) 2020 Nordix Foundation.
-Licensed under the Apache License, Version 2.0 (the "License")
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-
-For more information about license please see the [LICENSE](LICENSE.txt) file for details.
+This is to generate some data into the Dmaap MR, so that PMS reads message from MR
\ No newline at end of file
--- /dev/null
+# Copyright (C) 2020 Nordix Foundation. All rights reserved.
+# ========================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# ============LICENSE_END=================================================
+#
+version: '3.5'
+
+networks:
+ default:
+ driver: bridge
+ name: nonrtric-docker-net
+
+services:
+ a1-sim-OSC:
+ image: nexus3.o-ran-sc.org:10004/o-ran-sc/a1-simulator:2.0.0
+ container_name: a1-sim-OSC
+ networks:
+ - default
+ ports:
+ - 30001:8085
+ - 30002:8185
+ environment:
+ - A1_VERSION=OSC_2.1.0
+ - REMOTE_HOSTS_LOGGING=1
+ - ALLOW_HTTP=true
+
+ a1-sim-STD:
+ image: nexus3.o-ran-sc.org:10004/o-ran-sc/a1-simulator:2.0.0
+ container_name: a1-sim-STD
+ networks:
+ - default
+ ports:
+ - 30003:8085
+ - 30004:8185
+ environment:
+ - A1_VERSION=STD_1.1.3
+ - REMOTE_HOSTS_LOGGING=1
+ - ALLOW_HTTP=true
--- /dev/null
+# Copyright (C) 2020 Nordix Foundation. All rights reserved.
+# ========================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# ============LICENSE_END=================================================
+#
+version: '3.5'
+
+networks:
+ default:
+ driver: bridge
+ name: nonrtric-docker-net
+
+services:
+ policy-control-panel:
+ image: nexus3.o-ran-sc.org:10004/o-ran-sc/nonrtric-controlpanel:2.0.0
+ container_name: policy-control-panel
+ networks:
+ - default
+ ports:
+ - 8080:8080
+ - 8082:8082
--- /dev/null
+# Copyright (C) 2020 Nordix Foundation. All rights reserved.
+# ========================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# ============LICENSE_END=================================================
+#
+version: '3.5'
+
+networks:
+ default:
+ driver: bridge
+ name: nonrtric-docker-net
\ No newline at end of file
ports:
- 8083:8083
- 8434:8434
-
- policy-control-panel:
- image: nexus3.o-ran-sc.org:10004/o-ran-sc/nonrtric-controlpanel:2.2.0
- container_name: policy-control-panel
- networks:
- - default
- ports:
- - 8080:8080
- - 8082:8082
-
producer:
image: eexit/mirror-http-server
container_name: producer
- default
ports:
- 8088:80
-
{
"config":{
"//description":"Application configuration",
+ "controller": [
+ {
+ "name": "controller1",
+ "baseUrl": "",
+ "userName": "",
+ "password": ""
+ }
+ ],
"ric":[
{
"name":"ric1",
"baseUrl":"https://a1-sim-OSC:8185/",
+ "controller": "controller1",
"managedElementIds":[
"kista_1",
"kista_2"
{
"name":"ric2",
"baseUrl":"https://a1-sim-STD:8185/",
+ "controller": "controller1",
"managedElementIds":[
"kista_1",
"kista_2"
# - ./config/keystore-policyagent.jks:/opt/app/policy-agent/etc/cert/keystore.jks:ro
# - ./config/truststore-policyagent.jks:/opt/app/policy-agent/etc/cert/truststore.jks:ro
# - ./config/application-policyagent.yaml:/opt/app/policy-agent/config/application.yaml:ro
-
- a1-sim-OSC:
- image: nexus3.o-ran-sc.org:10004/o-ran-sc/a1-simulator:2.1.0
- container_name: a1-sim-OSC
- networks:
- - default
- ports:
- - 30001:8085
- - 30002:8185
- environment:
- - A1_VERSION=OSC_2.1.0
- - REMOTE_HOSTS_LOGGING=1
- - ALLOW_HTTP=true
-
- a1-sim-STD:
- image: nexus3.o-ran-sc.org:10004/o-ran-sc/a1-simulator:2.1.0
- container_name: a1-sim-STD
- networks:
- - default
- ports:
- - 30003:8085
- - 30004:8185
- environment:
- - A1_VERSION=STD_1.1.3
- - REMOTE_HOSTS_LOGGING=1
- - ALLOW_HTTP=true
-
- policy-control-panel:
- image: nexus3.o-ran-sc.org:10004/o-ran-sc/nonrtric-controlpanel:2.2.0
- container_name: policy-control-panel
- networks:
- - default
- ports:
- - 8080:8080
- - 8082:8082
- 8080:8080
- 8433:8433
-
+++ /dev/null
-spring:
- profiles:
- active: prod
- main:
- allow-bean-definition-overriding: true
- aop:
- auto: false
-management:
- endpoints:
- web:
- exposure:
- include: "loggers,logfile,health,info,metrics,threaddump,heapdump"
-
-logging:
- level:
- ROOT: ERROR
- org.springframework: ERROR
- org.springframework.data: ERROR
- org.springframework.web.reactive.function.client.ExchangeFunctions: ERROR
- org.oransc.policyagent: INFO
- file: /var/log/policy-agent/application.log
-server:
- port : 8433
- http-port: 8081
- ssl:
- key-store-type: JKS
- key-store-password: policy_agent
- key-store: /opt/app/policy-agent/etc/cert/keystore.jks
- key-password: policy_agent
- key-alias: policy_agent
-app:
- filepath: /opt/app/policy-agent/data/application_configuration.json
- webclient:
- trust-store-used: false
- trust-store-password: policy_agent
- trust-store: /opt/app/policy-agent/etc/cert/truststore.jks
-
name: nonrtric-docker-net
services:
- policy-agent:
- image: nexus3.o-ran-sc.org:10004/o-ran-sc/nonrtric-policy-agent:2.2.0
- container_name: policy-agent
- networks:
- default:
- aliases:
- - policy-agent-container
- ports:
- - 8081:8081
- - 8433:8433
- volumes:
- - ./config/application_configuration.json:/opt/app/policy-agent/data/application_configuration.json:ro
- # For using own certs instead of the default ones (built into the container),
- # place them in config/ directory, update the application-policyagent.yaml file, and uncomment the following lines
- # - ./config/keystore-policyagent.jks:/opt/app/policy-agent/etc/cert/keystore.jks:ro
- # - ./config/truststore-policyagent.jks:/opt/app/policy-agent/etc/cert/truststore.jks:ro
- # - ./config/application-policyagent.yaml:/opt/app/policy-agent/config/application.yaml:ro
-
- a1-sim-OSC:
- image: nexus3.o-ran-sc.org:10004/o-ran-sc/a1-simulator:2.1.0
- container_name: a1-sim-OSC
- networks:
- - default
- ports:
- - 30001:8085
- - 30002:8185
- environment:
- - A1_VERSION=OSC_2.1.0
- - REMOTE_HOSTS_LOGGING=1
- - ALLOW_HTTP=true
-
- a1-sim-STD:
- image: nexus3.o-ran-sc.org:10004/o-ran-sc/a1-simulator:2.1.0
- container_name: a1-sim-STD
- networks:
- - default
- ports:
- - 30003:8085
- - 30004:8185
- environment:
- - A1_VERSION=STD_1.1.3
- - REMOTE_HOSTS_LOGGING=1
- - ALLOW_HTTP=true
-
- policy-control-panel:
- image: nexus3.o-ran-sc.org:10004/o-ran-sc/nonrtric-controlpanel:2.2.0
- container_name: policy-control-panel
- networks:
- - default
- ports:
- - 8080:8080
- - 8082:8082
-
db:
image: mysql/mysql-server:5.6
container_name: sdnc-db
+++ /dev/null
-# Copyright (C) 2020 Nordix Foundation. All rights reserved.
-# ========================================================================
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-# ============LICENSE_END=================================================
-#
-version: '3.5'
-
-networks:
- default:
- driver: bridge
- name: nonrtric-docker-net
-
-services:
- policy-agent:
- image: nexus3.o-ran-sc.org:10004/o-ran-sc/nonrtric-policy-agent:2.2.0
- container_name: policy-agent
- networks:
- default:
- aliases:
- - policy-agent-container
- ports:
- - 8081:8081
- - 8433:8433
- volumes:
- - ./pms/application_configuration.json:/opt/app/policy-agent/data/application_configuration.json:ro
- - ./pms/application-policyagent.yaml:/opt/app/policy-agent/config/application.yaml:ro
- # For using own certs instead of the default ones (built into the container),
- # place them in pms/ directory, update the application-policyagent.yaml file, and uncomment the following lines
- # - ./pms/keystore-policyagent.jks:/opt/app/policy-agent/etc/cert/keystore.jks:ro
- # - ./pms/truststore-policyagent.jks:/opt/app/policy-agent/etc/cert/truststore.jks:ro
- # - ./pms/application-policyagent.yaml:/opt/app/policy-agent/config/application.yaml:ro
-
- a1-sim-OSC:
- image: nexus3.o-ran-sc.org:10004/o-ran-sc/a1-simulator:2.1.0
- container_name: a1-sim-OSC
- networks:
- - default
- ports:
- - 30001:8085
- - 30002:8185
- environment:
- - A1_VERSION=OSC_2.1.0
- - REMOTE_HOSTS_LOGGING=1
- - ALLOW_HTTP=true
-
- a1-sim-STD:
- image: nexus3.o-ran-sc.org:10004/o-ran-sc/a1-simulator:2.1.0
- container_name: a1-sim-STD
- networks:
- - default
- ports:
- - 30003:8085
- - 30004:8185
- environment:
- - A1_VERSION=STD_1.1.3
- - REMOTE_HOSTS_LOGGING=1
- - ALLOW_HTTP=true
-
- policy-control-panel:
- image: nexus3.o-ran-sc.org:10004/o-ran-sc/nonrtric-controlpanel:2.2.0
- container_name: policy-control-panel
- networks:
- - default
- ports:
- - 8080:8080
- - 8082:8082
-
- zookeeper:
- image: nexus3.onap.org:10001/onap/dmaap/zookeeper:6.0.3
- container_name: zookeeper
- ports:
- - "2181:2181"
- environment:
- ZOOKEEPER_REPLICAS: 1
- ZOOKEEPER_TICK_TIME: 2000
- ZOOKEEPER_SYNC_LIMIT: 5
- ZOOKEEPER_INIT_LIMIT: 10
- ZOOKEEPER_MAX_CLIENT_CNXNS: 200
- ZOOKEEPER_AUTOPURGE_SNAP_RETAIN_COUNT: 3
- ZOOKEEPER_AUTOPURGE_PURGE_INTERVAL: 24
- ZOOKEEPER_CLIENT_PORT: 2181
- KAFKA_OPTS: -Djava.security.auth.login.config=/etc/zookeeper/secrets/jaas/zk_server_jaas.conf -Dzookeeper.kerberos.removeHostFromPrincipal=true -Dzookeeper.kerberos.removeRealmFromPrincipal=true -Dzookeeper.authProvider.1=org.apache.zookeeper.server.auth.SASLAuthenticationProvider -Dzookeeper.requireClientAuthScheme=sasl
- ZOOKEEPER_SERVER_ID: 1
- volumes:
- - ./zk/zk_server_jaas.conf:/etc/zookeeper/secrets/jaas/zk_server_jaas.conf
- networks:
- - default
-
- kafka:
- image: nexus3.onap.org:10001/onap/dmaap/kafka111:1.0.4
- container_name: kafka
- ports:
- - "9092:9092"
- environment:
- enableCadi: 'false'
- KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
- KAFKA_ZOOKEEPER_CONNECTION_TIMEOUT_MS: 40000
- KAFKA_ZOOKEEPER_SESSION_TIMEOUT_MS: 40000
- KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: INTERNAL_PLAINTEXT:PLAINTEXT,EXTERNAL_PLAINTEXT:PLAINTEXT
- KAFKA_ADVERTISED_LISTENERS: INTERNAL_PLAINTEXT://kafka:9092
- KAFKA_LISTENERS: INTERNAL_PLAINTEXT://0.0.0.0:9092
- KAFKA_INTER_BROKER_LISTENER_NAME: INTERNAL_PLAINTEXT
- KAFKA_CONFLUENT_SUPPORT_METRICS_ENABLE: 'false'
- KAFKA_OPTS: -Djava.security.auth.login.config=/etc/kafka/secrets/jaas/zk_client_jaas.conf
- KAFKA_ZOOKEEPER_SET_ACL: 'true'
- KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
- # Reduced the number of partitions only to avoid the timeout error for the first subscribe call in slow environment
- KAFKA_OFFSETS_TOPIC_NUM_PARTITIONS: 1
- volumes:
- - ./kafka/zk_client_jaas.conf:/etc/kafka/secrets/jaas/zk_client_jaas.conf
- networks:
- - default
- depends_on:
- - zookeeper
-
- dmaap:
- image: nexus3.onap.org:10001/onap/dmaap/dmaap-mr:1.1.18
- container_name: dmaap-mr
- ports:
- - "3904:3904"
- - "3905:3905"
- environment:
- enableCadi: 'false'
- volumes:
- - ./mr/MsgRtrApi.properties:/appl/dmaapMR1/bundleconfig/etc/appprops/MsgRtrApi.properties
- - ./mr/logback.xml:/appl/dmaapMR1/bundleconfig/etc/logback.xml
- - ./mr/cadi.properties:/appl/dmaapMR1/etc/cadi.properties
- networks:
- - default
- depends_on:
- - zookeeper
- - kafka
\ No newline at end of file
+++ /dev/null
-spring:
- profiles:
- active: prod
- main:
- allow-bean-definition-overriding: true
- aop:
- auto: false
-management:
- endpoints:
- web:
- exposure:
- include: "loggers,logfile,health,info,metrics,threaddump,heapdump"
-
-logging:
- level:
- ROOT: ERROR
- org.springframework: ERROR
- org.springframework.data: ERROR
- org.springframework.web.reactive.function.client.ExchangeFunctions: ERROR
- org.oransc.policyagent: TRACE
- file: /var/log/policy-agent/application.log
-server:
- port : 8433
- http-port: 8081
- ssl:
- key-store-type: JKS
- key-store-password: policy_agent
- key-store: /opt/app/policy-agent/etc/cert/keystore.jks
- key-password: policy_agent
- key-alias: policy_agent
-app:
- filepath: /opt/app/policy-agent/data/application_configuration.json
- webclient:
- trust-store-used: false
- trust-store-password: policy_agent
- trust-store: /opt/app/policy-agent/etc/cert/truststore.jks
-
+++ /dev/null
-{
- "config":{
- "//description":"Application configuration",
- "ric":[
- {
- "name":"ric1",
- "baseUrl":"https://a1-sim-OSC:8185/",
- "managedElementIds":[
- "kista_1",
- "kista_2"
- ]
- },
- {
- "name":"ric2",
- "baseUrl":"https://a1-sim-STD:8185/",
- "managedElementIds":[
- "kista_1",
- "kista_2"
- ]
- }
- ],
- "streams_publishes":{
- "dmaap_publisher":{
- "type":"message_router",
- "dmaap_info":{
- "topic_url":"http://dmaap-mr:3904/events/A1-POLICY-AGENT-WRITE"
- }
- }
- },
- "streams_subscribes":{
- "dmaap_subscriber":{
- "type":"message_router",
- "dmaap_info":{
- "topic_url":"http://dmaap-mr:3904/events/A1-POLICY-AGENT-READ/users/policy-agent?timeout=15000&limit=100"
- }
- }
- }
- }
- }
\ No newline at end of file
.checkstyle
policy-agent.iml
config
+/bin/