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:
@@ -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
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user