CRUD Test Stand
Три приложения (Lucee / Flask / Node.js) + общая PostgreSQL. Каждое делает CRUD в одной таблице crud_items.
Код приложений
| Приложение | Репозиторий |
|---|---|
| Lucee | https://gitea.services.ngcloud.ru/terraform/tfluceecrud |
| Flask | https://gitea.services.ngcloud.ru/terraform/tfflaskcrud |
| Node.js | https://gitea.services.ngcloud.ru/terraform/tfnodejscrud |
Что где менять
1. terraform.tfvars — заполнить terraform.tfvars.example и переименовать в terraform.tfvars
| Параметр | Где брать |
|---|---|
api_token |
ЛК → Профиль → Токены → создать «Технический» |
realm |
Кластер Kubernetes: k8s-3-sandbox-nubes-ru (песочница) или другой |
s3_name |
ЛК → S3 → Имя экземпляра |
s3_user_uid |
Там же — UUID. ИЛИ s3_name — любое одно, провайдер сам найдёт пару |
2. locals.tf — сменить домены
Каждое приложение должно иметь уникальный домен. Замени:
lucee_domain = "..." # станет <имя>.luceek8s.dev.nubes.ru
flask_domain = "..." # станет <имя>.pythonk8s.dev.nubes.ru
nodejs_domain = "..." # станет <имя>.<суффикс>.dev.nubes.ru
3. locals.tf — git_revision
git_revision — это маркер запуска redeploy, а не выбор коммита: значение в операцию не передаётся, коммит берётся из репозитория (git_path). Чтобы пересобрать приложения после изменений в репозиториях (tfluceecrud, tfflaskcrud, tfnodejscrud), измените *_git_revision на любое новое значение — Terraform запустит redeploy.
Порядок запуска
При первом создании PG не успевает отдать пароль юзера до того как стартуют приложения — Lucee/Flask/Node.js падают с ошибкой. Проще всего сделать два apply, чем усложнять .tf файлы:
terraform init
terraform apply # 1. создаст PG + пользователя + БД
terraform apply # 2. создаст Lucee + Flask + Node.js (пароль уже в стейте)
Альтернатива: закомментировать lucee.tf, flask.tf, nodejs.tf → terraform apply → раскомментировать → terraform apply.
Дальше — один terraform apply при любых изменениях.
Состав
| Файл | Ресурс |
|---|---|
main.tf |
Провайдер (nubes-test/nubes) + переменные |
postgres.tf |
nubes_postgres.main_pg |
postgres_user_db.tf |
Пользователь + БД |
lucee.tf |
nubes_lucee.applucee |
flask.tf |
nubes_flask.appflask |
nodejs.tf |
nubes_nodejs.appnodejs |
locals.tf |
Все настраиваемые значения |