#
# ===========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=====================================================
#

include:
  - compose.common.yml
  - compose.postgres.yml

services:
  api:
    image: ${CONTAINER_LOCATION}onap/policy-api:${POLICY_API_VERSION}
    container_name: policy-api
    hostname: policy-api
    depends_on:
      - policy-db-migrator
    ports:
      - ${API_PORT}:6969
    volumes:
      - ./config/api/apiParameters.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',
      'policy-db-migrator', '6824'
    ]

  pap:
    image: ${CONTAINER_LOCATION}onap/policy-pap:${POLICY_PAP_VERSION}
    container_name: policy-pap
    hostname: policy-pap
    depends_on:
      - api
      - kafka
    ports:
      - ${PAP_PORT}:6969
    volumes:
      - ./config/pap/papParameters.yaml:/opt/app/policy/pap/etc/papParameters.yaml:ro
      - ./config/apex-pdp/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',
      'api', '6969',
      'kafka', '9092'
    ]

  apexpdp:
    image: ${CONTAINER_LOCATION}onap/policy-apex-pdp:${POLICY_APEX_PDP_VERSION}
    hostname: policy-apex-pdp
    depends_on:
      - simulator
      - kafka
      - pap
    expose:
      - 6969
      - 23324
    deploy:
      mode: replicated
      replicas: ${REPLICAS:-2}
    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',
      'kafka', '9092',
      'pap', '6969'
    ]
  nginx:
    image: ${CONTAINER_LOCATION}library/nginx:latest
    volumes:
      - ./config/nginx/nginx.conf:/etc/nginx/nginx.conf:ro
    depends_on:
      - apexpdp
    ports:
      - ${APEX_PORT}:${APEX_PORT}
      - ${APEX_EVENTS_PORT}:${APEX_EVENTS_PORT}
