Files
tf_examples/CRUD/pg/outputs.tf
T
Repinoid eb65f8b0d3 CRUD: пример переведён на схему pg/ + apps/ (как в документации)
Раньше CRUD лежал плоской схемой (main.tf, locals.tf, postgres*.tf, три
приложения в одной папке) и версия провайдера в нём была 5.1.16 — из-за этого
опубликованная страница документации не могла ссылаться на этот репозиторий
(в ней описаны два каталога pg/ и apps/).
Что сделано:
- старые файлы плоской схемы удалены;
- добавлены pg/{main.tf,postgres.tf,postgres_user_db.tf,outputs.tf,
  terraform.tfvars.example} и apps/{main.tf,locals.tf,lucee.tf,flask.tf,
  nodejs.tf,.gitignore,terraform.tfvars.example} — из стенда TEST_STAND/CRUD;
- README.md — тот же пользовательский текст, но клонирование теперь
  git clone https://gitea.services.ngcloud.ru/Nail/tf_examples.git && cd tf_examples/CRUD;
- провайдер в pg/main.tf и apps/main.tf: nubes-test/nubes 3.0.0.
Секреты не переносились: взяты только отслеживаемые git файлы стенда,
terraform.tfvars и apps/creds.json в репозиторий не попадали.
Проверено: 13 файлов в CRUD, .gitignore закрывает terraform.tfvars, creds.json,
tfstate.
2026-10-02 09:07:54 +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"
}