# ============LICENSE_START======================================================= # Copyright (c) 2020 Pantheon.tech. # Modifications Copyright (C) 2021 Bell Canada. # Modifications Copyright (C) 2022-2024 Nordix Foundation. # ================================================================================ # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # ============LICENSE_END========================================================= services: ### docker-compose --profile dmi-service up -d -> run CPS services incl. dmi-plugin ### ### docker-compose --profile dmi-stub --profile monitoring up -d -> run CPS with stubbed dmi-plugin (for registration performance testing) ### docker-compose --profile dmi-stub --profile tracing up -d -> run CPS with stubbed dmi-plugin (for open telemetry tracing testing make ONAP_TRACING_ENABLED "true" later "http://localhost:16686" can be accessed from browser) ### to disable notifications make notification.enabled to false & comment out kafka/zookeeper services ### dbpostgresql: container_name: dbpostgresql image: postgres:14.1-alpine ports: - ${DB_PORT:-5432}:5432 environment: POSTGRES_DB: cpsdb POSTGRES_USER: ${DB_USERNAME:-cps} POSTGRES_PASSWORD: ${DB_PASSWORD:-cps} volumes: - ./postgres-init.sql:/docker-entrypoint-initdb.d/postgres-init.sql deploy: resources: reservations: cpus: '1' memory: 1G limits: cpus: '6' memory: 3G cps-and-ncmp: image: ${DOCKER_REPO:-nexus3.onap.org:10003}/onap/cps-and-ncmp:${CPS_VERSION:-latest} environment: CPS_USERNAME: ${CPS_CORE_USERNAME:-cpsuser} CPS_PASSWORD: ${CPS_CORE_PASSWORD:-cpsr0cks!} DB_HOST: ${DB_HOST:-dbpostgresql} DB_USERNAME: ${DB_USERNAME:-cps} DB_PASSWORD: ${DB_PASSWORD:-cps} DMI_USERNAME: ${DMI_USERNAME:-cpsuser} DMI_PASSWORD: ${DMI_PASSWORD:-cpsr0cks!} KAFKA_BOOTSTRAP_SERVER: kafka:29092 notification.enabled: 'true' ONAP_TRACING_ENABLED: 'false' ONAP_OTEL_SAMPLER_JAEGER_REMOTE_ENDPOINT: http://jaeger-service:14250 ONAP_OTEL_EXPORTER_ENDPOINT: http://jaeger-service:4317 restart: unless-stopped depends_on: - dbpostgresql deploy: replicas: 2 resources: reservations: cpus: '2' memory: 2G limits: cpus: '3' memory: 3G nginx: container_name: nginx-loadbalancer image: nginx:latest ports: - ${CPS_CORE_PORT:-8883}:80 depends_on: - cps-and-ncmp volumes: - ./nginx.conf:/etc/nginx/nginx.conf - ./proxy_params:/etc/nginx/proxy_params ### if kafka is not required comment out zookeeper and kafka ### zookeeper: image: confluentinc/cp-zookeeper:6.2.1 container_name: zookeeper ports: - '2181:2181' environment: ZOOKEEPER_CLIENT_PORT: 2181 kafka: image: confluentinc/cp-kafka:6.2.1 container_name: kafka ports: - '9092:9092' depends_on: - zookeeper environment: KAFKA_BROKER_ID: 1 KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181 KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXT,CONNECTIONS_FROM_HOST:PLAINTEXT KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka:29092,CONNECTIONS_FROM_HOST://localhost:9092 KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1 ncmp-dmi-plugin: container_name: ncmp-dmi-plugin image: ${DOCKER_REPO:-nexus3.onap.org:10003}/onap/ncmp-dmi-plugin:${DMI_VERSION:-1.6.0-SNAPSHOT-latest} ports: - ${DMI_PORT:-8783}:8080 environment: CPS_USERNAME: ${CPS_CORE_USERNAME:-cpsuser} CPS_PASSWORD: ${CPS_CORE_PASSWORD:-cpsr0cks!} CPS_CORE_HOST: ${CPS_CORE_HOST:-cps-and-ncmp} CPS_CORE_PORT: ${CPS_CORE_PORT:-8080} CPS_CORE_USERNAME: ${CPS_CORE_USERNAME:-cpsuser} CPS_CORE_PASSWORD: ${CPS_CORE_PASSWORD:-cpsr0cks!} SDNC_HOST: ${SDNC_HOST:-sdnc} SDNC_PORT: ${SDNC_PORT:-8181} SDNC_USERNAME: ${SDNC_USERNAME:-admin} SDNC_PASSWORD: ${SDNC_PASSWORD:-Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U} DMI_SERVICE_URL: ${DMI_SERVICE_URL:-http://ncmp-dmi-plugin:8783} DMI_SERVICE_NAME: ${DMI_SERVICE_NAME:-dminame1} DMI_USERNAME: ${DMI_USERNAME:-cpsuser} DMI_PASSWORD: ${DMI_PASSWORD:-cpsr0cks!} KAFKA_BOOTSTRAP_SERVER: kafka:29092 restart: unless-stopped profiles: - dmi-service ncmp-dmi-plugin-demo-and-csit-stub: container_name: ncmp-dmi-plugin-demo-and-csit-stub image: ${DOCKER_REPO:-nexus3.onap.org:10003}/onap/dmi-plugin-demo-and-csit-stub:${DMI_DEMO_STUB_VERSION:-latest} ports: - ${DMI_DEMO_STUB_PORT:-8784}:8092 environment: KAFKA_BOOTSTRAP_SERVER: kafka:29092 NCMP_CONSUMER_GROUP_ID: ncmp-group NCMP_ASYNC_M2M_TOPIC: ncmp-async-m2m MODULE_REFERENCES_DELAY_MS: 100 MODULE_RESOURCES_DELAY_MS: 1000 READ_DATA_FOR_CM_HANDLE_DELAY_MS: 300 WRITE_DATA_FOR_CM_HANDLE_DELAY_MS: 670 restart: unless-stopped profiles: - dmi-stub - dmi-service policy-executor-stub: container_name: policy-executor-stub image: ${DOCKER_REPO:-nexus3.onap.org:10003}/onap/policy-executor-stub:latest ports: - 8785:8080 restart: unless-stopped profiles: - policy-executor-stub prometheus: container_name: prometheus-container image: prom/prometheus:latest ports: - 9090:9090 restart: always volumes: - ./prometheus.yml:/etc/prometheus/prometheus.yml profiles: - monitoring grafana: image: grafana/grafana-oss:latest user: "" container_name: grafana-container depends_on: prometheus: condition: service_started ports: - 3000:3000 volumes: - grafana:/var/lib/grafana environment: - GF_SECURITY_ADMIN_PASSWORD=admin - GF_SERVER_DOMAIN:localhost profiles: - monitoring kafka-ui: container_name: kafka-ui image: provectuslabs/kafka-ui:latest ports: - 8089:8080 environment: DYNAMIC_CONFIG_ENABLED: 'true' KAFKA_CLUSTERS_0_NAME: 'cps-kafka-local' KAFKA_CLUSTERS_0_BOOTSTRAPSERVERS: kafka:29092 profiles: - monitoring jaeger-service: container_name: jaeger-service image: jaegertracing/all-in-one:latest ports: - 16686:16686 restart: unless-stopped profiles: - tracing volumes: grafana: