# ============LICENSE_START=======================================================
# Copyright (c) 2020 Pantheon.tech.
# Modifications Copyright (C) 2021 Bell Canada.
# Modifications Copyright (C) 2021 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=========================================================

version: "3.7"

services:
  #cps-standalone:
  #  container_name: cps-service
  #  image: ${DOCKER_REPO:-nexus3.onap.org:10003}/onap/cps-service:${VERSION:-latest}
  #  ports:
  #    - "8881:8080"
  #    - "8887:8081"
  #  environment:
  #    CPS_USERNAME: ${CPS_USERNAME:-cpsuser}
  #    CPS_PASSWORD: ${CPS_PASSWORD:-cpsr0cks!}
  #    DB_HOST: dbpostgresql
  #    DB_USERNAME: ${DB_USERNAME:-cps}
  #    DB_PASSWORD: ${DB_PASSWORD:-cps}
  #    #KAFKA_BOOTSTRAP_SERVER: kafka:9092
  #    #notification.data-updated.enabled: 'true'
  #  restart: unless-stopped
  #  depends_on:
  #    - dbpostgresql

  #ncmp-standalone:
  #  container_name: cps-ncmp
  #  image: ${DOCKER_REPO:-nexus3.onap.org:10003}/onap/cps-ncmp:${VERSION:-latest}
  #  ports:
  #    - "8882:8080"
  #    - "8887:8081"
  #  environment:
  #    CPS_USERNAME: ${CPS_USERNAME:-cpsuser}
  #    CPS_PASSWORD: ${CPS_PASSWORD:-cpsr0cks!}
  #    DB_HOST: dbpostgresql
  #    DB_USERNAME: ${DB_USERNAME:-cps}
  #    DB_PASSWORD: ${DB_PASSWORD:-cps}
  #    #KAFKA_BOOTSTRAP_SERVER: kafka:9092
  #    #notification.data-updated.enabled: 'true'
  #  restart: unless-stopped
  #  depends_on:
  #    - dbpostgresql

  cps-and-ncmp:
    container_name: cps-and-ncmp
    image: ${DOCKER_REPO:-nexus3.onap.org:10003}/onap/cps-and-ncmp:${VERSION:-latest}
    ports:
      - "8883:8080"
      - "8887:8081"
    environment:
      CPS_USERNAME: ${CPS_USERNAME:-cpsuser}
      CPS_PASSWORD: ${CPS_PASSWORD:-cpsr0cks!}
      DB_HOST: dbpostgresql
      DB_USERNAME: ${DB_USERNAME:-cps}
      DB_PASSWORD: ${DB_PASSWORD:-cps}
      #KAFKA_BOOTSTRAP_SERVER: kafka:9092
      #notification.data-updated.enabled: 'true'
    restart: unless-stopped
    depends_on:
      - dbpostgresql

  dbpostgresql:
    container_name: dbpostgresql
    image: postgres:13.2-alpine
    ports:
      - '5432:5432'
    environment:
      POSTGRES_DB: cpsdb
      POSTGRES_USER: ${DB_USERNAME:-cps}
      POSTGRES_PASSWORD: ${DB_PASSWORD:-cps}

#  zookeeper:
#    image: confluentinc/cp-zookeeper:6.1.1
#    environment:
#      ZOOKEEPER_CLIENT_PORT: 2181
#      ZOOKEEPER_TICK_TIME: 2000
#    ports:
#      - 22181:2181
#
#  kafka:
#    image: confluentinc/cp-kafka:6.1.1
#    depends_on:
#      - zookeeper
#    ports:
#      - 29092:29092
#    environment:
#      KAFKA_BROKER_ID: 1
#      KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
#      KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka:9092,PLAINTEXT_HOST://localhost:29092
#      KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXT,PLAINTEXT_HOST:PLAINTEXT
#      KAFKA_INTER_BROKER_LISTENER_NAME: PLAINTEXT
#      KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
