429e988905ef40607ae6fc930f76069dc8b567c6
[policy/docker.git] / compose / docker-compose.yml
1 #
2 # ===========LICENSE_START====================================================
3 #  Copyright (C) 2020-2021 AT&T Intellectual Property. All rights reserved.
4 #  Modifications Copyright (C) 2021 Bell Canada. All rights reserved.
5 #  Modification Copyright 2021-2023 Nordix Foundation.
6 # ============================================================================
7 # Licensed under the Apache License, Version 2.0 (the "License");
8 # you may not use this file except in compliance with the License.
9 # You may obtain a copy of the License at
10 #
11 #      http://www.apache.org/licenses/LICENSE-2.0
12 #
13 # Unless required by applicable law or agreed to in writing, software
14 # distributed under the License is distributed on an "AS IS" BASIS,
15 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 # See the License for the specific language governing permissions and
17 # limitations under the License.
18 # ============LICENSE_END=====================================================
19 #
20 version: '2'
21 services:
22    mariadb:
23       image: ${CONTAINER_LOCATION}mariadb:${POLICY_MARIADB_VER}
24       container_name: mariadb
25       hostname: mariadb
26       command: ['--lower-case-table-names=1', '--wait_timeout=28800', '--default-authentication-plugin=mysql_native_password']
27       env_file: ./config/db/db.conf
28       volumes:
29          - ./config/db:/docker-entrypoint-initdb.d:ro
30          - ./config/clamp/policy-clamp-create-tables.sql:/tmp/policy-clamp-create-tables.sql
31       ports:
32        - 3306:3306
33    policy-db-migrator:
34       image: ${CONTAINER_LOCATION}onap/policy-db-migrator:${POLICY_DOCKER_VERSION}
35       container_name: policy-db-migrator
36       hostname: policy-db-migrator
37       depends_on:
38         - mariadb
39       expose:
40        - 6824
41       env_file: ./config/db/db.conf
42       environment:
43         SQL_DB: policyadmin
44         SQL_HOST: mariadb
45       volumes:
46          - ./config/db-migrator/init.sh:/opt/app/policy/bin/db_migrator_policy_init.sh:ro
47          - ./wait_for_port.sh:/opt/app/policy/bin/wait_for_port.sh:ro
48       entrypoint: /opt/app/policy/bin/wait_for_port.sh
49       command: [
50               '-c',
51                 '/opt/app/policy/bin/db_migrator_policy_init.sh',
52                 'mariadb', '3306'
53                ]
54    simulator:
55       image: ${CONTAINER_LOCATION}onap/policy-models-simulator:${POLICY_MODELS_VERSION}
56       container_name: simulator
57       hostname: simulator
58       networks:
59           default:
60               aliases:
61                   - message-router
62                   - aai-sim
63                   - grpc-sim
64                   - sdnc-sim
65                   - so-sim
66                   - vfc-sim
67       volumes:
68        - ./config/sim-all:/opt/app/policy/simulators/etc/mounted:ro
69        - ./config/sim-all/logback.xml:/opt/app/policy/simulators/etc/mounted/logback.xml:ro
70       expose:
71        - 6666
72        - 6668
73        - 6669
74        - 6670
75        - 3904
76        - 6680
77       ports:
78        - ${DMAAP_PORT}:3904
79    api:
80       image: ${CONTAINER_LOCATION}onap/policy-api:${POLICY_API_VERSION}
81       container_name: policy-api
82       depends_on:
83        - policy-db-migrator
84       hostname: policy-api
85       ports:
86        - ${API_PORT}:6969
87       volumes:
88        - ./config/api/apiParameters.yaml:/opt/app/policy/api/etc/apiParameters.yaml:ro
89        - ./config/api/logback.xml:/opt/app/policy/api/etc/logback.xml:ro
90        - ./wait_for_port.sh:/opt/app/policy/api/bin/wait_for_port.sh:ro
91       entrypoint: ./wait_for_port.sh
92       command: [
93         '-c', './policy-api.sh',
94         'mariadb', '3306',
95         'policy-db-migrator', '6824'
96         ]
97    pap:
98       image: ${CONTAINER_LOCATION}onap/policy-pap:${POLICY_PAP_VERSION}
99       container_name: policy-pap
100       depends_on:
101        - mariadb
102        - simulator
103        - api
104       hostname: policy-pap
105       ports:
106        - ${PAP_PORT}:6969
107       volumes:
108        - ./config/pap/papParameters.yaml:/opt/app/policy/pap/etc/papParameters.yaml:ro
109        - ./config/${PROJECT}/groups.json:/opt/app/policy/pap/etc/mounted/groups.json:ro
110        - ./config/pap/logback.xml:/opt/app/policy/pap/etc/logback.xml:ro
111        - ./wait_for_port.sh:/opt/app/policy/pap/bin/wait_for_port.sh:ro
112       entrypoint: ./wait_for_port.sh
113       command: [
114         '-c', './policy-pap.sh',
115         'mariadb', '3306',
116         'message-router', '3904',
117         'api', '6969'
118         ]
119    xacml-pdp:
120       image: ${CONTAINER_LOCATION}onap/policy-xacml-pdp:${POLICY_XACML_PDP_VERSION}
121       container_name: policy-xacml-pdp
122       depends_on:
123        - mariadb
124        - simulator
125        - pap
126       hostname: policy-xacml-pdp
127       ports:
128        - ${XACML_PORT}:6969
129        - 30999:3904
130       volumes:
131        - ./config/xacml-pdp/defaultConfig.json:/opt/app/policy/pdpx/etc/defaultConfig.json:ro
132        - ./config/xacml-pdp/logback.xml:/opt/app/policy/pdpx/etc/logback.xml:ro
133        - ./wait_for_port.sh:/opt/app/policy/pdpx/bin/wait_for_port.sh:ro
134       entrypoint: ./wait_for_port.sh
135       command: [
136         '-c', './policy-pdpx.sh',
137         'mariadb', '3306',
138         'message-router', '3904',
139         'pap', '6969'
140         ]
141    drools-pdp:
142       image: ${CONTAINER_LOCATION}onap/policy-drools:${POLICY_DROOLS_PDP_VERSION}
143       container_name: drools
144       depends_on:
145        - mariadb
146        - simulator
147        - pap
148       hostname: drools
149       ports:
150        - ${DROOLS_PORT}:6969
151        - ${DROOLS_TELEMETRY_PORT}:9696
152       volumes:
153        - ./config/drools-pdp/custom:/tmp/policy-install/config:ro
154        - ./wait_for_port.sh:/opt/app/policy/bin/wait_for_port.sh:ro
155       env_file:
156         - ./config/drools-pdp/env/base.conf
157       entrypoint: /opt/app/policy/bin/wait_for_port.sh
158       command: [
159         '-c', '/opt/app/policy/bin/pdpd-entrypoint.sh boot',
160         'mariadb', '3306',
161         'message-router', '3904'
162         ]
163    drools-applications:
164       image: ${CONTAINER_LOCATION}onap/policy-pdpd-cl:${POLICY_DROOLS_APPS_VERSION}
165       container_name: drools-apps
166       depends_on:
167        - mariadb
168        - simulator
169        - pap
170        - xacml-pdp
171       hostname: drools-apps
172       ports:
173        - ${DROOLS_APPS_PORT}:6969
174        - ${DROOLS_APPS_TELEMETRY_PORT}:9696
175       volumes:
176        - ./config/drools-applications/custom:/tmp/policy-install/config:ro
177        - ./wait_for_port.sh:/opt/app/policy/bin/wait_for_port.sh:ro
178       env_file:
179         - ./config/drools-applications/env/base.conf
180         - ./config/drools-applications/env/feature-healthcheck.conf
181         - ./config/drools-applications/env/feature-pooling-dmaap.conf
182       entrypoint: /opt/app/policy/bin/wait_for_port.sh
183       command: [
184         '-c', '/opt/app/policy/bin/pdpd-cl-entrypoint.sh boot',
185         'mariadb', '3306',
186         'message-router', '3904',
187         'pap', '6969',
188         'aai-sim', '6666',
189         'sdnc-sim', '6668',
190         'so-sim', '6669',
191         'vfc-sim', '6670'
192         ]
193    apex-pdp:
194       image: ${CONTAINER_LOCATION}onap/policy-apex-pdp:${POLICY_APEX_PDP_VERSION}
195       container_name: policy-apex-pdp
196       depends_on:
197        - mariadb
198        - simulator
199        - pap
200       hostname: policy-apex-pdp
201       ports:
202        - ${APEX_PORT}:6969
203        - ${APEX_EVENTS_PORT}:23324
204       volumes:
205        - ./config/apex-pdp/OnapPfConfig.json:/opt/app/policy/apex-pdp/etc/onappf/config/OnapPfConfig.json:ro
206        - ./config/apex-pdp/logback.xml:/opt/app/policy/apex-pdp/etc/logback.xml:ro
207        - ./wait_for_port.sh:/opt/app/policy/bin/wait_for_port.sh:ro
208       entrypoint: /opt/app/policy/bin/wait_for_port.sh
209       command: [
210         '-c', '/opt/app/policy/apex-pdp/bin/apexOnapPf.sh -c /opt/app/policy/apex-pdp/etc/onappf/config/OnapPfConfig.json',
211         'mariadb', '3306',
212         'message-router', '3904',
213         'pap', '6969'
214         ]
215    distribution:
216       image: ${CONTAINER_LOCATION}onap/policy-distribution:${POLICY_DISTRIBUTION_VERSION}
217       container_name: policy-distribution
218       depends_on:
219        - mariadb
220        - api
221        - pap
222        - apex-pdp
223       hostname: policy-distribution
224       ports:
225        - ${DIST_PORT}:6969
226       volumes:
227        - ./config/distribution/defaultConfig.json:/opt/app/policy/distribution/etc/defaultConfig.json:ro
228        - /tmp/distribution/:/opt/app/policy/distribution/etc/temp/:ro
229        - ./config/distribution/logback.xml:/opt/app/policy/distribution/etc/logback.xml:ro
230        - ./wait_for_port.sh:/opt/app/policy/bin/wait_for_port.sh:ro
231       entrypoint: /opt/app/policy/bin/wait_for_port.sh
232       command: [
233         '-c', './policy-dist.sh',
234         'mariadb', '3306',
235         'message-router', '3904',
236         'pap', '6969',
237         'apex-pdp', '6969'
238         ]
239    policy-clamp-runtime-acm:
240       image: ${CONTAINER_LOCATION}onap/policy-clamp-runtime-acm:${POLICY_CLAMP_VERSION}
241       container_name: policy-clamp-runtime-acm
242       depends_on:
243        - mariadb
244        - simulator
245       hostname: policy-clamp-runtime-acm
246       ports:
247        - ${ACM_PORT}:6969
248       volumes:
249        - ./config/clamp/AcRuntimeParameters.yaml:/opt/app/policy/clamp/etc/AcRuntimeParameters.yaml
250        - ./config/clamp/logback.xml:/opt/app/policy/clamp/etc/logback.xml:ro
251        - ./wait_for_port.sh:/opt/app/policy/bin/wait_for_port.sh:ro
252       entrypoint: /opt/app/policy/bin/wait_for_port.sh
253       command: [
254         '-c', './acm-runtime.sh',
255         'mariadb', '3306',
256         'message-router', '3904'
257         ]
258    policy-clamp-ac-http-ppnt:
259       image: ${CONTAINER_LOCATION}onap/policy-clamp-ac-http-ppnt:${POLICY_CLAMP_VERSION}
260       container_name: policy-clamp-ac-http-ppnt
261       depends_on:
262        - simulator
263       hostname: policy-clamp-ac-http-ppnt
264       ports:
265        - 30290:6969
266       volumes:
267        - ./config/clamp/HttpParticipantParameters.yaml:/opt/app/policy/clamp/etc/HttpParticipantParameters.yaml
268        - ./config/clamp/logback.xml:/opt/app/policy/clamp/etc/logback.xml:ro
269        - ./wait_for_port.sh:/opt/app/policy/bin/wait_for_port.sh:ro
270       entrypoint: /opt/app/policy/bin/wait_for_port.sh
271       command: [
272         '-c', './http-participant.sh',
273         'message-router', '3904'
274         ]
275    policy-clamp-ac-k8s-ppnt:
276       image: ${CONTAINER_LOCATION}onap/policy-clamp-ac-k8s-ppnt:${POLICY_CLAMP_VERSION}
277       container_name: policy-clamp-ac-k8s-ppnt
278       depends_on:
279        - simulator
280       hostname: policy-clamp-ac-k8s-ppnt
281       ports:
282        - 30295:6969
283       volumes:
284        - ./config/clamp/KubernetesParticipantParameters.yaml:/opt/app/policy/clamp/etc/KubernetesParticipantParameters.yaml
285        - ./config/clamp/logback.xml:/opt/app/policy/clamp/etc/logback.xml:ro
286        - ./wait_for_port.sh:/opt/app/policy/bin/wait_for_port.sh:ro
287       entrypoint: /opt/app/policy/bin/wait_for_port.sh
288       command: [
289         '-c', './kubernetes-participant.sh',
290         'message-router', '3904'
291         ]
292    policy-clamp-ac-pf-ppnt:
293       image: ${CONTAINER_LOCATION}onap/policy-clamp-ac-pf-ppnt:${POLICY_CLAMP_VERSION}
294       container_name: policy-clamp-ac-pf-ppnt
295       depends_on:
296        - simulator
297        - api
298       hostname: policy-clamp-ac-pf-ppnt
299       ports:
300        - ${POLICY_PARTICIPANT_PORT}:6969
301       volumes:
302        - ./config/clamp/PolicyParticipantParameters.yaml:/opt/app/policy/clamp/etc/PolicyParticipantParameters.yaml:ro
303        - ./config/clamp/logback.xml:/opt/app/policy/clamp/etc/logback.xml:ro
304        - ./wait_for_port.sh:/opt/app/policy/bin/wait_for_port.sh:ro
305       entrypoint: /opt/app/policy/bin/wait_for_port.sh
306       command: [
307         '-c', './policy-participant.sh',
308         'message-router', '3904',
309         'api', '6969'
310         ]
311    policy-clamp-ac-a1pms-ppnt:
312       image: ${CONTAINER_LOCATION}onap/policy-clamp-ac-a1pms-ppnt:${POLICY_CLAMP_VERSION}
313       container_name: policy-clamp-ac-a1pms-ppnt
314       depends_on:
315        - simulator
316       hostname: policy-clamp-ac-a1pms-ppnt
317       ports:
318        - 30296:6969
319       volumes:
320        - ./config/clamp/A1pmsParticipantParameters.yaml:/opt/app/policy/clamp/etc/A1pmsParticipantParameters.yaml:ro
321        - ./config/clamp/logback.xml:/opt/app/policy/clamp/etc/logback.xml:ro
322        - ./wait_for_port.sh:/opt/app/policy/bin/wait_for_port.sh:ro
323       entrypoint: /opt/app/policy/bin/wait_for_port.sh
324       command: [
325         '-c', './a1pms-participant.sh',
326         'message-router', '3904'
327         ]
328    policy-clamp-ac-kserve-ppnt:
329       image: ${CONTAINER_LOCATION}onap/policy-clamp-ac-kserve-ppnt:${POLICY_CLAMP_VERSION}
330       container_name: policy-clamp-ac-kserve-ppnt
331       depends_on:
332        - simulator
333       hostname: policy-clamp-ac-kserve-ppnt
334       ports:
335        - 30297:6969
336       volumes:
337        - ./config/clamp/KserveParticipantParameters.yaml:/opt/app/policy/clamp/etc/KserveParticipantParameters.yaml:ro
338        - ./config/clamp/logback.xml:/opt/app/policy/clamp/etc/logback.xml:ro
339        - ./wait_for_port.sh:/opt/app/policy/bin/wait_for_port.sh:ro
340       entrypoint: /opt/app/policy/bin/wait_for_port.sh
341       command: [
342         '-c', './kserve-participant.sh',
343         'message-router', '3904'
344         ]
345    prometheus:
346       image: ${CONTAINER_LOCATION}prom/prometheus:latest
347       container_name: prometheus
348       hostname: prometheus
349       ports:
350        - ${PROMETHEUS_PORT}:9090
351       volumes:
352        - ./metrics/prometheus.yml:/etc/prometheus/prometheus.yml
353    grafana:
354       image: ${CONTAINER_LOCATION}grafana/grafana:latest
355       container_name: grafana
356       depends_on:
357        - prometheus
358       hostname: grafana
359       ports:
360        - ${GRAFANA_PORT}:3000
361       volumes:
362        - ./metrics/dashboard.yaml:/etc/grafana/provisioning/dashboards/dashboard.yaml
363        - ./metrics/datasource.yaml:/etc/grafana/provisioning/datasources/datasource.yaml
364        - ./metrics/dashboards:/var/lib/grafana/dashboards