Files
tf_provider/TEST_STAND/CRUD/pg/outputs.tf
T
Repinoid 066d6b472b test_stand/crud(pg): пароль берётся из выхода подресурса, а не из vault_secrets кластера
output pg_password = nubes_postgres_user.crud_user_0.password — значение известно в том
же apply, где создан пользователь, поэтому ни try(), ни двух apply в pg/ больше не
требуется. Обновлён комментарий про порядок вычисления.
2026-10-01 17:15:20 +03:00

53 lines
2.5 KiB
Terraform
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# =============================================================================
# PG — outputs для потребителей (папка ../apps/ и любые будущие папки)
# =============================================================================
#
# ЗАЧЕМ outputs: папки приложений — это ДРУГИЕ state, и Terraform между ними
# значения сам не передаёт (у провайдера нет data-source, общего backend тоже нет).
# Поэтому после создания БД юзер выгружает эти outputs в файл и кладёт его
# в папку потребителя:
#
# cd TEST_STAND/CRUD/pg
# terraform apply
# terraform output -json > ../apps/creds.json # ← это и есть «передать креды»
#
# Папка apps/ читает creds.json (см. apps/locals.tf). Файл содержит пароль —
# он в .gitignore папки apps/.
#
# ВАЖНО про порядок: пароль берётся из ВЫХОДА подресурса nubes_postgres_user, а не из
# vault_secrets кластера. Внутри одного apply vault_secrets кластера ещё пуст (пароль
# появляется после create_user и обновляется в state кластера только при его чтении),
# поэтому надёжный источник — сам подресурс.
# =============================================================================
output "pg_host" {
description = "Внутренний хост master для подключения (state_out_flat.internalMaster)"
value = nubes_postgres.main_pg.state_out_flat["internalMaster"]
}
output "pg_port" {
description = "Порт PostgreSQL"
value = "5432"
}
output "pg_username" {
description = "Имя пользователя БД"
value = nubes_postgres_user.crud_user_0.username
}
output "pg_db_name" {
description = "Имя базы данных"
value = nubes_postgres_database.pg_db.db_name
}
output "pg_password" {
description = "Пароль пользователя БД (платформа генерирует его сама при create_user; провайдер читает его из Vault и отдаёт выходом подресурса)"
value = nubes_postgres_user.crud_user_0.password
sensitive = true
}
output "pg_ssl_mode" {
description = "Режим SSL для строки подключения"
value = "require"
}