Функция доступна в провайдере версии 4.5.1 и выше.

_Resource_ функция **decort_cb_k8s_wg** служит для управления worker groups (рабочики группами, wg) кластера.

## Аргументы
_Resource_ функция **decort_cb_k8s_wg** для создания worker group принимает следующие аргументы:

| Аргумент | Тип      | Обязательный              | Описание                                                                                                                                               |
| --- |----------|---------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------|
| k8s_id | int      | :heavy_check_mark:        | ID экземпляра k8s                                                                                                                                      |
| name | string   | :heavy_check_mark:        | Наименование worker group                                                                                                                              |
| num | int      | :x:                       | Количество worker node для создания                                                                                                                    |
| cpu | int      | :x:                       | Количество cpu для 1 worker node<br/>по - умолчанию - 1                                                                                                |
| ram | int      | :x:                       | Количество RAM для одной worker node в Мбайтах, <br/>по-умолчанию - 1024                                                                               |
| disk | int      | :x:                       | Размер загрузочного диска для worker node, в Гбайтах<br/>по - умолчанию - 0<br/>если установлен параметр 0, то размер диска будет равен размеру образа |
| cloud_init | string   | :x:                       | Предустановленные настройки группы воркеров кластера Kubernetes (k8s)                                                                                  |
| labels | []string | :x:                       | Лейблы группы воркеров в формате: ["label1=value1", "label2=value2"]                                                                                   |
| annotations | []string | :x: | Аннотации группы workers в формате: ["key1=value1", "key2=value2"]                                                                                     |
|taints| []string | :x: | Список строк с taints для worker группы, в формате: ["key1=value1:NoSchedule", "key2=value2:NoExecute"]                                                |
|worker_sep_id| int      |:x:| ID СХД для создания загрузочных дисков для Worker-групп по умолчанию. Использует sepId образа, если не указан. Значение по умолчанию 0.                |
|worker_sep_pool|string|:x:| Пул для хранения Workers. Если не заполнить, будет выбран системой.                                                                                    |

## Возвращаемые значения

В случае успешного выполнения _resource_ функция **decort_cb_k8s_wg** возвращает в указанную при вызове переменную следующие значения:

| Параметр | Тип | Описание |
| --- | --- | --- |
| wg_id  | int | ID группы воркеров кластера |
| detailed_info | []Struct{} [см. ниже](#описание-структуры-списка-detailed_info) | Детальная информация о группе                                  |
| k8s_id | int | ID экземпляра k8s |
| name | string | Наименование worker group |
| num | int | Количество worker node для создания |
| cpu | int | Количество cpu для 1 worker node |
| ram | int | Количество RAM для одной worker node в Мбайтах |
| disk | int | Размер загрузочного диска для worker node, в Гбайтах |
| labels | []string | Лейблы ресурса |
| guid | int | ID ресурса |
| annotations | []string | Аннотации ресурса |
| taints | []string | ограничители группы workers |

### Описание структуры списка detailed_info

| Параметр | Тип | Описание |
| --- | --- | --- |
| compute_id | int | ID компьюта в составе группы |
| name | string | Имя компьюта в составе группы |
| status | string | Статус компьюта в составе группы |
| tech_status | string | Технический статус компьюта в составе группы |
| interfaces | []Struct{} [см. ниже](#описание-структуры-списка-interfaces) | Список интерфейсов группы |

### Описание структуры списка interfaces

| Параметр | Тип | Описание |
| --- | --- | --- |
| def_gw | string | Шлюз по умолчанию |
| ip_address | string | IP интерфейса |

## Пример использования
Пример вызова _resource_ функции **decort_cb_k8s_wg**:
```terraform
resource "decort_cb_k8s_wg" "wg" {
  k8s_id = 1234 //это значение должно быть результатом вызова decort_cb_k8s_cp.cluster.k8s_id
  name = "workers-2"
  #num = 2
  #cpu = 1
  #ram = 1024
  #disk = 10
  #labels = ["label1=value1", "label2=value2"]
  #annotations = ["key1=value1", "key2=value2"]
  #taints = ["key1=value1", "key2=value2"]
  #worker_sep_id = 1
  #worker_sep_pool = "worker_pool"
  #cloud_init = file("initconfig.tftpl")
}

# once the above directive completes, k8s wg will be accessible 
# as decort_cb_k8s_wg.wg
```

Пример содержимого файла _initconfig.tftpl_:
```tftpl
---
users:
- groups: users, wheel
  name: user
  plain_text_passwd: examplePassword
  primary_group: user
  ssh_authorized_keys:
  - ssh-rsa EXAMPLE%id_rsa.pub
  sudo: ALL=(ALL) NOPASSWD:ALL
```

Данный пример подразумевает, что ранее по тексту tf-файла выполнена корректная инициализация провайдера (подробнее об инициализации Terraform провайдера DECORT см. соответствующий [раздел](https://repository.basistech.ru/BASIS/wiki-terraform-provider-decort/src/branch/main/4.5.3/04.02-Инициализация-Terraform-провайдера-DECORT.md)). 
