Aller au contenu

Composer3

Requirements

Name Version
terraform >= 1.3.5, < 2
google >= 6.0, < 7
google-beta >= 6.0, < 7

Providers

Name Version
google >= 6.0, < 7
google-beta >= 6.0, < 7

Modules

No modules.

Resources

Name Type
google-beta_google_composer_environment.composer3_env resource
google-beta_google_project_service_identity.composer resource
google_project_iam_member.composer_sa_roles resource
google_project_iam_member.composer_service_identity_roles resource
google_service_account.default resource

Inputs

Name Description Type Default Required
composer3_environment_size Size of the Composer environment (e.g. composer-3-small) string "composer-3-small" no
composer3_resilience_mode Resilience mode of the Composer 3 environment. Must be either STANDARD or HIGH string "STANDARD_RESILIENCE" no
composer3_workloads_config Resource configuration for Composer pods
object({
scheduler = object({
cpu = number
memory_gb = number
storage_gb = number
count = number
})
web_server = object({
cpu = number
memory_gb = number
storage_gb = number
})
worker = object({
cpu = number
memory_gb = number
storage_gb = number
min_count = number
max_count = number
})
})
{
"scheduler": {
"count": 1,
"cpu": 0.5,
"memory_gb": 1,
"storage_gb": 2
},
"web_server": {
"cpu": 0.5,
"memory_gb": 1,
"storage_gb": 2
},
"worker": {
"cpu": 0.5,
"max_count": 3,
"memory_gb": 1,
"min_count": 1,
"storage_gb": 2
}
}
no
composer_airflow_config_overrides Overrides for airflow.cfg map(string) {} no
composer_airflow_env_variables Airflow environment variables map(string) {} no
composer_airflow_pypi_packages PyPI packages to install in the Composer environment map(string)
{
"numpy": "",
"paramiko": "",
"pendulum": "",
"scipy": "",
"sshtunnel": ""
}
no
composer_environment_name Name of the Composer environment string "vxmseax-ca-composer3-<ENV>" no
composer_image_version Composer version to use, e.g. composer-3-1-0-airflow-2-5-0 string null no
composer_ip_allocation_policy Configuration for secondary IP ranges for native VPC
object({
cluster_secondary_range_name = string
services_secondary_range_name = string
cluster_ipv4_cidr_block = string
services_ipv4_cidr_block = string
})
{
"cluster_ipv4_cidr_block": null,
"cluster_secondary_range_name": "composer-pods",
"services_ipv4_cidr_block": null,
"services_secondary_range_name": "composer-services"
}
no
composer_maintenance_exclusions Maintenance exclusion periods
list(object({
name = string
start = string
end = string
}))
[] no
composer_maintenance_window Allowed maintenance window
object({
enable = bool
start = string
end = string
recurrence = string
})
{
"enable": false,
"end": "",
"recurrence": "",
"start": ""
}
no
composer_project_sa_roles Roles to assign to the Service Account list(string)
[
"roles/composer.worker",
"roles/compute.osLogin",
"roles/iam.serviceAccountUser",
"roles/bigquery.user",
"roles/bigquery.jobUser",
"roles/bigquery.dataViewer",
"roles/run.invoker",
"roles/bigquery.dataEditor"
]
no
composer_service_account_name Name of the service account used by Composer string "airflow" no
composer_service_identity_roles List of IAM roles to assign to the Cloud Composer service identity list(string)
[
"roles/storage.objectViewer",
"roles/pubsub.publisher",
"roles/logging.logWriter"
]
no
enable_composer_cluster Enable Composer 3 deployment bool true no
env Environment: dev, stg or prd string n/a yes
network Full self_link of the VPC network string null no
project_id GCP project ID string n/a yes
region GCP region string "europe-west1" no
subnetwork Full self_link of the subnetwork string null no
web_server_network_access_control IPs allowed to access the Airflow Web UI
list(object({
display_name = string
cidr_block = string
}))
[
{
"cidr_block": "0.0.0.0/1",
"display_name": "Everybody IPv4 1/2"
},
{
"cidr_block": "128.0.0.0/1",
"display_name": "Everybody IPv4 2/2"
},
{
"cidr_block": "::/0",
"display_name": "Everybody IPv6 1/2"
},
{
"cidr_block": "8000::/1",
"display_name": "Everybody IPv6 2/2"
}
]
no
zone GCP zone string "europe-west1-b" no

Outputs

Name Description
enable_composer_cluster Allows to install / uninstall (TODO : use new composer3 feature that allows to disable a installed cluster)
environment_location n/a
environment_name n/a
service_account n/a