Files
tf_provider/docs/20_discovery/pg-ui-verification.md
T
2026-06-30 15:45:24 +04:00

131 lines
6.3 KiB
Markdown

# PostgreSQL UI Parameters Verification
**Date:** 2026-01-28
**Source:** User provided screenshots of "Create PostgreSQL" operation in Nubes UI.
## Observed UI Fields (Creation Form)
The form "Создание экземпляра: PostgreSQL" contains the following fields in order:
1. **Платформа для развертывания** (Dropdown) *Required*
* Value: `k8s-3.ext.nubes.ru`
* Provider Mapping: `resource_realm` (Confirmed)
2. **Услуга S3 для резервных копий** (Dropdown) *Required*
* Label: `Услуга S3 для резервных копий.`
* Example Value: `xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx`
* Note: "Экземпляр (учетная запись) S3 для резервного копирования. Резервное копирование обязательно"
* Provider Mapping: `s3_uid` (Confirmed) https://registry.terraform.io/providers/nubes/nubes/latest/docs/resources/postgres#s3_uid
3. **Квота ядра пода (mili)** (Input) *Required*
* Label: `Квота ядра пода (Указывается в mili)`
* Value: `500`
* Provider Mapping: `cpu`
4. **Квота памяти пода (MB)** (Input) *Required*
* Label: `Квота памяти пода (Указывается в MegaBytes)`
* Value: `512`
* Provider Mapping: `memory`
5. **Размер диска для базы данных (GB)** (Input) *Required*
* Label: `Размер диска для базы данных (GigaBytes)`
* Value: `10`
* Provider Mapping: `disk`
6. **Количество узлов** (Input)
* Label: `Количество узлов`
* Value: `1`
* Provider Mapping: `instances`
7. **Выделение белого ip для master ноды** (Checkbox)
* Label: `Выделение белого ip для master ноды`
* Value: Unchecked
* Provider Mapping: `need_external_address_master`
8. **Имя ipSpace для публикации VIP master** (Input)
* Label: `Имя ipSpace для публикации VIP master`
* Note: "Не может быть пустым, если включен needExternalAddressMaster"
* Provider Mapping: `ip_space_name_master`
9. **Выделение белого ip для slave ноды** (Checkbox)
* Label: `Выделение белого ip для slave ноды`
* Value: Unchecked
* Provider Mapping: `need_external_address_slave`
10. **Имя ipSpace для публикации VIP slave** (Input)
* Label: `Имя ipSpace для публикации VIP slave`
* Note: "Не может быть пустым, если включен needExternalAddressSlave"
* Provider Mapping: `ip_space_name_slave`
11. **Количество резервных копий** (Input)
* Label: `Количество резервных копий`
* Value: `7`
* Note: "Не обязательный. По умолчанию: 24 (sic! screenshot says 24, provider default is 7? check code)"
* Provider Mapping: `backup_retention`
12. **Расписание резервного копирования** (Input)
* Label: `Расписание резервного копирования`
* Value: `0 0 * * *`
* Note: "Не обязательный. Время запуска бекапа"
* Provider Mapping: `backup_schedule`
13. **Версия PostgreSQL** (Dropdown) *Required*
* Label: `Версия PostgreSQL`
* Value: `17`
* Provider Mapping: `version`
14. **Параметры postgresql.conf в виде JSON** (Text Area/Beautify)
* Label: `Параметры postgresql.conf в виде JSON`
* Value: `{"log_connections": "off", "log_disconnections": "off"}` (Screenshot example)
* Provider Mapping: `parameters` (Note: Resource field is `parameters`, docs refer to it as `config_json` sometimes? Check consistency).
15. **Включить pgPooler для Master** (Checkbox)
* Label: `Включить pgPooler для Master`
* Value: Unchecked
* Provider Mapping: `enable_pgpooler_master`
16. **Включить pgPooler для Slave** (Checkbox)
* Label: `Включить pgPooler для Slave`
* Value: Unchecked
* Provider Mapping: `enable_pgpooler_slave`
17. **Выключить sslmode** (Checkbox)
* Label: `Выключить sslmode`
* Value: Unchecked
* Provider Mapping: `allow_no_ssl`
18. **Включить autoScale** (Checkbox)
* Label: `Включить autoScale`
* Value: Checked (in screenshot)
* Provider Mapping: `auto_scale`
19. **На сколько % расширяется диск (мин. 1G)** (Input)
* Label: `На сколько % расширяется диск (мин. 1G)`
* Value: `10`
* Provider Mapping: `auto_scale_percentage`
20. **Тех окно обновления дисков** (Input)
* Label: `Тех окно обновления дисков`
* Value: `0`
* Note: "Окно обновления (пока не реализовано). Указывается час в виде Integer (0 / 5 / 12 / 23)"
* Provider Mapping: `auto_scale_tech_window`
21. **Квота для autoScale** (Input)
* Label: `Квота для autoScale`
* Value: `1`
* Provider Mapping: `auto_scale_quota_gb`
## Discrepancies & Action Items
1. **Backup Retention Default**: Screenshot note says "По умолчанию: 24", but Terraform code default might be `7`. Should probably clarify or match UI default if critical.
2. **Parameters Name**: Check if Terraform argument is `parameters` or `config_json`.
* *Check*: `internal/provider/postgres_resource.go` uses `Parameters`.
* *Check*: `docs/registry/resources/postgres.md` uses `config_json`. **MISMATCH**.
3. **Required fields**:
* `Платформа для развертывания` and `Услуга S3...` are definitely required and match our updates.
## Plan
1. **Fix Mismatch**: Rename `config_json` -> `parameters` in documentation to match Go struct, or rename Go struct field to `config_json` to match documentation. (Prefer `parameters` as it maps to UI "Параметры...").
2. **Verify Defaults**: Ensure `backup_retention` defaults make sense.