#
# ===========LICENSE_START====================================================
#  Copyright (C) 2020 AT&T Intellectual Property. All rights reserved.
# ============================================================================
# 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
      expose:
       - 3306
   policy.api.simpledemo.onap.org:
      image: nexus3.onap.org:10001/onap/policy-models-simulator:${POLICY_MODELS_VERSION}
      container_name: policy.api.simpledemo.onap.org
      hostname: policy.api.simpledemo.onap.org
      volumes:
       - ./config/sim-all:/opt/app/policy/simulators/etc/mounted:ro
      expose:
       - 6666
       - 6668
       - 6669
       - 6670
       - 3905
   api:
      image: nexus3.onap.org:10001/onap/policy-api:${POLICY_API_VERSION}
      container_name: policy-api
      depends_on:
       - mariadb
      hostname: policy-api
      expose:
       - 6969
      volumes:
       - ./wait_for_port.sh:/opt/app/policy/api/bin/wait_for_port.sh:ro
      entrypoint: ./wait_for_port.sh
      command: [
        '-c', 'bash ./policy-api.sh',
        'mariadb', '3306'
        ]
   pap:
      image: nexus3.onap.org:10001/onap/policy-pap:${POLICY_PAP_VERSION}
      container_name: policy-pap
      depends_on:
       - mariadb
       - policy.api.simpledemo.onap.org
       - api
      hostname: policy-pap
      expose:
       - 6969
      volumes:
       - ./config/pap/defaultConfig.json:/opt/app/policy/pap/etc/defaultConfig.json:ro
       - ./wait_for_port.sh:/opt/app/policy/pap/bin/wait_for_port.sh:ro
      entrypoint: ./wait_for_port.sh
      command: [
        '-c', 'bash ./policy-pap.sh',
        'mariadb', '3306',
        'policy.api.simpledemo.onap.org', '3905',
        '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
       - policy.api.simpledemo.onap.org
       - 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', 'bash ./policy-pdpx.sh',
        'mariadb', '3306',
        'policy.api.simpledemo.onap.org', '3905',
        'pap', '6969'
        ]
   drools:
      image: nexus3.onap.org:10001/onap/policy-drools:${POLICY_DROOLS_VERSION}
      container_name: drools
      depends_on:
       - mariadb
       - policy.api.simpledemo.onap.org
       - 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',
        'policy.api.simpledemo.onap.org', '3905'
        ]
   drools-apps:
      image: nexus3.onap.org:10001/onap/policy-pdpd-cl:${POLICY_DROOLS_APPS_VERSION}
      container_name: drools-apps
      depends_on:
       - mariadb
       - policy.api.simpledemo.onap.org
       - pap
       - xacml-pdp
      hostname: drools-apps
      expose:
       - 6969
       - 9696
      volumes:
       - ./config/drools-apps/custom:/tmp/policy-install/config: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',
        'policy.api.simpledemo.onap.org', '3905',
        'pap', '6969',
        'policy.api.simpledemo.onap.org', '6666',
        'policy.api.simpledemo.onap.org', '6668',
        'policy.api.simpledemo.onap.org', '6669',
        'policy.api.simpledemo.onap.org', '6670'
        ]
   apex-pdp:
      image: nexus3.onap.org:10001/onap/policy-apex-pdp:${POLICY_APEX_PDP_VERSION}
      container_name: policy-apex-pdp
      depends_on:
       - mariadb
       - policy.api.simpledemo.onap.org
       - 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',
        'policy.api.simpledemo.onap.org', '3905',
        '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
       - ./policy-distribution/config/distribution/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',
        'policy.api.simpledemo.onap.org', '3905',
        'pap', '6969',
        'apex-pdp', '6969'
        ]
