diff --git a/docs/30_registry/resources/postgres_backup.md b/docs/30_registry/resources/postgres_backup.md new file mode 100644 index 0000000..96074ea --- /dev/null +++ b/docs/30_registry/resources/postgres_backup.md @@ -0,0 +1,13 @@ +# Resource nubes_postgres_backup + +Service: `nubes_postgres` (ID: 90) + +[PostgreSQL (основной)](postgres.md) | [Operations](postgres_ops.md) | [Backup](postgres_backup.md) | [Example](postgres_backup_example.md) + +## Create params + +None. + +## Delete params + +None. diff --git a/docs/30_registry/resources/postgres_backup_example.md b/docs/30_registry/resources/postgres_backup_example.md new file mode 100644 index 0000000..a49493b --- /dev/null +++ b/docs/30_registry/resources/postgres_backup_example.md @@ -0,0 +1,30 @@ +# Resource nubes_postgres_backup — Example + +Service: `nubes_postgres` (ID: 90) + +[PostgreSQL (основной)](postgres.md) | [Operations](postgres_ops.md) | [Backup](postgres_backup.md) | [Example](postgres_backup_example.md) + +## Copy-ready manifest (`postgres_backup_main.tf`) + +```hcl +terraform { + required_providers { + nubes = { + source = "terra.k8c.ru/nubes/nubes" + version = "5.0.75" + } + } +} + +provider "nubes" { + api_token = "token_***" + api_endpoint = "https://lk-api-gateway-test.ngcloud.ru/api/v1/svc" +} + +# Родительский ресурс — nubes_postgres должен быть создан заранее +# resource "nubes_postgres" "baza" { ... } + +resource "nubes_postgres_backup" "example" { + postgres_id = nubes_postgres.baza.id +} +``` diff --git a/docs/30_registry/resources/postgres_database.md b/docs/30_registry/resources/postgres_database.md new file mode 100644 index 0000000..af1dd78 --- /dev/null +++ b/docs/30_registry/resources/postgres_database.md @@ -0,0 +1,24 @@ +# Resource nubes_postgres_database + +Service: `nubes_postgres` (ID: 90) + +[PostgreSQL (основной)](postgres.md) | [Operations](postgres_ops.md) | [Database](postgres_database.md) | [Example](postgres_database_example.md) + +## Create params + +**Обязательные параметры** + +
| ID | Code | Type | Description | Constraints |
|---|---|---|---|---|
| 741 | db_name | string | regex=^[A-Za-z0-9]+$ | |
| 742 | db_owner | string |
| ID | Code | Type | Description | Constraints |
|---|---|---|---|---|
| 743 | db_name | string |
| 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, 15, 14, 13 |
| 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 |
| ID | Code | Type | Description | Constraints |
|---|---|---|---|---|
| 91 | resource_instances | integer | Количество узлов в сети | minvalue=1; maxvalue=7 |
| 92 | resource_memory | integer | Квота памяти пода (MBytes) | minvalue=128; maxvalue=8192 |
| 93 | resource_cpu | integer | Квота ядра пода (milicores) | minvalue=100; maxvalue=4000 |
| 94 | resource_disk | integer | Квота диска (Указывается в GIGAbytes) | minvalue=1; maxvalue=999 |
| 147 | need_external_address_master | boolean | Выделяет внешний IP для доступа к master | value_list=false, true |
| 148 | need_external_address_slave | boolean | Выделяет внешний IP для доступа к slave. Действует, если slave в принципе есть | value_list=false, true |
| 267 | ext_backup_schedule | string | Не обязательный. Время запуска бекапа | 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))+)$ |
| 268 | ext_backup_num_to_retain | integer | Не обязательный. Количество сохраняемых бекапов | minvalue=1; maxvalue=99 |
| 315 | app_version | string | Версия PostgreSQL. Нельзя опускать вниз | value_list=17, 16, 15, 14, 13 |
| 316 | json_parameters | json | Массив переменных, более подробнее про настройку можно посмотреть https://www.postgresql.org/docs/current/runtime-config.html | maxlength=2048 |
| 317 | enable_pg_pooler_master | boolean | Включает pgPooler (на запись). Будет создан новый под | value_list=false, true |
| 318 | enable_pg_pooler_slave | boolean | Включает pgPooler (на чтение). Будет создан новый под | value_list=false, true |
| 319 | allow_no_ssl | boolean | По умолчанию подключение обязательное (sslmode=require). Выставление в true отключит этот параметр | value_list=false, true |
| 541 | ip_space_name_master | string | Имя ipSpace для публикации VIP master. Не может быть пустым, если включен needExternalAddressMaster. Пример: `internet-no-antiddos-v1` | |
| 542 | ip_space_name_slave | string | Имя ipSpace для публикации VIP slave. Не может быть пустым, если включен needExternalAddressSlave |
| ID | Code | Type | Description | Constraints |
|---|---|---|---|---|
| 733 | username | string | regex=^[A-Za-z0-9]+$; maxlength=62; minlength=2 | |
| 740 | role | string | `app_user` — стандартный пользователь с базовым набором прав `ddl_user` — пользователь с расширенными правами, включая управление ролями и базами данных | value_list=app_user, ddl_user |
| ID | Code | Type | Description | Constraints |
|---|---|---|---|---|
| 739 | username | string | Пример: `username-admin` |