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.
This commit is contained in:
@@ -0,0 +1,36 @@
|
||||
# =============================================================================
|
||||
# PG — пользователь и база данных
|
||||
# =============================================================================
|
||||
#
|
||||
# Пользователь и база создаются отдельными операциями (create_user / create_database)
|
||||
# внутри кластера, который создал nubes_postgres.main_pg.
|
||||
#
|
||||
# ЗАЧЕМ keep_on_destroy = true (не удалять подресурс при destroy):
|
||||
# - у кластера suspend_on_destroy_default = true ⇒ при destroy кластер уходит в
|
||||
# Suspend, а НЕ удаляется;
|
||||
# - по умолчанию же при destroy подресурс выполнил бы delete_user / delete_database —
|
||||
# получилось бы расхождение: кластер в облаке жив, а юзер/база удалены (база = потеря данных);
|
||||
# - keep_on_destroy = true ⇒ подресурс при destroy НЕ удаляется и НЕ меняется в облаке,
|
||||
# только убирается из state. Провайдер печатает предупреждение «Подресурс оставлен как есть».
|
||||
#
|
||||
# Пара к keep_on_destroy = true обязательна:
|
||||
# adopt_existing_on_create = true — иначе повторный apply попытается СОЗДАТЬ уже
|
||||
# существующего юзера/базу и упадёт с «уже существует». С true провайдер усыновляет
|
||||
# существующий объект обратно (авто-import).
|
||||
# =============================================================================
|
||||
|
||||
resource "nubes_postgres_user" "crud_user_0" {
|
||||
postgres_id = nubes_postgres.main_pg.id
|
||||
username = var.pg_username
|
||||
role = var.pg_role
|
||||
adopt_existing_on_create = true
|
||||
keep_on_destroy = true
|
||||
}
|
||||
|
||||
resource "nubes_postgres_database" "pg_db" {
|
||||
postgres_id = nubes_postgres.main_pg.id
|
||||
db_name = var.pg_db_name
|
||||
db_owner = nubes_postgres_user.crud_user_0.username
|
||||
adopt_existing_on_create = true
|
||||
keep_on_destroy = true
|
||||
}
|
||||
Reference in New Issue
Block a user