From 066d6b472bb436ff7e213aacc2f7b44d59cdb5fd Mon Sep 17 00:00:00 2001 From: Repinoid Date: Thu, 1 Oct 2026 17:15:20 +0300 Subject: [PATCH] =?UTF-8?q?test=5Fstand/crud(pg):=20=D0=BF=D0=B0=D1=80?= =?UTF-8?q?=D0=BE=D0=BB=D1=8C=20=D0=B1=D0=B5=D1=80=D1=91=D1=82=D1=81=D1=8F?= =?UTF-8?q?=20=D0=B8=D0=B7=20=D0=B2=D1=8B=D1=85=D0=BE=D0=B4=D0=B0=20=D0=BF?= =?UTF-8?q?=D0=BE=D0=B4=D1=80=D0=B5=D1=81=D1=83=D1=80=D1=81=D0=B0,=20?= =?UTF-8?q?=D0=B0=20=D0=BD=D0=B5=20=D0=B8=D0=B7=20vault=5Fsecrets=20=D0=BA?= =?UTF-8?q?=D0=BB=D0=B0=D1=81=D1=82=D0=B5=D1=80=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit output pg_password = nubes_postgres_user.crud_user_0.password — значение известно в том же apply, где создан пользователь, поэтому ни try(), ни двух apply в pg/ больше не требуется. Обновлён комментарий про порядок вычисления. --- TEST_STAND/CRUD/pg/outputs.tf | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/TEST_STAND/CRUD/pg/outputs.tf b/TEST_STAND/CRUD/pg/outputs.tf index b2e5c12..5c10fc5 100644 --- a/TEST_STAND/CRUD/pg/outputs.tf +++ b/TEST_STAND/CRUD/pg/outputs.tf @@ -14,9 +14,10 @@ # Папка apps/ читает creds.json (см. apps/locals.tf). Файл содержит пароль — # он в .gitignore папки apps/. # -# ВАЖНО про порядок: outputs вычисляются В КОНЦЕ apply, после того как созданы -# кластер, пользователь и база — поэтому `terraform output -json` сразу после -# первого apply отдаёт реальный пароль. +# ВАЖНО про порядок: пароль берётся из ВЫХОДА подресурса nubes_postgres_user, а не из +# vault_secrets кластера. Внутри одного apply vault_secrets кластера ещё пуст (пароль +# появляется после create_user и обновляется в state кластера только при его чтении), +# поэтому надёжный источник — сам подресурс. # ============================================================================= output "pg_host" { @@ -40,8 +41,8 @@ output "pg_db_name" { } output "pg_password" { - description = "Пароль пользователя БД (платформа генерирует его сама при create_user)" - value = jsondecode(nubes_postgres.main_pg.vault_secrets["users"])[var.pg_username].password + description = "Пароль пользователя БД (платформа генерирует его сама при create_user; провайдер читает его из Vault и отдаёт выходом подресурса)" + value = nubes_postgres_user.crud_user_0.password sensitive = true }