#
# ===========LICENSE_START====================================================
#  Copyright (C) 2022 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: '2'
services:
   mariadb:
      image: nexus3.onap.org:10001/mariadb:${POLICY_MARIADB_VER}
      container_name: mariadb
      hostname: mariadb
      command: ['--lower-case-table-names=1', '--wait_timeout=28800']
      env_file: config/db/db.conf
      volumes:
         - ./config/db:/docker-entrypoint-initdb.d:ro
         - ./config/clamp/policy-clamp-create-tables.sql:/tmp/policy-clamp-create-tables.sql
      expose:
       - 3306
   policy-db-migrator:
      image: nexus3.onap.org:10001/onap/policy-db-migrator:${POLICY_DOCKER_VERSION}
      container_name: policy-db-migrator
      hostname: policy-db-migrator
      depends_on:
        - mariadb
      expose:
       - 6824
      env_file: config/db/db.conf
      environment:
        SQL_DB: policyadmin
        SQL_HOST: mariadb
      volumes:
         - ./db_migrator_policy_init.sh:/opt/app/policy/bin/db_migrator_policy_init.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.sh',
                'mariadb', '3306'
               ]
   simulator:
      image: nexus3.onap.org:10001/onap/policy-models-simulator:${POLICY_MODELS_VERSION}
      container_name: simulator
      hostname: simulator
      networks:
          default:
              aliases:
                  - message-router
                  - aai-sim
                  - grpc-sim
                  - sdnc-sim
                  - so-sim
                  - vfc-sim
      volumes:
       - ./config/sim-all:/opt/app/policy/simulators/etc/mounted:ro
      expose:
       - 6666
       - 6668
       - 6669
       - 6670
       - 3904
       - 6680
   api:
      image: nexus3.onap.org:10001/onap/policy-api:${POLICY_API_VERSION}
      container_name: policy-api
      depends_on:
       - policy-db-migrator
      hostname: policy-api
      expose:
       - 6969
      volumes:
       - ./config/api/apiParameters.yaml:/opt/app/policy/api/etc/apiParameters.yaml: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',
        'mariadb', '3306',
        'policy-db-migrator', '6824'
        ]
   pap:
      image: nexus3.onap.org:10001/onap/policy-pap:${POLICY_PAP_VERSION}
      container_name: policy-pap
      depends_on:
       - mariadb
       - simulator
       - api
      hostname: policy-pap
      expose:
       - 6969
      volumes:
       - ./config/pap/papParameters.yaml:/opt/app/policy/pap/etc/papParameters.yaml:ro
       - ./config/pap/groups.json:/opt/app/policy/pap/etc/mounted/groups.json: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',
        'mariadb', '3306',
        'message-router', '3904',
        'api', '6969'
        ]
   xacml-pdp:
      image: nexus3.onap.org:10001/onap/policy-xacml-pdp:${POLICY_XACML_PDP_VERSION}
      container_name: policy-xacml-pdp
      depends_on:
       - mariadb
       - simulator
       - pap
      hostname: policy-xacml-pdp
      expose:
       - 6969
      volumes:
       - ./config/xacml-pdp/defaultConfig.json:/opt/app/policy/pdpx/etc/defaultConfig.json: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',
        'mariadb', '3306',
        'message-router', '3904',
        'pap', '6969'
        ]
   drools:
      image: nexus3.onap.org:10001/onap/policy-drools:${POLICY_DROOLS_VERSION}
      container_name: drools
      depends_on:
       - mariadb
       - simulator
       - pap
      hostname: drools
      expose:
       - 6969
       - 9696
      volumes:
       - ./config/drools/custom:/tmp/policy-install/config:ro
       - ./wait_for_port.sh:/opt/app/policy/bin/wait_for_port.sh:ro
      env_file:
        - config/drools/env/base.conf
      entrypoint: /opt/app/policy/bin/wait_for_port.sh
      command: [
        '-c', '/opt/app/policy/bin/pdpd-entrypoint.sh boot',
        'mariadb', '3306',
        'message-router', '3904'
        ]
   drools-apps:
      image: nexus3.onap.org:10001/onap/policy-pdpd-cl:${POLICY_DROOLS_APPS_VERSION}
      container_name: drools-apps
      depends_on:
       - mariadb
       - simulator
       - pap
       - xacml-pdp
      hostname: drools-apps
      expose:
       - 6969
       - 9696
      volumes:
       - ./config/drools-apps/custom:/tmp/policy-install/config:ro
       - ./config/drools-apps/custom/feature-lifecycle.properties:/opt/app/policy/features/lifecycle/config/feature-lifecycle.properties:ro
       - ./wait_for_port.sh:/opt/app/policy/bin/wait_for_port.sh:ro
      env_file:
        - config/drools-apps/env/base.conf
        - config/drools-apps/env/feature-healthcheck.conf
        - config/drools-apps/env/feature-pooling-dmaap.conf
      entrypoint: /opt/app/policy/bin/wait_for_port.sh
      command: [
        '-c', '/opt/app/policy/bin/pdpd-cl-entrypoint.sh boot',
        'mariadb', '3306',
        'message-router', '3904',
        'pap', '6969',
        'aai-sim', '6666',
        'sdnc-sim', '6668',
        'so-sim', '6669',
        'vfc-sim', '6670'
        ]
   apex-pdp:
      image: nexus3.onap.org:10001/onap/policy-apex-pdp:${POLICY_APEX_PDP_VERSION}
      container_name: policy-apex-pdp
      depends_on:
       - mariadb
       - simulator
       - pap
      hostname: policy-apex-pdp
      expose:
       - 6969
       - 23324
      volumes:
       - ./config/apex-pdp/OnapPfConfig.json:/opt/app/policy/apex-pdp/etc/onappf/config/OnapPfConfig.json: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',
        'mariadb', '3306',
        'message-router', '3904',
        'pap', '6969'
        ]
   distribution:
      image: nexus3.onap.org:10001/onap/policy-distribution:${POLICY_DISTRIBUTION_VERSION}
      container_name: policy-distribution
      depends_on:
       - mariadb
       - api
       - pap
       - apex-pdp
      hostname: policy-distribution
      volumes:
       - ./config/distribution/defaultConfig.json:/opt/app/policy/distribution/etc/defaultConfig.json:ro
       - ./distribution/config/temp/:/opt/app/policy/distribution/etc/temp/: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',
        'mariadb', '3306',
        'message-router', '3904',
        'pap', '6969',
        'apex-pdp', '6969'
        ]
   prometheus:
      image: prom/prometheus:v2.32.1
      container_name: prometheus
      hostname: prometheus
      expose:
       - 9090
      volumes:
       - ./metrics/prometheus.yml:/etc/prometheus/prometheus.yml
   grafana:
      image: grafana/grafana-oss:8.3.4
      container_name: grafana
      depends_on:
       - prometheus
      hostname: grafana
      expose:
       - 3000
      volumes:
       - ./metrics/dashboard.yaml:/etc/grafana/provisioning/dashboards/dashboard.yaml
       - ./metrics/datasource.yaml:/etc/grafana/provisioning/datasources/datasource.yaml
       - ./metrics/dashboards:/var/lib/grafana/dashboards
