#
# ===========LICENSE_START====================================================
#  Copyright (C) 2023-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:
  postgres:
    image: nexus3.onap.org:10001/library/postgres:${POLICY_POSTGRES_VER}
    container_name: postgres
    hostname: postgres
    command: [ '--idle_in_transaction_session_timeout=28800' ]
    env_file: config/db-pg/db-pg.conf
    volumes:
      - ./config/db-pg:/docker-entrypoint-initdb.d:ro
    expose:
      - 5432
    ports:
      - "5432:5432"
  policy-db-migrator:
    image: ${CONTAINER_LOCATION}onap/policy-db-migrator:${POLICY_DOCKER_VERSION}
    container_name: policy-db-migrator
    hostname: policy-db-migrator
    depends_on:
      - postgres
    expose:
      - 6824
    env_file: config/db-pg/db-pg.conf
    environment:
      SQL_DB: policyadmin
      SQL_HOST: postgres
      PGPASSWORD: policy_user
    volumes:
      - ./config/db-migrator/init_pg.sh:/opt/app/policy/bin/db_migrator_policy_init_pg.sh:ro
      - ./wait_for_port.sh:/opt/app/policy/bin/wait_for_port.sh:ro
    entrypoint: /opt/app/policy/bin/wait_for_port.sh
    command: [
      '-c',
      '/opt/app/policy/bin/db_migrator_policy_init_pg.sh',
      'postgres', '5432'
    ]
  simulator:
    image: ${CONTAINER_LOCATION}onap/policy-models-simulator:${POLICY_MODELS_VERSION}
    container_name: simulator
    hostname: simulator
    networks:
      default:
        aliases:
          - aai-sim
          - grpc-sim
          - sdnc-sim
          - so-sim
          - vfc-sim
    volumes:
      - ./config/sim-all:/opt/app/policy/simulators/etc/mounted:ro
      - ./config/sim-all/logback.xml:/opt/app/policy/simulators/etc/mounted/logback.xml:ro
    expose:
      - 6666
      - 6668
      - 6669
      - 6670
      - 6680
    ports:
      - ${SIMULATOR_PORT}:6666
  api:
    image: ${CONTAINER_LOCATION}onap/policy-api:${POLICY_API_VERSION}
    container_name: policy-api
    depends_on:
      - policy-db-migrator
    hostname: policy-api
    ports:
      - ${API_PORT}:6969
    volumes:
      - ./config/api/apiParametersPostgres.yaml:/opt/app/policy/api/etc/apiParameters.yaml:ro
      - ./config/api/logback.xml:/opt/app/policy/api/etc/logback.xml:ro
      - ./wait_for_port.sh:/opt/app/policy/api/bin/wait_for_port.sh:ro
    entrypoint: ./wait_for_port.sh
    command: [
      '-c', './policy-api.sh',
      'postgres', '5432',
      'policy-db-migrator', '6824'
    ]
  pap:
    image: ${CONTAINER_LOCATION}onap/policy-pap:${POLICY_PAP_VERSION}
    container_name: policy-pap
    depends_on:
      - postgres
      - kafka
      - api
    hostname: policy-pap
    ports:
      - ${PAP_PORT}:6969
    volumes:
      - ./config/pap/papParametersPostgres.yaml:/opt/app/policy/pap/etc/papParameters.yaml:ro
      - ./config/${component}/groups.json:/opt/app/policy/pap/etc/mounted/groups.json:ro
      - ./config/pap/logback.xml:/opt/app/policy/pap/etc/logback.xml:ro
      - ./wait_for_port.sh:/opt/app/policy/pap/bin/wait_for_port.sh:ro
    entrypoint: ./wait_for_port.sh
    command: [
      '-c', './policy-pap.sh',
      'postgres', '5432',
      'kafka', '9092',
      'api', '6969'
    ]
  apex-pdp:
    image: ${CONTAINER_LOCATION}onap/policy-apex-pdp:${POLICY_APEX_PDP_VERSION}
    container_name: policy-apex-pdp
    depends_on:
      - postgres
      - simulator
      - kafka
      - pap
    hostname: policy-apex-pdp
    ports:
      - ${APEX_PORT}:6969
      - ${APEX_EVENTS_PORT}:23324
    volumes:
      - ./config/apex-pdp/OnapPfConfig.json:/opt/app/policy/apex-pdp/etc/onappf/config/OnapPfConfig.json:ro
      - ./config/apex-pdp/logback.xml:/opt/app/policy/apex-pdp/etc/logback.xml:ro
      - ./wait_for_port.sh:/opt/app/policy/bin/wait_for_port.sh:ro
    entrypoint: /opt/app/policy/bin/wait_for_port.sh
    command: [
      '-c', '/opt/app/policy/apex-pdp/bin/apexOnapPf.sh -c /opt/app/policy/apex-pdp/etc/onappf/config/OnapPfConfig.json',
      'postgres', '5432',
      'kafka', '9092',
      'pap', '6969'
    ]
  xacml-pdp:
    image: ${CONTAINER_LOCATION}onap/policy-xacml-pdp:${POLICY_XACML_PDP_VERSION}
    container_name: policy-xacml-pdp
    hostname: policy-xacml-pdp
    depends_on:
      - postgres
      - kafka
      - pap
    ports:
      - ${XACML_PORT}:6969
      - "30999:3904"
    volumes:
      - ./config/xacml-pdp/defaultConfig.json:/opt/app/policy/pdpx/etc/defaultConfig.json:ro
      - ./config/xacml-pdp/logback.xml:/opt/app/policy/pdpx/etc/logback.xml:ro
      - ./wait_for_port.sh:/opt/app/policy/pdpx/bin/wait_for_port.sh:ro
    entrypoint: ./wait_for_port.sh
    command: [
      '-c', './policy-pdpx-pg.sh',
      'postgres', '5432',
      'kafka', '9092',
      'pap', '6969'
    ]
  prometheus:
    image: nexus3.onap.org:10001/prom/prometheus:latest
    container_name: prometheus
    hostname: prometheus
    ports:
      - ${PROMETHEUS_PORT}:9090
    volumes:
      - ./metrics/prometheus.yml:/etc/prometheus/prometheus.yml

  zookeeper:
    image: confluentinc/cp-zookeeper:latest
    container_name: zookeeper
    environment:
      ZOOKEEPER_CLIENT_PORT: 2181
      ZOOKEEPER_TICK_TIME: 2000
    ports:
      - 2181:2181

  kafka:
    image: confluentinc/cp-kafka:latest
    container_name: kafka
    depends_on:
      - zookeeper
    ports:
      - 29092:29092
      - 9092:9092
    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
