Terraform module to deploy Airflow in Google Cloud Platform
Name | Version |
---|---|
terraform | >=0.13 |
github | >= 5.36.0 |
>= 4.74.0 | |
google-beta | >= 4.58.0 |
helm | >= 2.11.0 |
kubernetes | >= 2.18.1 |
random | >= 3.4.3 |
tls | >= 4.0.4 |
Name | Version |
---|---|
github | 5.38.0 |
4.83.0 | |
helm | 2.11.0 |
kubernetes | 2.23.0 |
random | 3.5.1 |
tls | 4.0.4 |
No modules.
Name | Type |
---|---|
github_repository_deploy_key.airflow_deploy_key | resource |
google_service_account.airflow_logger | resource |
google_sql_database.airflow | resource |
google_sql_database_instance.airflow_db | resource |
google_sql_user.db_user | resource |
google_storage_bucket.airflow_logs | resource |
google_storage_bucket_iam_member.airflow_logger_admin | resource |
helm_release.airflow | resource |
kubernetes_secret_v1.airflow_db_credentials | resource |
kubernetes_secret_v1.broker_url | resource |
kubernetes_secret_v1.fernet_key_secret | resource |
kubernetes_secret_v1.gitsync_creds | resource |
kubernetes_secret_v1.redis_password | resource |
kubernetes_secret_v1.webserver_secret_key | resource |
random_password.db_password | resource |
random_password.fernet_key | resource |
random_password.redis_password | resource |
random_password.webserver_secret_key | resource |
tls_private_key.github_deploy_key | resource |
Name | Description | Type | Default | Required |
---|---|---|---|---|
airflow_logs_bucket_location | Location of the bucket in which to store the Airflow logs | string |
"EU" |
no |
airflow_logs_bucket_name | Name of the bucket in which to store the Airflow logs | string |
null |
no |
airflow_logs_sa | Service account with admin access to the bucket where Airflow writes the logs | string |
null |
no |
airflow_values_filepath | Airflow helm chart values file path | string |
null |
no |
airflow_version | Airflow helm chart version | string |
"1.10.0" |
no |
allocated_ip_range | Allocated IP range for the SQL instance | string |
null |
no |
broker_url_secret_name | Name of the secret that stores the redis password | string |
"airflow-broker-url" |
no |
create_redis_secrets | Create the redis secrets to be used by the helm chart | bool |
true |
no |
dags_repository | Name of the GitHub repository where the DAGs are stored | string |
n/a | yes |
deploy_airflow | Deploy Airflow with the helm chart | bool |
false |
no |
deploy_cloud_sql | Deploy Cloud SQL | bool |
true |
no |
deploy_github_keys | Create a GitHub Key and a secret in k8s to access the private dags | bool |
true |
no |
k8s_airflow_fernet_key_secret_name | Name of the Kubernetes secret where fernet key will be stored | string |
"fernet-key" |
no |
k8s_airflow_namespace | Name of the Kubernetes namespace where the Airflow resources will be deployed | string |
n/a | yes |
k8s_db_credentials_secret_name | Name of the Kubernetes secret where the database credentials will be stored | string |
"airflow-db-credentials" |
no |
k8s_git_sync_secret_name | Name of the secret where the token to syncronize the dags in GitHub is stored | string |
"gitsync-creds" |
no |
k8s_webserver_secret_key_secret_name | Name of the Kubernetes secret where webserver secret key will be stored | string |
"webserver-secret-key" |
no |
project_id | ID of the project where to create the Airflow Resources | string |
n/a | yes |
redis_password_secret_name | Name of the secret that stores the redis password | string |
"airflow-redis-password" |
no |
region | Region of the project where to create the Airflow Resources | string |
n/a | yes |
require_ssl | Require SSL for the SQL instance | bool |
false |
no |
sql_database_name | SQL instance name | string |
"airflow" |
no |
sql_delete_protection | Delete protection for the SQL instance | bool |
true |
no |
sql_edition | SQL edition. Can be ENTERPRISE or ENTERPRISE_PLUS | string |
"ENTERPRISE" |
no |
sql_instance_name | SQL instance name | string |
"airflow-db" |
no |
sql_private_network | Network where to create the SQL instance. Format projects/{project_id}/global/networks/{network_id}. | string |
null |
no |
sql_tier | Tier of the sql database | string |
"db-custom-1-3840" |
no |
sql_user | SQL instance name | string |
"airflow-root" |
no |
sql_version | SQL instance name | string |
"POSTGRES_15" |
no |
Name | Description |
---|---|
airflow_db_credentials_secret | n/a |
airflow_fernet_key_secret | n/a |
airflow_git_sync_secret | n/a |
airflow_logger_sa | n/a |
airflow_webserver_secret_key_secret | n/a |