Set CPS Project Status to 'Mature'
[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-2024 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     volumes:
35       - ./postgres-init.sql:/docker-entrypoint-initdb.d/postgres-init.sql
36     deploy:
37       resources:
38         reservations:
39           cpus: '1'
40           memory: 1G
41         limits:
42           cpus: '6'
43           memory: 3G
44
45   cps-and-ncmp:
46     container_name: cps-and-ncmp
47     image: ${DOCKER_REPO:-nexus3.onap.org:10003}/onap/cps-and-ncmp:${CPS_VERSION:-latest}
48     ports:
49       - ${CPS_CORE_PORT:-8883}:8080
50       - ${CPS_CORE_DEBUG_PORT:-5005}:5005
51     environment:
52       CPS_USERNAME: ${CPS_CORE_USERNAME:-cpsuser}
53       CPS_PASSWORD: ${CPS_CORE_PASSWORD:-cpsr0cks!}
54       DB_HOST: ${DB_HOST:-dbpostgresql}
55       DB_USERNAME: ${DB_USERNAME:-cps}
56       DB_PASSWORD: ${DB_PASSWORD:-cps}
57       DMI_USERNAME: ${DMI_USERNAME:-cpsuser}
58       DMI_PASSWORD: ${DMI_PASSWORD:-cpsr0cks!}
59       KAFKA_BOOTSTRAP_SERVER: kafka:29092
60       notification.enabled: 'true'
61       JAVA_TOOL_OPTIONS: -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5005
62     restart: unless-stopped
63     depends_on:
64       - dbpostgresql
65     deploy:
66       resources:
67         reservations:
68           cpus: '2'
69           memory: 2G
70         limits:
71           cpus: '3'
72           memory: 3G
73
74   ### if kafka is not required comment out zookeeper and kafka ###
75   zookeeper:
76     image: confluentinc/cp-zookeeper:6.2.1
77     container_name: zookeeper
78     ports:
79       - '2181:2181'
80     environment:
81       ZOOKEEPER_CLIENT_PORT: 2181
82
83   kafka:
84     image: confluentinc/cp-kafka:6.2.1
85     container_name: kafka
86     ports:
87       - '9092:9092'
88     depends_on:
89       - zookeeper
90     environment:
91       KAFKA_BROKER_ID: 1
92       KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
93       KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXT,CONNECTIONS_FROM_HOST:PLAINTEXT
94       KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka:29092,CONNECTIONS_FROM_HOST://localhost:9092
95       KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
96
97   ncmp-dmi-plugin:
98     container_name: ncmp-dmi-plugin
99     image: ${DOCKER_REPO:-nexus3.onap.org:10003}/onap/ncmp-dmi-plugin:${DMI_VERSION:-1.5.0-SNAPSHOT-latest}
100     ports:
101       - ${DMI_PORT:-8783}:8080
102     environment:
103       CPS_USERNAME: ${CPS_CORE_USERNAME:-cpsuser}
104       CPS_PASSWORD: ${CPS_CORE_PASSWORD:-cpsr0cks!}
105       CPS_CORE_HOST: ${CPS_CORE_HOST:-cps-and-ncmp}
106       CPS_CORE_PORT: ${CPS_CORE_PORT:-8080}
107       CPS_CORE_USERNAME: ${CPS_CORE_USERNAME:-cpsuser}
108       CPS_CORE_PASSWORD: ${CPS_CORE_PASSWORD:-cpsr0cks!}
109       SDNC_HOST: ${SDNC_HOST:-sdnc}
110       SDNC_PORT: ${SDNC_PORT:-8181}
111       SDNC_USERNAME: ${SDNC_USERNAME:-admin}
112       SDNC_PASSWORD: ${SDNC_PASSWORD:-Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U}
113       DMI_SERVICE_URL: ${DMI_SERVICE_URL:-http://ncmp-dmi-plugin:8783}
114       DMI_SERVICE_NAME: ${DMI_SERVICE_NAME:-dminame1}
115       DMI_USERNAME: ${DMI_USERNAME:-cpsuser}
116       DMI_PASSWORD: ${DMI_PASSWORD:-cpsr0cks!}
117       KAFKA_BOOTSTRAP_SERVER: kafka:29092
118     restart: unless-stopped
119     profiles:
120       - dmi-service
121
122   ncmp-dmi-plugin-demo-and-csit-stub:
123     container_name: ncmp-dmi-plugin-demo-and-csit-stub
124     image: ${DOCKER_REPO:-nexus3.onap.org:10003}/onap/dmi-plugin-demo-and-csit-stub:${DMI_DEMO_STUB_VERSION:-latest}
125     ports:
126       - ${DMI_DEMO_STUB_PORT:-8784}:8092
127     environment:
128       KAFKA_BOOTSTRAP_SERVER: kafka:29092
129       NCMP_CONSUMER_GROUP_ID: ncmp-group
130       NCMP_ASYNC_M2M_TOPIC: ncmp-async-m2m
131       MODULE_REFERENCES_DELAY_MS: 100
132       MODULE_RESOURCES_DELAY_MS: 1000
133       DATA_FOR_CM_HANDLE_DELAY_MS: 2500
134     restart: unless-stopped
135     profiles:
136       - dmi-stub
137       - dmi-service
138
139   prometheus:
140     container_name: prometheus-container
141     image: prom/prometheus:latest
142     ports:
143       - 9090:9090
144     restart: always
145     volumes:
146       - ./prometheus.yml:/etc/prometheus/prometheus.yml
147     profiles:
148       - monitoring
149
150   grafana:
151     image: grafana/grafana-oss:latest
152     user: ""
153     container_name: grafana-container
154     depends_on:
155       prometheus:
156         condition: service_started
157     ports:
158       - 3000:3000
159     volumes:
160       - grafana:/var/lib/grafana
161     environment:
162       - GF_SECURITY_ADMIN_PASSWORD=admin
163       - GF_SERVER_DOMAIN:localhost
164     profiles:
165       - monitoring
166
167 volumes:
168   grafana: