Add ACM db upgrade/downgrade to db-migrator
[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-2024 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: nexus3.onap.org:10001/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    policy-db-migrator-clamp:
55      image: ${CONTAINER_LOCATION}onap/policy-db-migrator:${POLICY_DOCKER_VERSION}
56      container_name: policy-db-migrator-clamp
57      hostname: policy-db-migrator-clamp
58      depends_on:
59        - mariadb
60      expose:
61        - 6824
62      env_file: ./config/db/db.conf
63      environment:
64        SQL_DB: clampacm
65        SQL_HOST: mariadb
66      volumes:
67        - ./config/db-migrator/init.sh:/opt/app/policy/bin/db_migrator_policy_init.sh:ro
68        - ./wait_for_port.sh:/opt/app/policy/bin/wait_for_port.sh:ro
69      entrypoint: /opt/app/policy/bin/wait_for_port.sh
70      command: [
71        '-c',
72        '/opt/app/policy/bin/db_migrator_policy_init.sh',
73        'mariadb', '3306'
74      ]
75    simulator:
76       image: ${CONTAINER_LOCATION}onap/policy-models-simulator:${POLICY_MODELS_VERSION}
77       container_name: simulator
78       hostname: simulator
79       networks:
80           default:
81               aliases:
82                   - aai-sim
83                   - grpc-sim
84                   - sdnc-sim
85                   - so-sim
86                   - vfc-sim
87       volumes:
88        - ./config/sim-all:/opt/app/policy/simulators/etc/mounted:ro
89        - ./config/sim-all/logback.xml:/opt/app/policy/simulators/etc/mounted/logback.xml:ro
90       expose:
91        - 6666
92        - 6668
93        - 6669
94        - 6670
95        - 6680
96       ports:
97        - ${SIMULATOR_PORT}:6666
98    api:
99       image: ${CONTAINER_LOCATION}onap/policy-api:${POLICY_API_VERSION}
100       container_name: policy-api
101       depends_on:
102        - policy-db-migrator
103       hostname: policy-api
104       ports:
105        - ${API_PORT}:6969
106       volumes:
107        - ./config/api/apiParameters.yaml:/opt/app/policy/api/etc/apiParameters.yaml:ro
108        - ./config/api/logback.xml:/opt/app/policy/api/etc/logback.xml:ro
109        - ./wait_for_port.sh:/opt/app/policy/api/bin/wait_for_port.sh:ro
110       entrypoint: ./wait_for_port.sh
111       command: [
112         '-c', './policy-api.sh',
113         'mariadb', '3306',
114         'policy-db-migrator', '6824'
115         ]
116    pap:
117       image: ${CONTAINER_LOCATION}onap/policy-pap:${POLICY_PAP_VERSION}
118       container_name: policy-pap
119       depends_on:
120        - mariadb
121        - kafka
122        - api
123       hostname: policy-pap
124       ports:
125        - ${PAP_PORT}:6969
126       volumes:
127        - ./config/pap/papParameters.yaml:/opt/app/policy/pap/etc/papParameters.yaml:ro
128        - ./config/${PROJECT}/groups.json:/opt/app/policy/pap/etc/mounted/groups.json:ro
129        - ./config/pap/logback.xml:/opt/app/policy/pap/etc/logback.xml:ro
130        - ./wait_for_port.sh:/opt/app/policy/pap/bin/wait_for_port.sh:ro
131       entrypoint: ./wait_for_port.sh
132       command: [
133         '-c', './policy-pap.sh',
134         'mariadb', '3306',
135         'kafka', '9092',
136         'api', '6969'
137         ]
138    xacml-pdp:
139       image: ${CONTAINER_LOCATION}onap/policy-xacml-pdp:${POLICY_XACML_PDP_VERSION}
140       container_name: policy-xacml-pdp
141       depends_on:
142        - mariadb
143        - kafka
144        - pap
145       hostname: policy-xacml-pdp
146       ports:
147        - ${XACML_PORT}:6969
148        - "30999:3904"
149       volumes:
150        - ./config/xacml-pdp/defaultConfig.json:/opt/app/policy/pdpx/etc/defaultConfig.json:ro
151        - ./config/xacml-pdp/logback.xml:/opt/app/policy/pdpx/etc/logback.xml:ro
152        - ./wait_for_port.sh:/opt/app/policy/pdpx/bin/wait_for_port.sh:ro
153       entrypoint: ./wait_for_port.sh
154       command: [
155         '-c', './policy-pdpx.sh',
156         'mariadb', '3306',
157         'kafka', '9092',
158         'pap', '6969'
159         ]
160    drools-pdp:
161       image: ${CONTAINER_LOCATION}onap/policy-drools:${POLICY_DROOLS_PDP_VERSION}
162       container_name: drools
163       depends_on:
164        - mariadb
165        - kafka
166        - pap
167       hostname: drools
168       ports:
169        - ${DROOLS_PORT}:6969
170        - ${DROOLS_TELEMETRY_PORT}:9696
171       volumes:
172        - ./config/drools-pdp/custom:/tmp/policy-install/config:ro
173        - ./wait_for_port.sh:/opt/app/policy/bin/wait_for_port.sh:ro
174       env_file:
175         - ./config/drools-pdp/env/base.conf
176       entrypoint: /opt/app/policy/bin/wait_for_port.sh
177       command: [
178         '-c', '/opt/app/policy/bin/pdpd-entrypoint.sh boot',
179         'mariadb', '3306',
180         'kafka', '9092'
181         ]
182    drools-applications:
183       image: ${CONTAINER_LOCATION}onap/policy-pdpd-cl:${POLICY_DROOLS_APPS_VERSION}
184       container_name: drools-apps
185       depends_on:
186        - mariadb
187        - simulator
188        - kafka
189        - pap
190        - xacml-pdp
191       hostname: drools-apps
192       ports:
193        - ${DROOLS_APPS_PORT}:6969
194        - ${DROOLS_APPS_TELEMETRY_PORT}:9696
195       volumes:
196        - ./config/drools-applications/custom:/tmp/policy-install/config:ro
197        - ./wait_for_port.sh:/opt/app/policy/bin/wait_for_port.sh:ro
198       env_file:
199         - ./config/drools-applications/env/base.conf
200         - ./config/drools-applications/env/feature-healthcheck.conf
201         - ./config/drools-applications/env/feature-pooling-kafka.conf
202       entrypoint: /opt/app/policy/bin/wait_for_port.sh
203       command: [
204         '-c', '/opt/app/policy/bin/pdpd-cl-entrypoint.sh boot',
205         'mariadb', '3306',
206         'kafka', '9092',
207         'pap', '6969',
208         'aai-sim', '6666',
209         'sdnc-sim', '6668',
210         'so-sim', '6669',
211         'vfc-sim', '6670'
212         ]
213    apex-pdp:
214       image: ${CONTAINER_LOCATION}onap/policy-apex-pdp:${POLICY_APEX_PDP_VERSION}
215       container_name: policy-apex-pdp
216       depends_on:
217        - mariadb
218        - simulator
219        - kafka
220        - pap
221       hostname: policy-apex-pdp
222       ports:
223        - ${APEX_PORT}:6969
224        - ${APEX_EVENTS_PORT}:23324
225       volumes:
226        - ./config/apex-pdp/OnapPfConfig.json:/opt/app/policy/apex-pdp/etc/onappf/config/OnapPfConfig.json:ro
227        - ./config/apex-pdp/logback.xml:/opt/app/policy/apex-pdp/etc/logback.xml:ro
228        - ./wait_for_port.sh:/opt/app/policy/bin/wait_for_port.sh:ro
229       entrypoint: /opt/app/policy/bin/wait_for_port.sh
230       command: [
231         '-c', '/opt/app/policy/apex-pdp/bin/apexOnapPf.sh -c /opt/app/policy/apex-pdp/etc/onappf/config/OnapPfConfig.json',
232         'mariadb', '3306',
233         'kafka', '9092',
234         'pap', '6969'
235         ]
236    distribution:
237       image: ${CONTAINER_LOCATION}onap/policy-distribution:${POLICY_DISTRIBUTION_VERSION}
238       container_name: policy-distribution
239       depends_on:
240        - mariadb
241        - api
242        - pap
243        - apex-pdp
244       hostname: policy-distribution
245       ports:
246        - ${DIST_PORT}:6969
247       volumes:
248        - ./config/distribution/defaultConfig.json:/opt/app/policy/distribution/etc/defaultConfig.json:ro
249        - /tmp/distribution/:/opt/app/policy/distribution/etc/temp/:ro
250        - ./config/distribution/logback.xml:/opt/app/policy/distribution/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', './policy-dist.sh',
255         'mariadb', '3306',
256         'kafka', '9092',
257         'pap', '6969',
258         'apex-pdp', '6969'
259         ]
260    policy-clamp-runtime-acm:
261       image: ${CONTAINER_LOCATION}onap/policy-clamp-runtime-acm:${POLICY_CLAMP_VERSION}
262       container_name: policy-clamp-runtime-acm
263       depends_on:
264        - policy-db-migrator-clamp
265        - kafka
266        - policy-clamp-ac-http-ppnt
267        - policy-clamp-ac-k8s-ppnt
268        - policy-clamp-ac-pf-ppnt
269        - policy-clamp-ac-sim-ppnt
270        - apex-pdp
271       hostname: policy-clamp-runtime-acm
272       ports:
273        - ${ACM_PORT}:6969
274       volumes:
275        - ./config/clamp/AcRuntimeParameters.yaml:/opt/app/policy/clamp/etc/AcRuntimeParameters.yaml
276        - ./config/clamp/logback.xml:/opt/app/policy/clamp/etc/logback.xml:ro
277        - ./wait_for_port.sh:/opt/app/policy/bin/wait_for_port.sh:ro
278       entrypoint: /opt/app/policy/bin/wait_for_port.sh
279       command: [
280         '-c', './acm-runtime.sh',
281         'mariadb', '3306',
282         'kafka', '9092',
283         'policy-clamp-ac-http-ppnt', '6969',
284         'policy-clamp-ac-k8s-ppnt', '6969',
285         'policy-clamp-ac-pf-ppnt', '6969',
286         'apex-pdp', '6969'
287         ]
288
289    policy-clamp-ac-http-ppnt:
290       image: ${CONTAINER_LOCATION}onap/policy-clamp-ac-http-ppnt:${POLICY_CLAMP_PPNT_VERSION}
291       container_name: policy-clamp-ac-http-ppnt
292       depends_on:
293        - kafka
294       hostname: policy-clamp-ac-http-ppnt
295       ports:
296        - "30290:6969"
297       volumes:
298        - ./config/clamp/HttpParticipantParameters.yaml:/opt/app/policy/clamp/etc/HttpParticipantParameters.yaml
299        - ./config/clamp/logback.xml:/opt/app/policy/clamp/etc/logback.xml:ro
300        - ./wait_for_port.sh:/opt/app/policy/bin/wait_for_port.sh:ro
301       entrypoint: /opt/app/policy/bin/wait_for_port.sh
302       command: [
303         '-c', './http-participant.sh',
304         'kafka', '9092'
305         ]
306    policy-clamp-ac-k8s-ppnt:
307       image: ${CONTAINER_LOCATION}onap/policy-clamp-ac-k8s-ppnt:${POLICY_CLAMP_PPNT_VERSION}
308       container_name: policy-clamp-ac-k8s-ppnt
309       depends_on:
310        - kafka
311       hostname: policy-clamp-ac-k8s-ppnt
312       ports:
313        - "30295:6969"
314       volumes:
315        - ./config/clamp/KubernetesParticipantParameters.yaml:/opt/app/policy/clamp/etc/KubernetesParticipantParameters.yaml
316        - ./config/clamp/logback.xml:/opt/app/policy/clamp/etc/logback.xml:ro
317        - ./wait_for_port.sh:/opt/app/policy/bin/wait_for_port.sh:ro
318       entrypoint: /opt/app/policy/bin/wait_for_port.sh
319       command: [
320         '-c', './kubernetes-participant.sh',
321         'kafka', '9092'
322         ]
323    policy-clamp-ac-pf-ppnt:
324       image: ${CONTAINER_LOCATION}onap/policy-clamp-ac-pf-ppnt:${POLICY_CLAMP_PPNT_VERSION}
325       container_name: policy-clamp-ac-pf-ppnt
326       depends_on:
327        - kafka
328        - api
329       hostname: policy-clamp-ac-pf-ppnt
330       ports:
331        - ${POLICY_PARTICIPANT_PORT}:6969
332       volumes:
333        - ./config/clamp/PolicyParticipantParameters.yaml:/opt/app/policy/clamp/etc/PolicyParticipantParameters.yaml:ro
334        - ./config/clamp/logback.xml:/opt/app/policy/clamp/etc/logback.xml:ro
335        - ./wait_for_port.sh:/opt/app/policy/bin/wait_for_port.sh:ro
336       entrypoint: /opt/app/policy/bin/wait_for_port.sh
337       command: [
338         '-c', './policy-participant.sh',
339         'kafka', '9092',
340         'api', '6969'
341         ]
342    policy-clamp-ac-a1pms-ppnt:
343       image: ${CONTAINER_LOCATION}onap/policy-clamp-ac-a1pms-ppnt:${POLICY_CLAMP_PPNT_VERSION}
344       container_name: policy-clamp-ac-a1pms-ppnt
345       depends_on:
346        - kafka
347       hostname: policy-clamp-ac-a1pms-ppnt
348       ports:
349        - "30296:6969"
350       volumes:
351        - ./config/clamp/A1pmsParticipantParameters.yaml:/opt/app/policy/clamp/etc/A1pmsParticipantParameters.yaml:ro
352        - ./config/clamp/logback.xml:/opt/app/policy/clamp/etc/logback.xml:ro
353        - ./wait_for_port.sh:/opt/app/policy/bin/wait_for_port.sh:ro
354       entrypoint: /opt/app/policy/bin/wait_for_port.sh
355       command: [
356         '-c', './a1pms-participant.sh',
357         'kafka', '9092'
358         ]
359    policy-clamp-ac-kserve-ppnt:
360       image: ${CONTAINER_LOCATION}onap/policy-clamp-ac-kserve-ppnt:${POLICY_CLAMP_PPNT_VERSION}
361       container_name: policy-clamp-ac-kserve-ppnt
362       depends_on:
363        - kafka
364       hostname: policy-clamp-ac-kserve-ppnt
365       ports:
366        - "30297:6969"
367       volumes:
368        - ./config/clamp/KserveParticipantParameters.yaml:/opt/app/policy/clamp/etc/KserveParticipantParameters.yaml:ro
369        - ./config/clamp/logback.xml:/opt/app/policy/clamp/etc/logback.xml:ro
370        - ./wait_for_port.sh:/opt/app/policy/bin/wait_for_port.sh:ro
371       entrypoint: /opt/app/policy/bin/wait_for_port.sh
372       command: [
373         '-c', './kserve-participant.sh',
374         'kafka', '9092'
375         ]
376    policy-clamp-ac-sim-ppnt:
377       image: ${CONTAINER_LOCATION}onap/policy-clamp-ac-sim-ppnt:${POLICY_CLAMP_VERSION}
378       container_name: policy-clamp-ac-sim-ppnt
379       depends_on:
380         - kafka
381       hostname: policy-clamp-ac-sim-ppnt
382       ports:
383         - ${SIM_PARTICIPANT_PORT}:6969
384       volumes:
385         - ./config/clamp/SimulatorParticipantParameters.yaml:/opt/app/policy/clamp/etc/SimulatorParticipantParameters.yaml:ro
386         - ./config/clamp/logback.xml:/opt/app/policy/clamp/etc/logback.xml:ro
387         - ./wait_for_port.sh:/opt/app/policy/bin/wait_for_port.sh:ro
388       entrypoint: /opt/app/policy/bin/wait_for_port.sh
389       command: [
390         '-c', './sim-participant.sh',
391         'kafka', '9092'
392       ]
393    prometheus:
394       image: nexus3.onap.org:10001/prom/prometheus:latest
395       container_name: prometheus
396       hostname: prometheus
397       ports:
398        - ${PROMETHEUS_PORT}:9090
399       volumes:
400        - ./metrics/prometheus.yml:/etc/prometheus/prometheus.yml
401    grafana:
402       image: nexus3.onap.org:10001/grafana/grafana:latest
403       container_name: grafana
404       depends_on:
405        - prometheus
406       hostname: grafana
407       ports:
408        - ${GRAFANA_PORT}:3000
409       volumes:
410        - ./metrics/dashboard.yaml:/etc/grafana/provisioning/dashboards/dashboard.yaml
411        - ./metrics/datasource.yaml:/etc/grafana/provisioning/datasources/datasource.yaml
412        - ./metrics/dashboards:/var/lib/grafana/dashboards
413
414    zookeeper:
415      image: confluentinc/cp-zookeeper:latest
416      environment:
417        ZOOKEEPER_CLIENT_PORT: 2181
418        ZOOKEEPER_TICK_TIME: 2000
419      ports:
420        - 2181:2181
421
422    kafka:
423      image: confluentinc/cp-kafka:latest
424      container_name: kafka
425      depends_on:
426        - zookeeper
427      ports:
428        - 29092:29092
429        - 9092:9092
430      environment:
431        KAFKA_BROKER_ID: 1
432        KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
433        KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka:9092,PLAINTEXT_HOST://localhost:29092
434        KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXT,PLAINTEXT_HOST:PLAINTEXT
435        KAFKA_INTER_BROKER_LISTENER_NAME: PLAINTEXT
436        KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1