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

    version: '3.7'
    services:
        postgres:
            image: postgres:9.6
            container_name: liminal-postgress
            environment:
                - POSTGRES_USER=airflow
                - POSTGRES_PASSWORD=airflow
                - POSTGRES_DB=
            ports:
                - "5432:5432"
            volumes:
                - ${LIMINAL_HOME}/db:/var/lib/postgresql/data
            logging:
                options:
                    max-size: 10m
                    max-file: "3"

        webserver:
            build:
                context: .
                dockerfile: scripts/Dockerfile-airflow
                args:
                    LIMINAL_VERSION: ${LIMINAL_VERSION}
            image: liminal-airflow
            container_name: liminal-webserver
            depends_on:
                - postgres
            environment:
                - LOAD_EX=n
                - EXECUTOR=Local
                - KUBECONFIG=/home/airflow/kube/config
                - AIRFLOW__WEBSERVER__WORKERS=1
                - LIMINAL_HOME=/opt/airflow/dags
                - AIRFLOW__CORE__LOAD_DEFAULT_CONNECTIONS=False
                - AIRFLOW__CORE__SQL_ALCHEMY_CONN=postgres+psycopg2://airflow:airflow@postgres:5432/airflow
                - AIRFLOW_CONN_METADATA_DB=postgres+psycopg2://airflow:airflow@postgres:5432/airflow
                - AIRFLOW_VAR__METADATA_DB_SCHEMA=airflow
            logging:
                options:
                    max-size: 10m
                    max-file: "3"
            volumes:
                - ${LIMINAL_HOME}:/opt/airflow/dags
                - ${LIMINAL_HOME}/logs:/opt/airflow/logs
                - ${HOME}/.kube:/home/airflow/kube
            ports:
                - "8080:8080"
            command: "webserver"
            healthcheck:
                test: ["CMD-SHELL", "[ -f /usr/local/airflow/airflow-webserver.pid ]"]
                interval: 30s
                timeout: 30s
                retries: 3


        scheduler:
            build:
                context: .
                dockerfile: scripts/Dockerfile-airflow
                args:
                    LIMINAL_VERSION: ${LIMINAL_VERSION}
            image: liminal-airflow
            container_name: liminal-scheduler
            depends_on:
                - postgres
                - webserver
            environment:
                - LOAD_EX=n
                - EXECUTOR=Local
                - AIRFLOW__WEBSERVER__WORKERS=1
                - KUBECONFIG=/home/airflow/kube/config
                - LIMINAL_HOME=/opt/airflow/dags
                - AIRFLOW__CORE__LOAD_DEFAULT_CONNECTIONS=False
                - AIRFLOW__CORE__SQL_ALCHEMY_CONN=postgres+psycopg2://airflow:airflow@postgres:5432/airflow
                - AIRFLOW_CONN_METADATA_DB=postgres+psycopg2://airflow:airflow@postgres:5432/airflow
                - AIRFLOW_VAR__METADATA_DB_SCHEMA=airflow
                - AIRFLOW__SCHEDULER__SCHEDULER_HEARTBEAT_SEC=10
            logging:
                options:
                    max-size: 10m
                    max-file: "3"
            volumes:
                - ${LIMINAL_HOME}:/opt/airflow/dags
                - ${LIMINAL_HOME}/logs:/opt/airflow/logs
                - ${HOME}/.kube:/home/airflow/kube
            ports:
                - "8793:8793"
            command: "scheduler"
            healthcheck:
                test: ["CMD-SHELL", "[ -f /usr/local/airflow/airflow-webserver.pid ]"]
                interval: 30s
                timeout: 30s
                retries: 3