#
# ===========LICENSE_START====================================================
#  Copyright (C) 2020-2021 AT&T Intellectual Property. All rights reserved.
#  Modifications Copyright (C) 2021 Bell Canada. All rights reserved.
#  Modification Copyright 2021-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.${database:-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
    environment:
      SPRING_PROFILES_ACTIVE: ${API_PROFILE:-default}
    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
    environment:
      SPRING_PROFILES_ACTIVE: ${PAP_PROFILE:-default}
    volumes:
      - ./config/pap/papParameters.yaml:/opt/app/policy/pap/etc/papParameters.yaml:ro
      - ./config/${PROJECT:-api}/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'
    ]

  apex-pdp:
    image: ${CONTAINER_LOCATION}onap/policy-apex-pdp:${POLICY_APEX_PDP_VERSION}
    container_name: policy-apex-pdp
    hostname: policy-apex-pdp
    depends_on:
      - simulator
      - kafka
      - pap
    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',
      'kafka', '9092',
      'pap', '6969'
    ]

  distribution:
    image: ${CONTAINER_LOCATION}onap/policy-distribution:${POLICY_DISTRIBUTION_VERSION}
    container_name: policy-distribution
    hostname: policy-distribution
    depends_on:
      - apex-pdp
    ports:
      - ${DIST_PORT}:6969
    volumes:
      - ./config/distribution/defaultConfig.json:/opt/app/policy/distribution/etc/defaultConfig.json:ro
      - /tmp/distribution/:/opt/app/policy/distribution/etc/temp/:ro
      - ./config/distribution/logback.xml:/opt/app/policy/distribution/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', './policy-dist.sh',
      'apex-pdp', '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:
      - pap
      - kafka
    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
      - ./config/xacml-pdp/xacml-${database:-postgres}.properties:/opt/app/policy/pdpx/apps/guard/xacml.properties:ro
      - ./wait_for_port.sh:/opt/app/policy/pdpx/bin/wait_for_port.sh:ro
    entrypoint: ./wait_for_port.sh
    command: [
      '-c', './policy-pdpx.sh',
      'pap', '6969',
      'kafka', '9092'
    ]

  drools-pdp:
    image: ${CONTAINER_LOCATION}onap/policy-drools:${POLICY_DROOLS_PDP_VERSION}
    container_name: policy-drools-pdp
    hostname: policy-drools-pdp
    depends_on:
      - pap
      - kafka
    ports:
      - ${DROOLS_PORT}:6969
      - ${DROOLS_TELEMETRY_PORT}:9696
    volumes:
      - ./config/drools-pdp/custom:/tmp/policy-install/config:ro
      - ./wait_for_port.sh:/opt/app/policy/bin/wait_for_port.sh:ro
    env_file:
      - config/drools-pdp/env/base-${database:-postgres}.conf
    entrypoint: /opt/app/policy/bin/wait_for_port.sh
    command: [
      '-c', '/opt/app/policy/bin/pdpd-entrypoint.sh boot',
      'pap', '6969',
      'kafka', '9092'
    ]

  drools-applications:
    image: ${CONTAINER_LOCATION}onap/policy-pdpd-cl:${POLICY_DROOLS_APPS_VERSION}
    container_name: policy-drools-apps
    hostname: policy-drools-apps
    depends_on:
      - pap
      - xacml-pdp
      - simulator
      - kafka
    ports:
      - ${DROOLS_APPS_PORT}:6969
      - ${DROOLS_APPS_TELEMETRY_PORT}:9696
    volumes:
      - ./config/drools-applications/custom:/tmp/policy-install/config:ro
      - ./wait_for_port.sh:/opt/app/policy/bin/wait_for_port.sh:ro
    env_file:
      - config/drools-applications/env/base-${database:-postgres}.conf
      - config/drools-applications/env/feature-healthcheck.conf
      - config/drools-applications/env/feature-pooling-messages.conf
    entrypoint: /opt/app/policy/bin/wait_for_port.sh
    command: [
      '-c', '/opt/app/policy/bin/pdpd-cl-entrypoint.sh boot',
      'pap', '6969',
      'kafka', '9092',
      'aai-sim', '6666',
      'sdnc-sim', '6668',
      'so-sim', '6669',
      'vfc-sim', '6670'
    ]

  policy-clamp-runtime-acm:
    image: ${CONTAINER_LOCATION}onap/policy-clamp-runtime-acm:${POLICY_CLAMP_VERSION}
    container_name: policy-clamp-runtime-acm
    hostname: policy-clamp-runtime-acm
    depends_on:
      - apex-pdp
      - kafka
      - jaeger
      - policy-clamp-ac-http-ppnt
      - policy-clamp-ac-k8s-ppnt
      - policy-clamp-ac-pf-ppnt
      - policy-clamp-ac-sim-ppnt
    ports:
      - ${ACM_PORT}:6969
    environment:
      OTEL_SERVICE_NAME: acm-r
      OTEL_EXPORTER_OTLP_PROTOCOL: http/protobuf
      OTEL_EXPORTER_OTLP_TRACES_PROTOCOL: http/protobuf
      OTEL_EXPORTER_OTLP_ENDPOINT: http://jaeger:4318
      SPRING_PROFILES_ACTIVE: ${CLAMP_PROFILE:-default}
      # Tracing can be configured for grpc or http - default is http
      #OTEL_EXPORTER_OTLP_PROTOCOL: grpc
      #OTEL_EXPORTER_OTLP_TRACES_PROTOCOL: grpc
      #OTEL_EXPORTER_OTLP_ENDPOINT: http://jaeger:4317
    volumes:
      - ./config/clamp/AcRuntimeParameters.yaml:/opt/app/policy/clamp/etc/AcRuntimeParameters.yaml
      - ./config/clamp/logback.xml:/opt/app/policy/clamp/etc/logback.xml:ro
      - ./config/clamp/acm-runtime.sh:/opt/app/policy/clamp/bin/acm-runtime.sh:rw
      - ./wait_for_port.sh:/opt/app/policy/bin/wait_for_port.sh:ro
    entrypoint: /opt/app/policy/bin/wait_for_port.sh
    command: [
      '-c', './acm-runtime.sh',
      'apex-pdp', '6969',
      'kafka', '9092',
      'policy-clamp-ac-http-ppnt', '6969',
      'policy-clamp-ac-k8s-ppnt', '6969',
      'policy-clamp-ac-pf-ppnt', '6969'
    ]

  policy-clamp-ac-http-ppnt:
    image: ${CONTAINER_LOCATION}onap/policy-clamp-ac-http-ppnt:${POLICY_CLAMP_PPNT_VERSION}
    container_name: policy-clamp-ac-http-ppnt
    hostname: policy-clamp-ac-http-ppnt
    depends_on:
      - kafka
      - jaeger
    ports:
      - "30290:6969"
    environment:
      OTEL_SERVICE_NAME: http-ppnt
      OTEL_EXPORTER_OTLP_PROTOCOL: http/protobuf
      OTEL_EXPORTER_OTLP_TRACES_PROTOCOL: http/protobuf
      OTEL_EXPORTER_OTLP_ENDPOINT: http://jaeger:4318
      SPRING_PROFILES_ACTIVE: ${PPNT_PROFILE:-default}
    volumes:
      - ./config/clamp/HttpParticipantParameters.yaml:/opt/app/policy/clamp/etc/HttpParticipantParameters.yaml
      - ./config/clamp/http-participant.sh:/opt/app/policy/clamp/bin/http-participant.sh:rw
      - ./config/clamp/logback.xml:/opt/app/policy/clamp/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', './http-participant.sh',
      'kafka', '9092'
    ]

  policy-clamp-ac-k8s-ppnt:
    image: ${CONTAINER_LOCATION}onap/policy-clamp-ac-k8s-ppnt:${POLICY_CLAMP_PPNT_VERSION}
    container_name: policy-clamp-ac-k8s-ppnt
    hostname: policy-clamp-ac-k8s-ppnt
    depends_on:
      - kafka
      - jaeger
    environment:
      OTEL_SERVICE_NAME: k8s-ppnt
      OTEL_EXPORTER_OTLP_PROTOCOL: http/protobuf
      OTEL_EXPORTER_OTLP_TRACES_PROTOCOL: http/protobuf
      OTEL_EXPORTER_OTLP_ENDPOINT: http://jaeger:4318
      SPRING_PROFILES_ACTIVE: ${PPNT_PROFILE:-default}
    ports:
      - "30295:6969"
    volumes:
      - ./config/clamp/KubernetesParticipantParameters.yaml:/opt/app/policy/clamp/etc/KubernetesParticipantParameters.yaml
      - ./config/clamp/kubernetes-participant.sh:/opt/app/policy/clamp/bin/kubernetes-participant.sh:rw
      - ./config/clamp/logback.xml:/opt/app/policy/clamp/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', './kubernetes-participant.sh',
      'kafka', '9092'
    ]

  policy-clamp-ac-pf-ppnt:
    image: ${CONTAINER_LOCATION}onap/policy-clamp-ac-pf-ppnt:${POLICY_CLAMP_PPNT_VERSION}
    container_name: policy-clamp-ac-pf-ppnt
    hostname: policy-clamp-ac-pf-ppnt
    depends_on:
      - kafka
      - api
      - jaeger
    ports:
      - ${POLICY_PARTICIPANT_PORT}:6969
    environment:
      OTEL_SERVICE_NAME: policy-ppnt
      OTEL_EXPORTER_OTLP_PROTOCOL: http/protobuf
      OTEL_EXPORTER_OTLP_TRACES_PROTOCOL: http/protobuf
      OTEL_EXPORTER_OTLP_ENDPOINT: http://jaeger:4318
      SPRING_PROFILES_ACTIVE: ${PPNT_PROFILE:-default}
    volumes:
      - ./config/clamp/PolicyParticipantParameters.yaml:/opt/app/policy/clamp/etc/PolicyParticipantParameters.yaml:ro
      - ./config/clamp/policy-participant.sh:/opt/app/policy/clamp/bin/policy-participant.sh:rw
      - ./config/clamp/logback.xml:/opt/app/policy/clamp/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', './policy-participant.sh',
      'kafka', '9092',
      'api', '6969'
    ]

  policy-clamp-ac-a1pms-ppnt:
    image: ${CONTAINER_LOCATION}onap/policy-clamp-ac-a1pms-ppnt:${POLICY_CLAMP_PPNT_VERSION}
    container_name: policy-clamp-ac-a1pms-ppnt
    hostname: policy-clamp-ac-a1pms-ppnt
    depends_on:
      - kafka
      - jaeger
    environment:
      OTEL_SERVICE_NAME: a1pms-ppnt
      OTEL_EXPORTER_OTLP_PROTOCOL: http/protobuf
      OTEL_EXPORTER_OTLP_TRACES_PROTOCOL: http/protobuf
      OTEL_EXPORTER_OTLP_ENDPOINT: http://jaeger:4318
    ports:
      - "30296:6969"
    volumes:
      - ./config/clamp/A1pmsParticipantParameters.yaml:/opt/app/policy/clamp/etc/A1pmsParticipantParameters.yaml:ro
      - ./config/clamp/a1pms-participant.sh:/opt/app/policy/clamp/bin/a1pms-participant.sh:rw
      - ./config/clamp/logback.xml:/opt/app/policy/clamp/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', './a1pms-participant.sh',
      'kafka', '9092'
    ]

  policy-clamp-ac-kserve-ppnt:
    image: ${CONTAINER_LOCATION}onap/policy-clamp-ac-kserve-ppnt:${POLICY_CLAMP_PPNT_VERSION}
    container_name: policy-clamp-ac-kserve-ppnt
    hostname: policy-clamp-ac-kserve-ppnt
    depends_on:
      - kafka
      - jaeger
    environment:
      OTEL_SERVICE_NAME: kserve-ppnt
      OTEL_EXPORTER_OTLP_PROTOCOL: http/protobuf
      OTEL_EXPORTER_OTLP_TRACES_PROTOCOL: http/protobuf
      OTEL_EXPORTER_OTLP_ENDPOINT: http://jaeger:4318
    ports:
      - "30297:6969"
    volumes:
      - ./config/clamp/KserveParticipantParameters.yaml:/opt/app/policy/clamp/etc/KserveParticipantParameters.yaml:ro
      - ./config/clamp/kserve-participant.sh:/opt/app/policy/clamp/bin/kserve-participant.sh:rw
      - ./config/clamp/logback.xml:/opt/app/policy/clamp/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', './kserve-participant.sh',
      'kafka', '9092'
    ]
