Topo: Add supported-tps to logical TPs
[oam.git] / solution / smo / oam / docker-compose.yaml
1 ################################################################################
2 # Copyright 2024 highstreet technologies
3 #
4 # Licensed under the Apache License, Version 2.0 (the "License");
5 # you may not use this file except in compliance with the License.
6 # You may obtain a copy of the License at
7 #
8 #     http://www.apache.org/licenses/LICENSE-2.0
9 #
10 # Unless required by applicable law or agreed to in writing, software
11 # distributed under the License is distributed on an "AS IS" BASIS,
12 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 # See the License for the specific language governing permissions and
14 # limitations under the License.
15 #
16
17 # no more versions needed! Compose spec supports all features w/o a version
18 version: "3.8"
19 services:
20   odlux:
21     image: ${SDNC_WEB_IMAGE}
22     container_name: odlux
23     hostname: odlux
24     environment:
25       ENABLE_OAUTH: ${SDNC_ENABLE_OAUTH}
26       WEBPROTOCOL: HTTP
27       WEBPORT: ${SDNC_WEB_PORT}
28       SDNRPROTOCOL: http
29       SDNRHOST: controller
30       SDNRPORT: ${SDNC_REST_PORT}
31       SDNRWEBSOCKETPORT: ${SDNR_WEBSOCKET_PORT}
32     labels:
33       traefik.enable: true
34       traefik.http.routers.sdnc-web.entrypoints: websecure
35       traefik.http.routers.sdnc-web.rule: Host(`odlux.oam.${HTTP_DOMAIN}`)
36       traefik.http.routers.sdnc-web.tls: true
37       traefik.http.services.sdnc-web.loadbalancer.server.port: ${SDNC_WEB_PORT}
38       app: "odlux"
39       deploy: "o-ran-sc-smo-oam"
40       solution: "o-ran-sc-smo"
41     depends_on:
42       controller:
43         condition: service_healthy
44     networks:
45       dmz:
46       smo:
47
48   controller:
49     image: ${SDNC_IMAGE}
50     container_name: controller
51     hostname: controller
52     extra_hosts:
53       - "controller.dcn.${HTTP_DOMAIN}:${HOST_IP}"
54     healthcheck:
55       test: wget --no-verbose --tries=1 --spider http://localhost:${SDNC_REST_PORT}/ready || exit 1
56       start_period: 60s
57       interval: 10s
58       timeout: 5s
59       retries: 5
60     environment:
61       ENABLE_ODL_CLUSTER: false
62       ENABLE_OAUTH: ${SDNC_ENABLE_OAUTH}
63       ENABLE_ODLUX_RBAC: false
64       ODL_CERT_DIR: ${SDNC_CERT_DIR}
65       ODL_ADMIN_PASSWORD: ${ADMIN_PASSWORD}
66       SDNC_CONFIG_DIR: /opt/onap/ccsdk/data/properties
67       SDNC_REPLICAS: 0
68       CCSDK_REPLICAS: 0
69       DOMAIN: ""
70       SDNRWT: true
71       SDNRONLY: true
72       SDNRINIT: true
73       SDNRDM: true
74       SDNRDBTYPE: MARIADB
75       SDNRDBURL: jdbc:mysql://persistence:3306/sdnrdb
76       SDNRDBUSERNAME: sdnrdb
77       SDNRDBPASSWORD: sdnrdb
78       SDNR_NETCONF_CALLHOME_ENABLED: true
79       A1_ADAPTER_NORTHBOUND: false
80       JAVA_OPTS: -Xms256m -Xmx4g
81       SDNR_WEBSOCKET_PORT: ${SDNR_WEBSOCKET_PORT}
82       IDENTITY_PROVIDER_URL: ${IDENTITY_PROVIDER_URL}
83       SDNC_WEB_URL: https://odlux.oam.${HTTP_DOMAIN}
84       SDNR_VES_COLLECTOR_ENABLED: true
85       SDNR_VES_COLLECTOR_TLS_ENABLED: false
86       SDNR_VES_COLLECTOR_TRUST_ALL_CERTS: true
87       SDNR_VES_COLLECTOR_IP: ves-collector
88       SDNR_VES_COLLECTOR_PORT: $VES_ENDPOINT_PORT
89       SDNR_VES_COLLECTOR_VERSION: v7
90       SDNR_VES_COLLECTOR_REPORTING_ENTITY_NAME: ONAP SDN-R
91       SDNR_VES_COLLECTOR_EVENTLOG_MSG_DETAIL: LONG
92       SDNR_VES_COLLECTOR_USERNAME: ${VES_ENDPOINT_USERNAME}
93       SDNR_VES_COLLECTOR_PASSWORD: ${VES_ENDPOINT_PASSWORD}
94     volumes:
95       - ./controller/oauth-aaa-app-config.xml:/opt/onap/sdnc/data/oauth-aaa-app-config.xml
96       - ./controller/oauth-provider.config.json:/opt/opendaylight/etc/oauth-provider.config.json
97       - ./controller/devicemanager.properties:/opt/opendaylight/etc/devicemanager.properties
98       - ./controller/mountpoint-registrar.properties:/opt/opendaylight/etc/mountpoint-registrar.properties
99       - ./controller/certs/certs.properties:${SDNC_CERT_DIR}/certs.properties
100       - ./controller/certs/keys0.zip:${SDNC_CERT_DIR}/keys0.zip    
101     labels:
102       traefik.enable: true
103       traefik.http.routers.controller.entrypoints: websecure
104       traefik.http.routers.controller.rule: Host(`controller.dcn.${HTTP_DOMAIN}`)
105       traefik.http.routers.controller.tls: true
106       traefik.http.services.controller.loadbalancer.server.port: ${SDNC_REST_PORT}
107
108       traefik.tcp.routers.controller-ssh.entrypoints: ssh-netconf-callhome
109       traefik.tcp.routers.controller-ssh.rule: HostSNI(`*`)
110       traefik.tcp.routers.controller-ssh.tls: false
111       traefik.tcp.routers.controller-ssh.service: controller-ssh
112       traefik.tcp.services.controller-ssh.loadbalancer.server.port: 4334
113
114       traefik.tcp.routers.controller-tls.entrypoints: tls-netconf-callhome
115       traefik.tcp.routers.controller-tls.rule: HostSNI(`*`)
116       traefik.tcp.routers.controller-tls.tls: false
117       traefik.tcp.routers.controller-tls.service: controller-tls
118       traefik.tcp.services.controller-tls.loadbalancer.server.port: 4335
119       app: "controller"
120       deploy: "o-ran-sc-smo-oam"
121       solution: "o-ran-sc-smo"
122     networks:
123       smo:
124       dcn:
125
126   ves-collector:
127     image: ${VES_COLLECTOR_IMAGE}-configured
128     build:
129       context: ./ves-collector
130       args:
131         - BASEIMAGE=${VES_COLLECTOR_IMAGE}
132       network: host
133     container_name: ves-collector
134     hostname: ves-collector
135     extra_hosts:
136       - "ves-collector.dcn.${HTTP_DOMAIN}:${HOST_IP}"
137     healthcheck:
138       test: curl -k -u ${VES_ENDPOINT_USERNAME}:${VES_ENDPOINT_PASSWORD} ${VES_ENDPOINT_PROTOCOL}://localhost:${VES_ENDPOINT_PORT} || exit 1
139       start_period: 1s
140       interval: 5s
141       timeout: 4s
142       retries: 5
143     environment:
144       DMAAPHOST: messages
145     volumes:
146       - ./ves-collector/collector.properties:/opt/app/VESCollector/etc/collector.properties
147       - ./ves-collector/ves-dmaap-config.json:/opt/app/VESCollector/etc/ves-dmaap-config.json
148     labels:
149       traefik.enable: true
150       traefik.http.routers.ves.entrypoints: websecure
151       traefik.http.routers.ves.rule: Host(`ves-collector.dcn.${HTTP_DOMAIN}`)
152       traefik.http.routers.ves.tls: true
153       traefik.http.services.ves.loadbalancer.server.port: ${VES_ENDPOINT_PORT}
154       app: "ves-collector"
155       deploy: "o-ran-sc-smo-oam"
156       solution: "o-ran-sc-smo"
157     networks:
158       smo:
159       dcn:
160
161 networks:
162   dmz:
163     external: true
164   smo:
165     external: true
166   dcn:
167     external: true