|
|
|
@ -0,0 +1,181 @@
|
|
|
|
|
Функция доступна в провайдере версии 4.2.0 и выше.
|
|
|
|
|
|
|
|
|
|
_Resource_ функция **decort_k8s_cp** служит для управления control plane кластера k8s. Функция позволяет:
|
|
|
|
|
- Создать кластер
|
|
|
|
|
- Удалить кластер
|
|
|
|
|
- Настроить мастер-узел
|
|
|
|
|
- Изменить кол-во ВМ в мастер-узле
|
|
|
|
|
|
|
|
|
|
Созданный с помощью данного ресурса кластер не имеет стандартных рабочих узлов и логики управления ими. Для управления worker-группами используется отдельный ресурс `decort_k8s_wg`. <br/>
|
|
|
|
|
**!** При удалении ресурса `decort_k8s_cp` удалится сам кластер и все зависимые ресурсы (worker-группы) <br/>
|
|
|
|
|
**!** При использовании `decort_k8s_cp` не рекомендуется параллельное использование `decort_k8s` для управления одним и тем же кластером во избежание проблем с идемпотентностью
|
|
|
|
|
|
|
|
|
|
**Данный способ управления кластерами стал предпочтительным с версии провайдера 4.2.0 - для упрощения процесса миграции обратитесь к статье. (ссылка)**
|
|
|
|
|
|
|
|
|
|
## Аргументы
|
|
|
|
|
_Resource_ функция **decort_flipgroup** принимает следующие аргументы:
|
|
|
|
|
|
|
|
|
|
| Аргумент | Тип | Обязательный | Описание |
|
|
|
|
|
| --- | --- | :---: | --- |
|
|
|
|
|
| name | string | :heavy_check_mark: | Наименование кластера |
|
|
|
|
|
| k8sci_id | int | :heavy_check_mark: | ID k8s CI |
|
|
|
|
|
| network_plugin | string | :heavy_check_mark: | Плагин сети ("flannel", "weavenet" или "calico") |
|
|
|
|
|
| rg_id | int | :heavy_check_mark: | ID ресурсной группы |
|
|
|
|
|
| num | int | :heavy_check_mark: | Кол-во ВМ в мастер-узле (1 или 3) |
|
|
|
|
|
| cpu | int | :x: | Кол-во ядер для мастер-узла |
|
|
|
|
|
| ram | int | :x: | Кол-во RAM (в мб) для мастер-узла |
|
|
|
|
|
| disk | int | :x: | Размер диска мастер-узла |
|
|
|
|
|
| sep_id | int | :x: | Storage Endpoint ID мастер-узла |
|
|
|
|
|
| sep_pool | string | :x: | SEP пул мастер-узла |
|
|
|
|
|
| with_lb | bool | :x: | Создать кластер с/без балансировщика нагрузки |
|
|
|
|
|
| extnet_id | int | :x: | ID внешний сети для подключения worker'ов |
|
|
|
|
|
| desc | string | :x: | Описание кластера |
|
|
|
|
|
| start | bool | :x: | Старт/Стоп кластера |
|
|
|
|
|
|
|
|
|
|
## Возвращаемые значения
|
|
|
|
|
|
|
|
|
|
В случае успешного выполнения _resource_ функция **decort_k8s_cp** возвращает в указанную при вызове переменную следующие значения:
|
|
|
|
|
|
|
|
|
|
| Параметр | Тип | Описание |
|
|
|
|
|
| --- | --- | --- |
|
|
|
|
|
| acl | Struct{} [см. ниже](#описание-структуры-списка-acl) | acl |
|
|
|
|
|
| account_id | int | ID аккаунта |
|
|
|
|
|
| account_name | string | Имя аккаунта |
|
|
|
|
|
| bservice_id | int | ID bservice |
|
|
|
|
|
| k8sci_id | int | ID образа кластера |
|
|
|
|
|
| k8s_id | int | ID кластера |
|
|
|
|
|
| detailed_info | Struct{} [см.ниже](#описание-структуры-списка-detailed_info) | Информация о ВМ внутри мастер-узла |
|
|
|
|
|
| master_id | int | ID мастер-узла |
|
|
|
|
|
| master_name | string | Наименование мастер-узла |
|
|
|
|
|
| num | int | Кол-во ВМ в мастер-узле (1 или 3) |
|
|
|
|
|
| cpu | int | Кол-во ядер для мастер-узла |
|
|
|
|
|
| ram | int | Кол-во RAM (в мб) для мастер-узла |
|
|
|
|
|
| disk | int | Размер диска мастер-узла |
|
|
|
|
|
| sep_id | int | Storage Endpoint ID мастер-узла |
|
|
|
|
|
| sep_pool | string | SEP пул мастер-узла |
|
|
|
|
|
| created_by | string | Кем был создан ресурс |
|
|
|
|
|
| created_time | int | Время создания ресурса |
|
|
|
|
|
| deleted_by | string | Кем был удален ресурс |
|
|
|
|
|
| deleted_time | int | Время удаления ресурса |
|
|
|
|
|
| extnet_id | int | ID внешней сети |
|
|
|
|
|
| k8s_ci_name | string | Имя образа кластера |
|
|
|
|
|
| lb_id | int | ID балансировщика нагрзуки |
|
|
|
|
|
| lb_ip | string | IP балансировщика нагрзуки |
|
|
|
|
|
| name | string | Имя ресурса |
|
|
|
|
|
| network_plugin | string | Сетевой плагин |
|
|
|
|
|
| rg_id | int | ID ресурсной группы |
|
|
|
|
|
| rg_name | string | Имя ресурсной группы |
|
|
|
|
|
| status | string | Статус ресурса |
|
|
|
|
|
| tech_status | string | Технический статус ресурса |
|
|
|
|
|
| updated_by | string | Кем был обновлен ресурс |
|
|
|
|
|
| updated_time | int | Время последнего обновления ресурса |
|
|
|
|
|
| kubeconfig | string | Конфиг |
|
|
|
|
|
| vins_id | int | ID виртуальной сети |
|
|
|
|
|
|
|
|
|
|
### Описание структуры списка acl
|
|
|
|
|
|
|
|
|
|
| Параметр | Тип | Описание |
|
|
|
|
|
| --- | --- | --- |
|
|
|
|
|
| explicit | bool | explicit |
|
|
|
|
|
| guid | string | ID ресурса |
|
|
|
|
|
| right | string | right |
|
|
|
|
|
| status | string | Статус ресурса |
|
|
|
|
|
| type | string | Тип ресурса |
|
|
|
|
|
| user_group_id | string | ID группы |
|
|
|
|
|
|
|
|
|
|
### Описание структуры списка detailed_info
|
|
|
|
|
|
|
|
|
|
| Параметр | Тип | Описание |
|
|
|
|
|
| --- | --- | --- |
|
|
|
|
|
| compute_id | int | ID компьюта в составе группы |
|
|
|
|
|
| name | string | Имя компьюта в составе группы |
|
|
|
|
|
| status | string | Статус компьюта в составе группы |
|
|
|
|
|
| tech_status | string | Статус компьюта в составе группы |
|
|
|
|
|
| interfaces | []Struct{} [см. ниже](#описание-структуры-списка-interfaces) | Список интерфейсов группы |
|
|
|
|
|
| natable_vins_ip | string | IP NAT |
|
|
|
|
|
| natable_vins_network | string | IP виртуальной сети |
|
|
|
|
|
|
|
|
|
|
### Описание структуры списка interfaces
|
|
|
|
|
|
|
|
|
|
| Параметр | Тип | Описание |
|
|
|
|
|
| --- | --- | --- |
|
|
|
|
|
| def_gw | string | Шлюз по умолчанию |
|
|
|
|
|
| ip_address | string | IP интерфейса |
|
|
|
|
|
|
|
|
|
|
## Пример использования
|
|
|
|
|
Пример вызова _resource_ функции **decort_k8s_cp**:
|
|
|
|
|
```terraform
|
|
|
|
|
resource "decort_k8s_cp" "cp" {
|
|
|
|
|
# Название кластера
|
|
|
|
|
# Обязательный параметр
|
|
|
|
|
# string
|
|
|
|
|
name = <NAME>
|
|
|
|
|
|
|
|
|
|
# K8sCI ID
|
|
|
|
|
# Обязательный параметр
|
|
|
|
|
# int
|
|
|
|
|
k8sci_id = <ID>
|
|
|
|
|
|
|
|
|
|
# Плагин сети (flannel, weavenet или calico)
|
|
|
|
|
# Обязательный параметр
|
|
|
|
|
# string
|
|
|
|
|
network_plugin = "flannel"
|
|
|
|
|
|
|
|
|
|
# ID ресурсной группы
|
|
|
|
|
# Обязательный параметр
|
|
|
|
|
# int
|
|
|
|
|
rg_id = <ID>
|
|
|
|
|
|
|
|
|
|
# Кол-во ядер мастер-узла
|
|
|
|
|
# Опциональный параметр
|
|
|
|
|
# int
|
|
|
|
|
cpu = 2
|
|
|
|
|
|
|
|
|
|
# Объем RAM мастер-узла
|
|
|
|
|
# Опциональный параметр
|
|
|
|
|
# int
|
|
|
|
|
ram = 2048
|
|
|
|
|
|
|
|
|
|
# Кол-во ВМ мастер-узла (1 или 3)
|
|
|
|
|
# Опциональный параметр
|
|
|
|
|
# int
|
|
|
|
|
num = 1
|
|
|
|
|
|
|
|
|
|
# Размер диска мастер-узла
|
|
|
|
|
# Опциональный параметр
|
|
|
|
|
# int
|
|
|
|
|
disk = 10
|
|
|
|
|
|
|
|
|
|
# Описание кластера
|
|
|
|
|
# Опциональный параметр
|
|
|
|
|
# string
|
|
|
|
|
desc = "<DESCRIPTION>"
|
|
|
|
|
|
|
|
|
|
# ID внешней сети
|
|
|
|
|
# Опциональный параметр
|
|
|
|
|
# id
|
|
|
|
|
extnet_id = <ID>
|
|
|
|
|
|
|
|
|
|
# Storage Endpoint ID
|
|
|
|
|
# Опциональный параметр
|
|
|
|
|
# id
|
|
|
|
|
sep_id = <ID>
|
|
|
|
|
|
|
|
|
|
# SEP Pool
|
|
|
|
|
# Опциональный параметр
|
|
|
|
|
# string
|
|
|
|
|
sep_pool = <POOL>
|
|
|
|
|
|
|
|
|
|
# Старт/Стоп кластера
|
|
|
|
|
# Опциональный параметр
|
|
|
|
|
# bool
|
|
|
|
|
start = <BOOL>
|
|
|
|
|
|
|
|
|
|
# Создать кластер с/без балансировщика нагрузки
|
|
|
|
|
# Опциональный параметр
|
|
|
|
|
# bool
|
|
|
|
|
with_lb = <BOOL>
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
После успешного завершения такого вызова **decort_k8s_cp** в переменной `decort_k8s_cp.cp` будут сохранены возвращаемые значения.
|