####### 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:
        - permissions
{% 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:/app/superset/cairn/clickhouse-auth.json:ro
        - ../plugins/cairn/apps/superset/bootstrap:/app/bootstrap:ro
        {%- for mount in iter_mounts(MOUNTS, "cairn-superset") %}
        - {{ mount }}
        {%- endfor %}
    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
        {%- for mount in iter_mounts(MOUNTS, "cairn-superset") %}
        - {{ mount }}
        {%- endfor %}
    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
        {%- for mount in iter_mounts(MOUNTS, "cairn-superset") %}
        - {{ mount }}
        {%- endfor %}
    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:
        - permissions
{% endif %}
cairn-watchcourses:
    image: {{ DOCKER_IMAGE_OPENEDX }}
    command: "python /openedx/scripts/server.py"
    restart: unless-stopped
    volumes:
      - ../apps/openedx/settings/lms:/openedx/edx-platform/lms/envs/tutor:ro
      - ../apps/openedx/settings/cms:/openedx/edx-platform/cms/envs/tutor:ro
      - ../apps/openedx/config:/openedx/config:ro
      - ../plugins/cairn/apps/openedx/scripts:/openedx/scripts:ro
      - ../plugins/cairn/apps/clickhouse/auth.json:/openedx/clickhouse-auth.json:ro
