test_stand/crud(pg): пароль берётся из выхода подресурса, а не из vault_secrets кластера

output pg_password = nubes_postgres_user.crud_user_0.password — значение известно в том
же apply, где создан пользователь, поэтому ни try(), ни двух apply в pg/ больше не
требуется. Обновлён комментарий про порядок вычисления.
This commit is contained in:
Repinoid
2026-10-01 17:15:20 +03:00
parent 58c519e712
commit 066d6b472b
+6 -5
View File
@@ -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
}