| # ============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: |
| - ./config/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: |
| - ./config/nginx/nginx.conf:/etc/nginx/nginx.conf |
| - ./config/nginx/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_INITIAL_PROCESSING_DELAY_MS: 0 |
| 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 |
| image: prom/prometheus:latest |
| ports: |
| - 9090:9090 |
| restart: always |
| volumes: |
| - ./config/prometheus.yml:/etc/prometheus/prometheus.yml |
| profiles: |
| - monitoring |
| |
| grafana: |
| image: grafana/grafana-oss:latest |
| user: "" |
| container_name: grafana |
| depends_on: |
| prometheus: |
| condition: service_started |
| ports: |
| - 3000:3000 |
| volumes: |
| - ./config/grafana/provisioning/:/etc/grafana/provisioning/ |
| - ./config/grafana/jvm-micrometer-dashboard.json:/var/lib/grafana/dashboards/jvm-micrometer-dashboard.json |
| - 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: |