####### Cairn plugin

# log collection
cairn-vector:
    image: {{ CAIRN_VECTOR_DOCKER_IMAGE }}
    volumes:
        - ../../data/cairn/vector:/var/lib/vector
        - ../plugins/cairn/apps/vector/local.toml:/etc/vector/vector.toml:ro
        {% if CAIRN_DOCKER_HOST_SOCK_PATH %}- {{ CAIRN_DOCKER_HOST_SOCK_PATH }}:/var/run/docker.sock:ro{% endif %}
    environment:
        - DOCKER_HOST=/var/run/docker.sock
        - VECTOR_LOG=warn
    restart: unless-stopped
{% if CAIRN_RUN_CLICKHOUSE %}
# log storage
cairn-clickhouse:
    image: {{ CAIRN_CLICKHOUSE_DOCKER_IMAGE }}
    volumes:
        - ../../data/cairn/clickhouse:/var/lib/clickhouse
        - ../plugins/cairn/apps/clickhouse/users.d/cairn.xml:/etc/clickhouse-server/users.d/cairn.xml:ro
        - ../plugins/cairn/apps/clickhouse/auth.json:/scripts/clickhouse-auth.json:ro
    user: "1000:1000"
    environment:
        CLICKHOUSE_DO_NOT_CHOWN: "1"
    ulimits:
        nofile:
            soft: 262144
            hard: 262144
    restart: unless-stopped
    depends_on:
        - cairn-clickhouse-permissions
cairn-clickhouse-permissions:
    image: {{ DOCKER_IMAGE_PERMISSIONS }}
    command: ["1000", "/data/clickhouse"]
    restart: on-failure
    volumes:
      - ../../data/cairn/clickhouse:/data/clickhouse
{% endif %}
cairn-superset:
    image: {{ CAIRN_SUPERSET_DOCKER_IMAGE }}
    volumes:
        - ../plugins/cairn/apps/superset/superset_config.py:/app/superset_config.py:ro
        - ../plugins/cairn/apps/clickhouse/auth.json:/scripts/clickhouse-auth.json:ro
        - ../plugins/cairn/apps/superset/bootstrap:/app/bootstrap:ro
    restart: unless-stopped
    depends_on:
        {% if RUN_REDIS %}- redis{% endif %}
        - cairn-postgresql
cairn-superset-worker:
    image: {{ CAIRN_SUPERSET_DOCKER_IMAGE }}
    volumes:
        - ../plugins/cairn/apps/superset/superset_config.py:/app/superset_config.py:ro
    command: celery --app=superset.tasks.celery_app:app worker -Ofair -l INFO
    restart: unless-stopped
    healthcheck:
        disable: true
    depends_on:
        {% if RUN_REDIS %}- redis{% endif %}
        - cairn-postgresql
cairn-superset-worker-beat:
    image: {{ CAIRN_SUPERSET_DOCKER_IMAGE }}
    volumes:
        - ../plugins/cairn/apps/superset/superset_config.py:/app/superset_config.py:ro
    command: celery --app=superset.tasks.celery_app:app beat --pidfile /tmp/celerybeat.pid -l INFO --schedule=/tmp/celerybeat-schedule
    restart: unless-stopped
    healthcheck:
        disable: true
    depends_on:
        {% if RUN_REDIS %}- redis{% endif %}
        - cairn-postgresql
{% if CAIRN_RUN_POSTGRESQL %}
cairn-postgresql:
    image: docker.io/postgres:9.6-alpine
    environment:
        POSTGRES_USER: "{{ CAIRN_POSTGRESQL_USERNAME }}"
        POSTGRES_PASSWORD: "{{ CAIRN_POSTGRESQL_PASSWORD }}"
        POSTGRES_DB: "{{ CAIRN_POSTGRESQL_DATABASE }}"
    volumes:
        - ../../data/cairn/postgresql:/var/lib/postgresql/data
    restart: unless-stopped
    user: "70:70"
    depends_on:
        - cairn-postgresql-permissions
cairn-postgresql-permissions:
    image: {{ DOCKER_IMAGE_PERMISSIONS }}
    command: ["70", "/data/postgresql"]
    restart: on-failure
    volumes:
      - ../../data/cairn/postgresql:/data/postgresql
{% endif %}
