217 lines
9.4 KiB
YAML
217 lines
9.4 KiB
YAML
captainVersion: 4
|
|
caproverOneClickApp:
|
|
instructions:
|
|
start: |-
|
|
Apache Airflow is a tool to express and execute workflows as directed acyclic graphs (DAGs).
|
|
It includes utilities to schedule tasks, monitor task progress and handle task dependencies.
|
|
This instance uses the Bitnami images
|
|
end: >
|
|
Airflow is deployed is deployed, it might take few moments before it's fully started.
|
|
Initial user is: $$cap_airflow_user with password $$cap_airflow_password.
|
|
Login on $$cap_appname.$$cap_root_domain after $$cap_appname has finished starting.
|
|
|
|
displayName: Airflow
|
|
isOfficial: false
|
|
description: A tool to express and execute workflows as directed acyclic graphs (DAGs).
|
|
documentation: |-
|
|
Based on https://github.com/bitnami/bitnami-docker-airflow#readme
|
|
|
|
variables:
|
|
# Postgress
|
|
- id: $$cap_postgresql_version
|
|
label: Bitnami's Posgresql Version
|
|
defaultValue: '12.12.0'
|
|
description: Check the tag version on https://hub.docker.com/r/bitnami/postgresql
|
|
- id: $$cap_postgresql_name
|
|
label: Postresql database name
|
|
defaultValue: airflow_db
|
|
description: Name of the postgresql db
|
|
- id: $$cap_postgresql_user
|
|
label: Postresql database user
|
|
defaultValue: airflow_db_user
|
|
description: Password to the postgresql db
|
|
- id: $$cap_postgresql_password
|
|
label: Postresql password
|
|
defaultValue: $$cap_gen_random_hex(16)
|
|
description: Password to the postgresql db
|
|
# Redis
|
|
- id: $$cap_redis_version
|
|
label: Bitnami's redis Version
|
|
defaultValue: '7.0.4'
|
|
description: Check the tag version on https://hub.docker.com/r/bitnami/redis
|
|
- id: $$cap_redis_password
|
|
label: Redis password
|
|
defaultValue: $$cap_gen_random_hex(16)
|
|
description: Password to redis db
|
|
# Airflow
|
|
- id: $$cap_airflow_version
|
|
label: Bitnami's airflow Version
|
|
defaultValue: '2.3.3'
|
|
description: Check the tag version on https://hub.docker.com/r/bitnami/airflow
|
|
- id: $$cap_airflow_worker_version
|
|
label: Bitnami's airflow worker Version
|
|
defaultValue: '2.3.3'
|
|
description: Check the tag version on https://hub.docker.com/r/bitnami/airflow-worker
|
|
- id: $$cap_airflow_scheduler_version
|
|
label: Bitnami's airflow scheduler Version
|
|
defaultValue: '2.3.3'
|
|
description: Check the tag version on https://hub.docker.com/r/bitnami/airflow-scheduler
|
|
- id: $$cap_airflow_user
|
|
label: Airflow user
|
|
defaultValue: 'airflow_user'
|
|
description: Airflow's Admin user name
|
|
- id: $$cap_airflow_password
|
|
label: Airflow password
|
|
defaultValue: $$cap_gen_random_hex(16)
|
|
description: Airflow Admin's password
|
|
- id: $$cap_airflow_email
|
|
label: Airflow email
|
|
description: Email address that will receive notifications from airflow (need SMPT details)
|
|
- id: $$cap_airflow_examples
|
|
label: Load Airflow DAG Examples?
|
|
defaultValue: 'no'
|
|
description: Wheter to load or not load sample DAGs (yes/no)
|
|
- id: $$cap_airflow_secret_key
|
|
label: Airflow Secret Key
|
|
defaultValue: $$cap_gen_random_hex(16)
|
|
description: Secret key used to run your flask app. It should be as random as possible.
|
|
- id: $$cap_airflow_dag_path
|
|
label: DAGs Volume
|
|
defaultValue: airflow-dags
|
|
description: Name of the DAG volume or Path to the custom DAGs folder, make sure the folder is accesible
|
|
- id: $$cap_airflow_py_requirements
|
|
label: Path or volume to a requirements.txt file
|
|
defaultValue: airflow-requstxt
|
|
description: Installation of additional python modules at start-up time, make sure the file is accesible
|
|
# SMTP datails
|
|
- id: $$cap_smtp_host
|
|
label: SMTP Host
|
|
description: Host for SMPT connection
|
|
- id: $$cap_smtp_port
|
|
label: SMTP Port
|
|
description: Port for SMPT connection
|
|
- id: $$cap_smtp_starttls
|
|
label: Use startTLS?
|
|
defaultValue: 'no'
|
|
description: Do you want to use startTLS? (yes/no)
|
|
- id: $$cap_smtp_ssl
|
|
label: Use SSL?
|
|
defaultValue: 'no'
|
|
description: Check the tag version on https://hub.docker.com/r/bitnami/airflow-scheduler
|
|
- id: $$cap_smtp_user
|
|
label: SMTP User
|
|
description: Check the tag version on https://hub.docker.com/r/bitnami/airflow-scheduler
|
|
- id: $$cap_smtp_password
|
|
label: SMTP Password
|
|
description: Check the tag version on https://hub.docker.com/r/bitnami/airflow-scheduler
|
|
- id: $$cap_smtp_mail_from
|
|
label: Mail from address
|
|
description: Specofy who the email is from
|
|
|
|
services:
|
|
$$cap_appname-db:
|
|
restart: always
|
|
image: 'bitnami/postgresql:$$cap_postgresql_version'
|
|
user:
|
|
environment:
|
|
POSTGRESQL_DATABASE: $$cap_postgresql_name
|
|
POSTGRESQL_USERNAME: $$cap_postgresql_user
|
|
POSTGRESQL_PASSWORD: $$cap_postgresql_password
|
|
volumes:
|
|
- $$cap_appname-postgresql-persistance:/bitnami
|
|
caproverExtra:
|
|
notExposeAsWebApp: true
|
|
|
|
$$cap_appname-redis:
|
|
restart: always
|
|
image: 'bitnami/redis:$$cap_redis_version'
|
|
user:
|
|
environment:
|
|
REDIS_PASSWORD: $$cap_redis_password
|
|
volumes:
|
|
- $$cap_appname-redis-persistance:/bitnami
|
|
caproverExtra:
|
|
notExposeAsWebApp: true
|
|
|
|
$$cap_appname:
|
|
restart: always
|
|
depends_on:
|
|
- $$cap_appname-db
|
|
- $$cap_appname-redis
|
|
image: 'bitnami/airflow:$$cap_airflow_version'
|
|
user:
|
|
environment:
|
|
AIRFLOW_EXECUTOR: CeleryExecutor
|
|
AIRFLOW_DATABASE_HOST: srv-captain--$$cap_appname-db
|
|
AIRFLOW_DATABASE_NAME: $$cap_postgresql_name
|
|
AIRFLOW_DATABASE_USERNAME: $$cap_postgresql_user
|
|
AIRFLOW_DATABASE_PASSWORD: $$cap_postgresql_password
|
|
REDIS_HOST: srv-captain--$$cap_appname-redis
|
|
REDIS_PASSWORD: $$cap_redis_password
|
|
AIRFLOW_WEBSERVER_HOST: srv-captain--$$cap_appname
|
|
AIRFLOW_BASE_URL: https://$$cap_appname.$$cap_root_domain/
|
|
AIRFLOW_SECRET_KEY: $$cap_airflow_secret_key
|
|
AIRFLOW_LOAD_EXAMPLES: $$cap_airflow_examples
|
|
AIRFLOW_USERNAME: $$cap_airflow_user
|
|
AIRFLOW_PASSWORD: $$cap_airflow_password
|
|
AIRFLOW_EMAIL: $$cap_airflow_email
|
|
AIRFLOW__SMTP__SMTP_HOST: $$cap_smtp_host
|
|
AIRFLOW__SMTP__SMTP_PORT: $$cap_smtp_port
|
|
AIRFLOW__SMTP__SMTP_STARTTLS: $$cap_smtp_starttls
|
|
AIRFLOW__SMTP__SMTP_SSL: $$cap_smtp_ssl
|
|
AIRFLOW__SMTP__SMTP_USER: $$cap_smtp_user
|
|
AIRFLOW__SMTP__SMTP_PASSWORD: $$cap_smtp_password
|
|
AIRFLOW__SMTP__SMTP_MAIL_FROM: $$cap_smtp_mail_from
|
|
volumes:
|
|
- $$cap_airflow_dag_path:/opt/bitnami/airflow/dags
|
|
- $$cap_airflow_py_requirements:/bitnami/python/requirements.txt
|
|
caproverExtra:
|
|
containerHttpPort: '8080'
|
|
|
|
$$cap_appname-worker:
|
|
image: bitnami/airflow-worker:$$cap_airflow_worker_version
|
|
depends_on:
|
|
- $$cap_appname
|
|
environment:
|
|
AIRFLOW_EXECUTOR: CeleryExecutor
|
|
AIRFLOW_DATABASE_HOST: srv-captain--$$cap_appname-db
|
|
AIRFLOW_DATABASE_NAME: $$cap_postgresql_name
|
|
AIRFLOW_DATABASE_USERNAME: $$cap_postgresql_user
|
|
AIRFLOW_DATABASE_PASSWORD: $$cap_postgresql_password
|
|
REDIS_HOST: srv-captain--$$cap_appname-redis
|
|
REDIS_PASSWORD: $$cap_redis_password
|
|
AIRFLOW_WEBSERVER_HOST: srv-captain--$$cap_appname
|
|
AIRFLOW_BASE_URL: https://$$cap_appname.$$cap_root_domain/
|
|
AIRFLOW_SECRET_KEY: $$cap_airflow_secret_key
|
|
AIRFLOW_LOAD_EXAMPLES: $$cap_airflow_examples
|
|
volumes:
|
|
- $$cap_appname-data:/opt/bitnami/airflow/data
|
|
- $$cap_airflow_dag_path:/opt/bitnami/airflow/dags
|
|
- $$cap_airflow_py_requirements:/bitnami/python/requirements.txt
|
|
caproverExtra:
|
|
notExposeAsWebApp: true
|
|
|
|
$$cap_appname-scheduler:
|
|
restart: always
|
|
depends_on:
|
|
- $$cap_appname
|
|
image: 'bitnami/airflow-scheduler:$$cap_airflow_scheduler_version'
|
|
user:
|
|
environment:
|
|
AIRFLOW_EXECUTOR: CeleryExecutor
|
|
AIRFLOW_DATABASE_HOST: srv-captain--$$cap_appname-db
|
|
AIRFLOW_DATABASE_NAME: $$cap_postgresql_name
|
|
AIRFLOW_DATABASE_USERNAME: $$cap_postgresql_user
|
|
AIRFLOW_DATABASE_PASSWORD: $$cap_postgresql_password
|
|
REDIS_HOST: srv-captain--$$cap_appname-redis
|
|
REDIS_PASSWORD: $$cap_redis_password
|
|
AIRFLOW_WEBSERVER_HOST: srv-captain--$$cap_appname
|
|
AIRFLOW_BASE_URL: https://$$cap_appname.$$cap_root_domain/
|
|
AIRFLOW_SECRET_KEY: $$cap_airflow_secret_key
|
|
AIRFLOW_LOAD_EXAMPLES: $$cap_airflow_examples
|
|
volumes:
|
|
- $$cap_airflow_dag_path:/opt/bitnami/airflow/dags
|
|
- $$cap_airflow_py_requirements:/bitnami/python/requirements.txt
|
|
caproverExtra:
|
|
notExposeAsWebApp: true
|