summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--public/v4/apps/airflow.yml216
-rw-r--r--public/v4/logos/airflow.pngbin0 -> 63044 bytes
2 files changed, 216 insertions, 0 deletions
diff --git a/public/v4/apps/airflow.yml b/public/v4/apps/airflow.yml
new file mode 100644
index 0000000..75fc43b
--- /dev/null
+++ b/public/v4/apps/airflow.yml
@@ -0,0 +1,216 @@
+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
diff --git a/public/v4/logos/airflow.png b/public/v4/logos/airflow.png
new file mode 100644
index 0000000..61ecff7
--- /dev/null
+++ b/public/v4/logos/airflow.png
Binary files differ