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). Файл содержит пароль —
|
# Папка apps/ читает creds.json (см. apps/locals.tf). Файл содержит пароль —
|
||||||
# он в .gitignore папки apps/.
|
# он в .gitignore папки apps/.
|
||||||
#
|
#
|
||||||
# ВАЖНО про порядок: outputs вычисляются В КОНЦЕ apply, после того как созданы
|
# ВАЖНО про порядок: пароль берётся из ВЫХОДА подресурса nubes_postgres_user, а не из
|
||||||
# кластер, пользователь и база — поэтому `terraform output -json` сразу после
|
# vault_secrets кластера. Внутри одного apply vault_secrets кластера ещё пуст (пароль
|
||||||
# первого apply отдаёт реальный пароль.
|
# появляется после create_user и обновляется в state кластера только при его чтении),
|
||||||
|
# поэтому надёжный источник — сам подресурс.
|
||||||
# =============================================================================
|
# =============================================================================
|
||||||
|
|
||||||
output "pg_host" {
|
output "pg_host" {
|
||||||
@@ -40,8 +41,8 @@ output "pg_db_name" {
|
|||||||
}
|
}
|
||||||
|
|
||||||
output "pg_password" {
|
output "pg_password" {
|
||||||
description = "Пароль пользователя БД (платформа генерирует его сама при create_user)"
|
description = "Пароль пользователя БД (платформа генерирует его сама при create_user; провайдер читает его из Vault и отдаёт выходом подресурса)"
|
||||||
value = jsondecode(nubes_postgres.main_pg.vault_secrets["users"])[var.pg_username].password
|
value = nubes_postgres_user.crud_user_0.password
|
||||||
sensitive = true
|
sensitive = true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user