TOOLS/ — generators + scripts + config + ARCHITECTURE.md ├── yaml-generator/ (code) ├── resource-generator/ (code) ├── docs-generator/ (code) ├── scripts/ (← devops/*.sh) ├── config/ (← devops/profiles/ + devops/config/) │ ├── test/ profile.env, services_list.txt, operation_timeouts.json │ ├── prod/ │ └── dev/ └── ARCHITECTURE.md (← devops/ARCHITECTURE.md) generated/ — pipeline output only (gitignored) ├── test/resources_yaml/, go/, docs/, provider_build/ ├── prod/ └── dev/ provider/ — code only, no generated files resources_yaml/ — DELETED (generated) internal/resources_gen/ — DELETED (generated) devops/ — removed (replaced by TOOLS/scripts + TOOLS/config + generated/) Generators now fail if NUBES_*_DIR not set (no defaults to provider/). Provider requires pipeline to populate resources_gen/ before build.
8.4 KiB
8.4 KiB
Resource nubes_postgres
Service ID: 90
Service Name: PostgreSQL
Manual | Create params | Modify params | Output params | Operations | Example
Create params
Обязательные параметры (вводимые пользователем)
| ID | Code | Type | Description | Constraints |
|---|---|---|---|---|
| 23 | s3_uid | uuid | Экземпляр (учетная запись) S3 для резервного копирования. Резервное копирование обязательно | ref_svc_id=12 |
| 102 | resource_realm | string | Кластер Kubernetes, на котором будет развернут экземпляр | func=getAvailableResourceRealms |
| 337 | ip_space_name_master | string | Имя ipSpace для публикации VIP master. Не может быть пустым, если включен needExternalAddressMaster. Пример: `internet-no-antiddos-v1` | |
| 338 | ip_space_name_slave | string | Имя ipSpace для публикации VIP slave. Не может быть пустым, если включен needExternalAddressSlave |
Параметры, имеющие значение по умолчанию, если не меняете - эти параметры не обязательно прописывать в манифесте
| ID | Code | Type | Default | Description | Constraints |
|---|---|---|---|---|---|
| 80 | resource_instances | integer | 1 | Количество узлов в кластере. 1,3,5,7 | minvalue=1; maxvalue=7; regex=^[1357]$ |
| 81 | resource_memory | integer | 512 | Квота памяти пода (MBytes) | minvalue=128; maxvalue=8192 |
| 82 | resource_cpu | integer | 500 | Квота ядра пода (milicores) | minvalue=100; maxvalue=4000 |
| 83 | resource_disk | 10 | Квота диска (Указывается в GIGAbytes) | minvalue=1; maxvalue=999 | |
| 145 | need_external_address_master | boolean | false | Выделяет внешний (белый) IP для доступа к master | value_list=false, true |
| 146 | need_external_address_slave | boolean | false | Выделяет внешний (белый) IP для доступа к slave. Будет работать, если slave в принципе есть | value_list=false, true |
| 265 | ext_backup_schedule | string | 0 0 * * * | Не обязательный. Время запуска бекапа | regex=^((((\d+,)+\d+|(\d+(\/|-|#)\d+)|(\d+L?)|(\*(\/\d+)?)|(L(-\d+)?)|(\?)|([A-Z]{3}(-[A-Z]{3})?)) ?){5,7})|(@(annually|yearly|monthly|weekly|daily|hourly|reboot))|(@every (\d+(ns|us|µs|ms|s|m|h))+)$ |
| 266 | ext_backup_num_to_retain | integer | 7 | Не обязательный. Количество сохраняемых бекапов | minvalue=1; maxvalue=99 |
| 310 | app_version | string | 17 | Версия PostgreSQL | value_list=17, 16 |
| 311 | json_parameters | json | { "log_connections": "off", "log_disconnections": "off" } | Массив переменных, более подробнее про настройку можно посмотреть https://www.postgresql.org/docs/current/runtime-config.html | maxlength=2048 |
| 312 | enable_pg_pooler_master | boolean | false | Включает pgPooler (на запись). Будет создан новый под | value_list=false, true |
| 313 | enable_pg_pooler_slave | boolean | false | Включает pgPooler (на чтение). Будет создан новый под | value_list=false, true |
| 314 | allow_no_ssl | boolean | false | По умолчанию подключение обязательное (sslmode=require). Выставление в true отключит этот параметр | value_list=false, true |
| 329 | auto_scale | boolean | false | Включает автоскейлинг PV. При включении параметра необходимо настроить autoScalePercentage и autoScaleTechWindow. Алерт при срабатывании вызывает modify у текущей услуги | value_list=false, true |
| 330 | auto_scale_percentage | integer | 10 | Требует включения autoScale. Позволяет указать в процентах расширение от текущего макс объема | value_list=10, 15, 20 |
| 331 | auto_scale_tech_window | integer | 0 | Требует включения autoScale. Окно обновления (пока не реализовано). Указывается час в виде Integer (0 / 5 / 12 / 23) | value_list=0, 5, 12, 23 |
| 339 | auto_scale_quota_gb | string | 1 | Квота для autoScale |
Параметры поведения (кратко)
По умолчанию: `suspend_on_destroy = True`, `adopt_existing_on_create = False`.
При `terraform destroy` или удалении ресурса из манифеста:
- `suspend_on_destroy=true` — инстанс переводится в `Suspend` (не удаляется).
- `suspend_on_destroy=false` — Terraform удаляет ресурс только из state.
При `apply` флаг `adopt_existing_on_create` работает как авто-`import`:
- `false` — если ресурс уже есть, будет ошибка.
- `true` — Terraform может взять существующий инстанс под управление (`running` → adopt, `suspended` → resume+adopt при совпадении параметров).
Важно: один инстанс должен быть только в одном state. Иначе получите конфликт управления.
По умолчанию: `suspend_on_destroy = True`, `adopt_existing_on_create = False`.
При `terraform destroy` или удалении ресурса из манифеста:
- `suspend_on_destroy=true` — инстанс переводится в `Suspend` (не удаляется).
- `suspend_on_destroy=false` — Terraform удаляет ресурс только из state.
При `apply` флаг `adopt_existing_on_create` работает как авто-`import`:
- `false` — если ресурс уже есть, будет ошибка.
- `true` — Terraform может взять существующий инстанс под управление (`running` → adopt, `suspended` → resume+adopt при совпадении параметров).
Важно: один инстанс должен быть только в одном state. Иначе получите конфликт управления.