// 2026-04-01 — postgres_extra.tf: дополнительные пользователи и базы данных для lifecycle-тестов. // // ВАЖНО: ресурсы создаются строго последовательно через depends_on. // Параллельное создание нескольких пользователей в одном инстансе вызывает // ошибки API ("Секрет не был создан", "key doesn't exist") — race condition на стороне Nubes. // // ИЗВЕСТНОЕ ОГРАНИЧЕНИЕ: если apply упал в середине создания пользователя — // этот пользователь может "зависнуть" в промежуточном состоянии в Nubes API. // adopt_existing_on_create не спасает. Решение: использовать имена без истории, // либо ждать очистки на стороне Nubes. // ── Пользователь 1 ─────────────────────────────────────────────────────────── // Первый в extra-цепочке. Ждёт pg_test_db (postgres.tf). resource "nubes_postgres_user" "test_extra_user1" { postgres_id = nubes_postgres.pg_test_instance.id username = "test_eu1" role = "ddl_user" adopt_existing_on_create = true # Ждём pg_test_db — иначе параллельный старт с созданием БД ломает API. depends_on = [nubes_postgres_database.pg_test_db] } // ── Пользователь 2 ─────────────────────────────────────────────────────────── resource "nubes_postgres_user" "test_extra_user2" { postgres_id = nubes_postgres.pg_test_instance.id username = "test_eu2" role = "ddl_user" adopt_existing_on_create = true depends_on = [nubes_postgres_user.test_extra_user1] } // ── База данных 1 (owner = test_eu1) ───────────────────────────────────────── resource "nubes_postgres_database" "test_extra_db1" { postgres_id = nubes_postgres.pg_test_instance.id db_name = "test_edb1" db_owner = nubes_postgres_user.test_extra_user1.username adopt_existing_on_create = true depends_on = [nubes_postgres_user.test_extra_user2] } // ── База данных 2 (owner = test_eu2) ───────────────────────────────────────── resource "nubes_postgres_database" "test_extra_db2" { postgres_id = nubes_postgres.pg_test_instance.id db_name = "test_edb2" db_owner = nubes_postgres_user.test_extra_user2.username adopt_existing_on_create = true depends_on = [nubes_postgres_database.test_extra_db1] }