From 128b7b445139095ce278d07dd118d8285bcf5d6d Mon Sep 17 00:00:00 2001 From: Kochetkov S Date: Thu, 16 Jul 2026 16:09:08 +0300 Subject: [PATCH] =?UTF-8?q?++=20contour:=20in-cluster=20root=20=E2=80=94?= =?UTF-8?q?=20minio=20backend=20+=20kubernetes/vault/kafka/postgresql/rabb?= =?UTF-8?q?itmq/minio=20providers,=20admin=20creds=20via=20env=20from=20va?= =?UTF-8?q?ult?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- live/terragrunt.hcl | 129 ++++++++++++++++++++++---------------------- 1 file changed, 66 insertions(+), 63 deletions(-) diff --git a/live/terragrunt.hcl b/live/terragrunt.hcl index 5441297..2a10116 100644 --- a/live/terragrunt.hcl +++ b/live/terragrunt.hcl @@ -1,3 +1,12 @@ +# 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 = { @@ -5,102 +14,96 @@ remote_state { if_exists = "overwrite_terragrunt" } config = { - endpoint = "https://storage.yandexcloud.net" - bucket = get_env("S3_PROD_STATE_BUCKET", "tfstate-terragrunt-prod") + endpoint = get_env("TF_STATE_S3_ENDPOINT", "") + bucket = get_env("TF_STATE_S3_BUCKET", "") key = "${path_relative_to_include()}/terraform.tfstate" - region = "ru-central1" + 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 - force_path_style = true skip_bucket_root_access = true - # Object Storage бакет без versioning/SSE; свежий terragrunt иначе падает на проверке. - skip_bucket_versioning = true - skip_bucket_ssencryption = true - skip_bucket_enforced_tls = true - skip_bucket_public_access_blocking = true + force_path_style = true } } -# Генерация общего провайдера для всех модулей generate "provider" { path = "provider.tf" if_exists = "overwrite_terragrunt" - contents = <