fix(postgres): исправлен api_endpoint nubes, try() для vault_secrets, стресс-скрипт, документация ошибок
This commit is contained in:
@@ -4,6 +4,85 @@
|
||||
|
||||
---
|
||||
|
||||
## 2026-03-20 — Баг: неверный hostname в api_endpoint провайдера nubes
|
||||
|
||||
### Симптом
|
||||
`terraform apply` на `examples/POSTGRES` падал с HTTP 404 на обоих ресурсах: `nubes_postgres.npg` и `nubes_s3bucket.baba_bucket`.
|
||||
|
||||
### Причина
|
||||
В `examples/POSTGRES/main.tf` был указан UI-домен вместо API-домена:
|
||||
```hcl
|
||||
# НЕПРАВИЛЬНО (UI облака, не API):
|
||||
api_endpoint = "https://deck-test.ngcloud.ru/api/v1"
|
||||
|
||||
# ПРАВИЛЬНО (API Dashboard):
|
||||
api_endpoint = "https://deck-api-test.ngcloud.ru/api/v1/index.cfm"
|
||||
```
|
||||
Аналогично для `nubes_endpoint` в провайдере `sless`.
|
||||
|
||||
### Фикс
|
||||
`deck-test` → `deck-api-test` в обоих провайдерах, добавлен `/index.cfm`.
|
||||
Найдено через `git show cca3a8c:examples/POSTGRES/main.tf`.
|
||||
|
||||
### Правило
|
||||
> `deck-api-test.ngcloud.ru` — API (для Terraform)
|
||||
> `deck-test.ngcloud.ru` — UI облака (только браузер)
|
||||
|
||||
---
|
||||
|
||||
## 2026-03-20 — Баг платформы: nubes_postgres_user/database зависают при destroy
|
||||
|
||||
### Симптом
|
||||
`terraform destroy` завершается, но в UI облака операция `delete_user` возвращает:
|
||||
> "Не удалось удалить пользователя из CRD. Производится откат"
|
||||
|
||||
После этого повторный `terraform apply` падает с:
|
||||
> "Нарушена консистентность: Операция вернула duplicate/exist, но объект не найден в state_out"
|
||||
|
||||
### Причина
|
||||
Платформенный баг: delete_user не удаляет CRD в кластере Kubernetes PG-оператора.
|
||||
База `db0` остаётся "мёртвой" — API не видит, но в кластере CRD есть.
|
||||
`adopt_existing_on_create = true` не помогает — провайдер получает `duplicate` но не может прочитать объект обратно.
|
||||
|
||||
### Решение (workaround)
|
||||
Удалить PG-инстанс вручную через UI облака → почистить state → пересоздать через `terraform apply`.
|
||||
|
||||
```bash
|
||||
cd ~/terra/sless/examples/POSTGRES
|
||||
terraform state rm nubes_postgres_database.db
|
||||
terraform state rm nubes_postgres_user.pg_user
|
||||
terraform state rm nubes_postgres.npg
|
||||
terraform apply -auto-approve
|
||||
```
|
||||
|
||||
### Статус
|
||||
Зафиксировано как баг платформы. Передано девопсам для исправления в CRD-операторе PG.
|
||||
|
||||
---
|
||||
|
||||
## 2026-03-20 — Invalid index: vault_secrets["users"] на первом apply
|
||||
|
||||
### Симптом
|
||||
```
|
||||
Error: Invalid index
|
||||
on postgres.tf line 7, in locals:
|
||||
7: pg_creds_map = jsondecode(nubes_postgres.npg.vault_secrets["users"])
|
||||
The given key does not identify an element in this collection value.
|
||||
```
|
||||
|
||||
### Причина
|
||||
`vault_secrets["users"]` появляется только **после** создания первого пользователя.
|
||||
На первом `plan/apply` ключ ещё не существует.
|
||||
|
||||
### Фикс
|
||||
```hcl
|
||||
pg_creds_map = try(jsondecode(lookup(nubes_postgres.npg.vault_secrets, "users", "{}")), {})
|
||||
pg_password = try(local.pg_creds_map[local.pg_username]["password"], "")
|
||||
```
|
||||
Пароль подтягивается при следующем `apply` после создания пользователя.
|
||||
|
||||
---
|
||||
|
||||
## 2026-03-17 — Баг 3: PodLogOptions compile error (v0.1.31)
|
||||
|
||||
**Проблема:** Оператор не компилировался. Ошибка:
|
||||
|
||||
Reference in New Issue
Block a user