131 lines
6.3 KiB
Markdown
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.
|
|
|