Commit Graph
19 Commits
Author SHA1 Message Date
Repinoid fe25be9b85 docs(crud): уточнение про домены — задаётся имя, а не полный домен
Правка владельца: в *_domain лежит не домен, а имя, из которого платформа сама
строит полный домен (lucee-crud -> lucee-crud.luceek8s.dev.nubes.ru,
flask-crud -> flask-crud.pythonk8s.dev.nubes.ru), а уникальны именно полные имена.
Было: «уникальны в облаке — один домен нельзя повесить на два инстанса».
Исправлено в TEST_STAND/CRUD/README.md и в docs/curated/crud/three_apps.md (они
обязаны совпадать).
Проверено: формулировка одинаковая в обоих файлах, собрана и опубликована страница.
2026-10-02 08:29:50 +03:00
Repinoid 3f05d798e1 docs(crud): раздел «Код приложений (git)» со ссылками на репозитории
В README стенда не было путей к репозиториям приложений. Добавлен раздел перед
«Запуск — три шага»: таблица со ссылками на terraform/tfluceecrud, terraform/
tfflaskcrud, terraform/tfnodejscrud и указание, что пути задаются в apps/locals.tf.
Про git_revision не написано — в этом стенде такого поля нет (проверено grep:
в apps/*.tf только version/git_path/health_path).
Проверено: раздел на месте, фаерсы 14 (чётно).
2026-10-02 08:13:43 +03:00
Repinoid 39849bf459 docs(crud): раздел «Что пользователь задаёт сам» продублирован на странице сайта
Стендовый README и страница curated/crud/three_apps.md описывают одно и то же,
поэтому раздел перенесён в страницу сайта сразу после «Структура манифестов»:
- обязательные значения (api_token, realm, s3_name) и создание terraform.tfvars;
- имена с правилами уникальности (кластер и приложения — в пределах стенда,
  юзер/база — в пределах кластера, домены — в облаке) и объяснение через
  adopt_existing_on_create (crud.go:171, refsvc_find.go:47);
- что можно не задавать (дефолты pg/main.tf).
Из шагов 1 и 3 убраны дублирующие таблицы — вместо них ссылка на раздел.
Плюс выровнены отступы в блоке cp terraform.tfvars.example (в двух файлах было
по-разному).
Проверено: diff разделов — совпадает построчно, отличие только в разделителе «---»
(есть в README, не используется на странице); страница 228 строк, 18 строк с
блоками кода (чётно).
2026-10-02 08:08:35 +03:00
Repinoid 7b63f12347 docs(crud): раздел «Что пользователь задаёт сам» + правила уникальности имён
Замечание владельца: в README не было видно, какие параметры юзер задаёт СВОИМИ
значениями, и не сказано про уникальность домена и имени инстанса.
Добавлен раздел (сразу после «Как это устроено»):
- обязательные значения: api_token (pg+apps), realm (pg+apps, одно и то же),
  s3_name (pg) + команды создания terraform.tfvars в обеих папках;
- имена, которые нужно придумать: pg_resource_name и *_resource_name приложений —
  уникальны в пределах стенда; pg_username/pg_db_name — в пределах кластера
  (служебные admin/postgres/standby платформа не примет); *_domain — уникальны
  в облаке;
- почему: adopt_existing_on_create ищет инстанс по имени внутри сервиса
  (provider/internal/resources_core/crud.go:171, provider/internal/core/refsvc_find.go:47),
  поэтому при занятом имени провайдер не создаёт новый ресурс, а усыновляет
  существующий; без adopt — падает с «уже существует». Пример: tflucee/tfflask/
  tfnodejs заняты старыми инстансами (apps/locals.tf:45,57,68);
- что можно не задавать: перечислены дефолты pg/main.tf и размеры в apps/locals.tf.
Из шагов 1 и 3 убраны дублирующие таблицы — теперь ссылка на раздел, комментарии
в командах поправлены («см. таблицу ниже» больше не существует).
Проверено: 190 строк, 14 строк с блоками кода (чётно), заголовки на месте.
2026-10-02 08:07:58 +03:00
Repinoid b8f5238f05 docs(crud): справка по выходам pg перенесена в конец файла
Из шага 2 убран развёрнутый блок (он мешал последовательности трёх шагов),
вместо него одна ссылка. Сам блок стал последним разделом файла
«## Справка: выходные параметры pg/» (уровень заголовка 4 -> 2, т.к. теперь
это самостоятельный раздел, а не подпункт шага 2). Содержимое не менялось.
Проверено: grep заголовков (112: ## Справка), состав файла — 151 строка.
2026-10-02 07:59:06 +03:00
Repinoid 5674b86d58 docs(crud): справка по выходным параметрам pg — состав, вид JSON и как их читают приложения
Шаг 2 теперь поясняет не только команду выгрузки, но и что именно выгружается:
- таблица шести выходов pg/outputs.tf (pg_host/pg_port/pg_username/pg_db_name/
  pg_password/pg_ssl_mode) с указанием источника каждого;
- что terraform output -json кладёт объекты {sensitive, type, value}, а не голые
  значения, поэтому в apps/locals.tf обращение идёт через .value;
- таблица соответствия: выход pg/ -> переменная окружения в Flask/Node.js/Lucee
  (PGHOST/PGPORT/PGUSER/PGPASSWORD/PGDATABASE/PGSSLMODE, у Lucee ещё testds_* и DATABASE_URL).
Все факты сверены чтением файлов: pg/outputs.tf, apps/locals.tf, apps/flask.tf,
apps/nodejs.tf, apps/lucee.tf.
2026-10-02 07:56:47 +03:00
Repinoid 6ef003bc58 docs(crud): покрыты и apply, и destroy — про удаление было сказано однобоко
В разделе «Как это устроено» первая строка говорила только про destroy,
про изменения (apply) не было ни слова. Теперь явно: apply и destroy
в apps/ меняют только приложения, apply и destroy в pg/ — только базу.
Проверено: чтением файла после правки.
2026-10-02 07:54:04 +03:00
Repinoid 5fdbc316c2 docs(crud): раздел «Как это устроено» — без натянутых терминов
Убрано «(разделение ответственности, decoupling)» — это про модули кода, не про
состояния Terraform. Написано прямо: два отдельных файла состояния.
Добавлен факт, который был скрыт: связь pg -> apps идёт через apps/creds.json,
после смены хоста или пароля файл нужно обновить и повторить apply в apps/.
Проверено: чтением файла после правки.
2026-10-02 07:52:55 +03:00
Repinoid ed92de1544 test_stand/crud: из README и комментариев убрана вся история (try, «раньше»)
README читает человек впервые — ему нужны структура, шаги запуска и операции,
а не разбор прошлых костылей. Удалено:
- раздел «Почему нельзя создать всё одним apply» с историей про try() и PGPASSWORD;
- упоминания try() в apps/lucee.tf, apps/flask.tf, apps/nodejs.tf;
- «data-source/backend» из apps/locals.tf и путь к удалённому разделу из pg/outputs.tf.

Заодно удалён старый TEST_STAND/CRUD/terraform.tfvars (не читается, значения
перенесены в pg/terraform.tfvars и apps/terraform.tfvars).

Проверено: terraform validate — Success в pg/ и apps/ (apps — с временным creds.json).
2026-10-01 16:42:46 +03:00
Repinoid 4834e992f3 test_stand/crud: разделение на pg/ (общая БД) и apps/ (потребители)
Было: одна папка, один state — destroy убивал и БД, и приложения; пароль БД
приходилось вытаскивать костылём try() в одном apply, приложения поднимались
с пустым PGPASSWORD.

Стало:
- pg/  — кластер PostgreSQL + пользователь + база + outputs (хост/порт/юзер/база/пароль);
  destroy здесь переводит кластер в Suspend, а пользователь и база не удаляются
  (keep_on_destroy = true + adopt_existing_on_create = true);
- apps/ — три приложения-потребителя; креды БД читаются из creds.json (выгрузка
  outputs папки pg/, т.к. state раздельные, а data-source у провайдера нет);
  try() убран полностью — пароль к моменту этого apply уже существует;
- apps/.gitignore — creds.json, terraform.tfvars, state/lock;
- README.md переписан: структура, «зачем разделено», пошаговые 3 шага запуска,
  повседневные операции (destroy приложений не трогает БД), про destroy базы.

Проверено: terraform init+validate в обеих папках — Success;
plan в pg/ — 3 to add (кластер, пользователь, база) + 6 outputs.
2026-10-01 16:35:14 +03:00
Repinoid 4197a76aba 1 2026-09-30 21:01:05 +03:00
“Naeel” f0e01dad6e docs: point to tf_examples repo, add tf_examples to .gitignore 2026-07-21 09:06:13 +04:00
“Naeel” 5d338bbd02 fix: remove non-existent Download button mention 2026-07-21 09:03:28 +04:00
“Naeel” b093bff148 fix: download whole repo archive, no folder-level Download in Gitea 2026-07-21 09:03:02 +04:00
“Naeel” 3d831b16a0 docs: how to download just the CRUD folder (sparse checkout) 2026-07-21 08:59:50 +04:00
“Naeel” 1d1258a83b docs: fill + rename terraform.tfvars.example, not copy 2026-07-21 08:57:08 +04:00
“Naeel” 9ee16ce371 fix: s3_name — S3 instance name, not user 2026-07-21 08:54:54 +04:00
“Naeel” eb36731d3e docs: explain why two applies — PG user not ready for apps 2026-07-21 08:23:39 +04:00
“Naeel” ecace0311b docs: TEST_STAND README + clean terraform.tfvars.example 2026-07-21 08:18:48 +04:00