From 1c232f75162a000f7e643c9233cb91bbfde5e347 Mon Sep 17 00:00:00 2001 From: Kochetkov S Date: Tue, 4 Aug 2026 18:27:36 +0300 Subject: [PATCH] ++ add dockerconfigjson contract check to k8s-secret module --- modules/k8s-secret/main.tf | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/modules/k8s-secret/main.tf b/modules/k8s-secret/main.tf index d050ed6..d06bc4f 100644 --- a/modules/k8s-secret/main.tf +++ b/modules/k8s-secret/main.tf @@ -284,6 +284,17 @@ locals { ? "type=yc_sa requires depends_on.service_account" : "" ) : + # dockerconfigjson не зависит от per-secret depends_on - источник это + # МОДУЛЬНЫЕ (общие для всех секретов) env_vars.DOCKER_REGISTRY_USERNAME/ + # PASSWORD. Если они пустые, секрет молча создаётся с пустым логином/ + # паролем внутри .dockerconfigjson - тот же класс тихой пустышки. + # ignore_changes=true - осознанно замороженный секрет (напр. известно + # пустые креды в CI) - контракт его не блокирует. + secret.type == "dockerconfigjson" && !try(secret.ignore_changes, false) ? ( + trimspace(try(var.env_vars.DOCKER_REGISTRY_USERNAME, "")) == "" || trimspace(try(var.env_vars.DOCKER_REGISTRY_PASSWORD, "")) == "" + ? "type=dockerconfigjson requires module-level env_vars.DOCKER_REGISTRY_USERNAME and env_vars.DOCKER_REGISTRY_PASSWORD to be non-empty" + : "" + ) : "" ) }