add CRUD example: PG + Lucee + Flask + Node.js
This commit is contained in:
@@ -0,0 +1,62 @@
|
||||
# CRUD Test Stand
|
||||
|
||||
Три приложения (Lucee / Flask / Node.js) + общая PostgreSQL. Каждое делает CRUD в одной таблице `crud_items`.
|
||||
|
||||
## Как скачать только эту папку
|
||||
|
||||
```bash
|
||||
git clone --depth 1 --filter=blob:none --sparse https://gitea.services.ngcloud.ru/Nail/tf_provider.git
|
||||
cd tf_provider
|
||||
git sparse-checkout set TEST_STAND/CRUD
|
||||
```
|
||||
|
||||
## Что где менять
|
||||
|
||||
### 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
|
||||
|
||||
При изменении кода в репозиториях (`tfluceecrud`, `tfflaskcrud`, `tfnodejscrud`) — обновить `*_git_revision` на новый хеш коммита. Terraform сам сделает redeploy.
|
||||
|
||||
## Порядок запуска
|
||||
|
||||
При первом создании PG не успевает отдать пароль юзера до того как стартуют приложения — Lucee/Flask/Node.js падают с ошибкой. Проще всего сделать два apply, чем усложнять `.tf` файлы:
|
||||
|
||||
```bash
|
||||
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` | Все настраиваемые значения |
|
||||
Reference in New Issue
Block a user