# Contour root — in-cluster backend + providers. # # This branch (`contour`) serves ALL closed contours. Backend state lives in the # contour MinIO; the concrete contour is selected by INFRA_ENV. Providers target # in-cluster services (no managed YC). Infra-service admin creds are read from # Vault by a workflow step and injected as env vars (see .gitea/workflows) — # providers pick them up via get_env, so there is no cross-provider data-source # ordering dependency on the vault-secrets stack. remote_state { backend = "s3" generate = { path = "backend.tf" if_exists = "overwrite_terragrunt" } config = { endpoint = get_env("TF_STATE_S3_ENDPOINT", "") bucket = get_env("TF_STATE_S3_BUCKET", "") key = "${path_relative_to_include()}/terraform.tfstate" region = get_env("TF_STATE_S3_REGION", "ru-central1") access_key = get_env("S3_ACCESS_KEY", get_env("AWS_ACCESS_KEY_ID", "")) secret_key = get_env("S3_SECRET_KEY", get_env("AWS_SECRET_ACCESS_KEY", "")) skip_region_validation = true skip_credentials_validation = true skip_metadata_api_check = true skip_bucket_root_access = true force_path_style = true } } generate "provider" { path = "provider.tf" if_exists = "overwrite_terragrunt" contents = <