2607385de74b6ef9ac639d39f33d933df3583a34
[cps.git] / docker-compose / docker-compose.yml
1 # ============LICENSE_START=======================================================
2 # Copyright (c) 2020 Pantheon.tech.
3 # Modifications Copyright (C) 2021 Bell Canada.
4 # Modifications Copyright (C) 2022-2023 Nordix Foundation.
5 # ================================================================================
6 # Licensed under the Apache License, Version 2.0 (the "License");
7 # you may not use this file except in compliance with the License.
8 # You may obtain a copy of the License at
9 #
10 #       http://www.apache.org/licenses/LICENSE-2.0
11 #
12 # Unless required by applicable law or agreed to in writing, software
13 # distributed under the License is distributed on an "AS IS" BASIS,
14 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 # See the License for the specific language governing permissions and
16 # limitations under the License.
17 # ============LICENSE_END=========================================================
18
19 services:
20
21   ### docker-compose --profile dmi-service up -d -> run CPS services incl. dmi-plugin ###
22   ### docker-compose --profile dmi-stub --profile monitoring up -d -> run CPS with stubbed dmi-plugin (for registration performance testing)
23   ### to disable notifications make notification.enabled to false & comment out kafka/zookeeper services ###
24
25   dbpostgresql:
26     container_name: dbpostgresql
27     image: postgres:14.1-alpine
28     ports:
29       - ${DB_PORT:-5432}:5432
30     environment:
31       POSTGRES_DB: cpsdb
32       POSTGRES_USER: ${DB_USERNAME:-cps}
33       POSTGRES_PASSWORD: ${DB_PASSWORD:-cps}
34
35   cps-and-ncmp:
36     container_name: cps-and-ncmp
37     image: ${DOCKER_REPO:-nexus3.onap.org:10003}/onap/cps-and-ncmp:${CPS_VERSION:-latest}
38     ports:
39       - ${CPS_CORE_PORT:-8883}:8080
40       - ${CPS_CORE_MANAGEMENT_PORT:-8887}:8081
41       - ${CPS_CORE_DEBUG_PORT:-5005}:5005
42     environment:
43       CPS_USERNAME: ${CPS_CORE_USERNAME:-cpsuser}
44       CPS_PASSWORD: ${CPS_CORE_PASSWORD:-cpsr0cks!}
45       DB_HOST: ${DB_HOST:-dbpostgresql}
46       DB_USERNAME: ${DB_USERNAME:-cps}
47       DB_PASSWORD: ${DB_PASSWORD:-cps}
48       DMI_USERNAME: ${DMI_USERNAME:-cpsuser}
49       DMI_PASSWORD: ${DMI_PASSWORD:-cpsr0cks!}
50       KAFKA_BOOTSTRAP_SERVER: kafka:29092
51       notification.enabled: 'true'
52       notification.async.executor.time-out-value-in-ms: 2000
53       NOTIFICATION_DATASPACE_FILTER_PATTERNS: '.*'
54       NCMP_TIMERS_ADVISED-MODULES-SYNC_SLEEP-TIME-MS: ${ADVISED_MODULES_SYNC_SLEEP_TIME_MS:-30000}
55       NCMP_TIMERS_CM-HANDLE-DATA-SYNC_SLEEP-TIME-MS: ${CMHANDLE_DATA_SYNC_SLEEP_TIME_MS:-30000}
56       JAVA_TOOL_OPTIONS: -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5005
57     restart: unless-stopped
58     depends_on:
59       - dbpostgresql
60
61   ### if kafka is not required comment out zookeeper and kafka ###
62   zookeeper:
63     image: confluentinc/cp-zookeeper:6.2.1
64     container_name: zookeeper
65     ports:
66       - '2181:2181'
67     environment:
68       ZOOKEEPER_CLIENT_PORT: 2181
69
70   kafka:
71     image: confluentinc/cp-kafka:6.2.1
72     container_name: kafka
73     ports:
74       - '9092:9092'
75     depends_on:
76       - zookeeper
77     environment:
78       KAFKA_BROKER_ID: 1
79       KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
80       KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXT,CONNECTIONS_FROM_HOST:PLAINTEXT
81       KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka:29092,CONNECTIONS_FROM_HOST://localhost:9092
82       KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
83
84   ncmp-dmi-plugin:
85     container_name: ncmp-dmi-plugin
86     image: ${DOCKER_REPO:-nexus3.onap.org:10003}/onap/ncmp-dmi-plugin:${DMI_VERSION:-1.4.0-SNAPSHOT-latest}
87     ports:
88       - ${DMI_PORT:-8783}:8080
89       - ${DMI_MANAGEMENT_PORT:-8787}:8081
90     environment:
91       CPS_USERNAME: ${CPS_CORE_USERNAME:-cpsuser}
92       CPS_PASSWORD: ${CPS_CORE_PASSWORD:-cpsr0cks!}
93       CPS_CORE_HOST: ${CPS_CORE_HOST:-cps-and-ncmp}
94       CPS_CORE_PORT: ${CPS_CORE_PORT:-8080}
95       CPS_CORE_USERNAME: ${CPS_CORE_USERNAME:-cpsuser}
96       CPS_CORE_PASSWORD: ${CPS_CORE_PASSWORD:-cpsr0cks!}
97       SDNC_HOST: ${SDNC_HOST:-sdnc}
98       SDNC_PORT: ${SDNC_PORT:-8181}
99       SDNC_USERNAME: ${SDNC_USERNAME:-admin}
100       SDNC_PASSWORD: ${SDNC_PASSWORD:-Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U}
101       DMI_SERVICE_URL: ${DMI_SERVICE_URL:-http://ncmp-dmi-plugin:8783}
102       DMI_SERVICE_NAME: ${DMI_SERVICE_NAME:-dminame1}
103       DMI_USERNAME: ${DMI_USERNAME:-cpsuser}
104       DMI_PASSWORD: ${DMI_PASSWORD:-cpsr0cks!}
105       KAFKA_BOOTSTRAP_SERVER: kafka:29092
106       notification.data-updated.enabled: 'true'
107       NOTIFICATION_DATASPACE_FILTER_PATTERNS: '.*'
108     restart: unless-stopped
109     profiles:
110       - dmi-service
111
112   ncmp-dmi-plugin-demo-and-csit-stub:
113     container_name: ncmp-dmi-plugin-demo-and-csit-stub
114     image: ${DOCKER_REPO:-nexus3.onap.org:10003}/onap/dmi-plugin-demo-and-csit-stub:${DMI_DEMO_STUB_VERSION:-latest}
115     ports:
116       - ${DMI_DEMO_STUB_PORT:-8784}:8092
117     environment:
118       KAFKA_BOOTSTRAP_SERVER: kafka:29092
119       NCMP_CONSUMER_GROUP_ID: ncmp-group
120       NCMP_ASYNC_M2M_TOPIC: ncmp-async-m2m
121     restart: unless-stopped
122     profiles:
123       - dmi-stub
124       - dmi-service
125
126   prometheus:
127     container_name: prometheus-container
128     image: prom/prometheus:latest
129     ports:
130       - 9090:9090
131     restart: always
132     volumes:
133       - ./prometheus.yml:/etc/prometheus/prometheus.yml
134     profiles:
135       - monitoring
136
137   grafana:
138     image: grafana/grafana-oss:latest
139     user: ""
140     container_name: grafana-container
141     depends_on:
142       prometheus:
143         condition: service_started
144     ports:
145       - 3000:3000
146     volumes:
147       - grafana:/var/lib/grafana
148     environment:
149       - GF_SECURITY_ADMIN_PASSWORD=admin
150       - GF_SERVER_DOMAIN:localhost
151     profiles:
152       - monitoring
153
154 volumes:
155   grafana: