|
|
_Resource_ функция **dynamix_k8s_wg** служит для управления worker groups (рабочики группами, wg) кластера.
|
|
|
|
|
|
### Работа с cloud_init
|
|
|
Доступно в версии провайдера 4.4.1 и выше.
|
|
|
|
|
|
Cloud Init позволяет запустить ноды worker группы с предустановленными настройками. Подробнее про настройку cloud_init можно прочесть по [ссылке](https://cloudinit.readthedocs.io/en/latest/reference/examples.html).
|
|
|
|
|
|
**Пароли, указанные в cloud_init не сохраняются на платформе и не отображаются в API!**
|
|
|
|
|
|
Для использования cloud_init конфигурации, следует:
|
|
|
|
|
|
1. Создать файл с расширением `.tftpl` в рабочей директории.
|
|
|
2. Описать в созданном файле конфигурацию cloud_init в формате YAML:
|
|
|
|
|
|
#### initconfig.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
|
|
|
runcmd:
|
|
|
- echo 12345 > /home/user/test
|
|
|
```
|
|
|
|
|
|
3. Указать путь до файла `initconfig.tftpl` в качестве значения параметра `cloud_init` в ресурсе `dynamix_k8s_wg`:
|
|
|
|
|
|
```terraform
|
|
|
resource "dynamix_k8s_wg" "wg1" {
|
|
|
# ...
|
|
|
|
|
|
cloud_init = file("initconfig.tftpl")
|
|
|
|
|
|
# ...
|
|
|
}
|
|
|
```
|
|
|
|
|
|
4. Выполнить `terraform apply`
|
|
|
|
|
|
## Импортирование ресурса
|
|
|
|
|
|
Так как ресурс k8s_wg является подресурсом k8s, то для его импорта необходимо указать ID кластера, а так же само имя ресурса.
|
|
|
Общая схема:
|
|
|
|
|
|
```terraform
|
|
|
terraform import dynamix_k8s_wg.<var> <wg_id>#<k8s_id>
|
|
|
```
|
|
|
|
|
|
Пример:
|
|
|
|
|
|
```
|
|
|
terraform import dynamix_k8s_wg.wg 777#888
|
|
|
```
|
|
|
|
|
|
## Ограничение на наименование ресурса
|
|
|
|
|
|
Ресурс не должен содержать в названии символ `#`
|
|
|
|
|
|
## Работа в параллельном режиме
|
|
|
|
|
|
Рекомендуется создавать одновременно не более одного экземпляра ресурса.
|
|
|
В случае необходимости создания нескольких ресурсов одновременно, необходимо запускать `terraform apply/plan` в режиме `-parallelism=1`.
|
|
|
|
|
|
## Аргументы
|
|
|
|
|
|
_Resource_ функция **dynamix_k8s_wg** для создания worker group принимает следующие аргументы:
|
|
|
|
|
|
| Аргумент | Тип | Обязательный | Описание |
|
|
|
| --- | --- | --- | --- |
|
|
|
| k8s_id | int | :heavy_check_mark: | ID экземпляра k8s |
|
|
|
| name | string | :heavy_check_mark: | Наименование worker group |
|
|
|
| num | int | :x: | Количество worker node для создания<br/>по - умолчанию - 1 |
|
|
|
| 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, то размер диска будет равен размеру образа |
|
|
|
| labels | []string | :x: | Список lables |
|
|
|
| annotations | []string | :x: | Список annotations |
|
|
|
| taints | []string | :x: | Список taints |
|
|
|
| worker_sep_id | int | :x: | ID SEP'а для создания загрузочных дисков для группы worker node по умолчанию, если не указан, используется sep_id образа |
|
|
|
| worker_sep_pool | string | :x: | Pool для использования, если установлен worker_sep_id, если не указан, выбиравется системой |
|
|
|
| cloud_init | file | :x: | Используется на этапе создания нод worker группы.<br/>Параметры для утилиты _cloud_init_, которая используется в платформе DYNAMIX для первичного конфигурирования нод worker группы |
|
|
|
|
|
|
## Возвращаемые значения
|
|
|
|
|
|
В случае успешного выполнения _resource_ функция **dynamix_k8s_wg** возвращает в указанную при вызове переменную следующие значения:
|
|
|
| Параметр | Тип | Описание |
|
|
|
| --- | --- | --- |
|
|
|
| wg_id | int | ID группы воркеров |
|
|
|
| detailed_info | []Struct{} [см. ниже](#описание-структуры-detailed_info) | Детальная информация о группе воркеров |
|
|
|
| labels | []string | Лейблы группы воркеров |
|
|
|
| guid | int | ID ресурса |
|
|
|
| annotations | []string | Аннотации группы воркеров |
|
|
|
| taints | []string | Ограничения для группы воркеров |
|
|
|
|
|
|
### Описание структуры detailed_info
|
|
|
|
|
|
| Параметр | Тип | Описание |
|
|
|
| --- | --- | --- |
|
|
|
| compute_id | int | ID компьюта, входящего в группу воркеров |
|
|
|
| name | string | Имя компьюта |
|
|
|
| status | string | Статус компьюта |
|
|
|
| tech_status | string | Технический статус |
|
|
|
| interfaces | []Struct{} [см. ниже](#описание-структуры-interfaces) | Информация о интерфейсах компьюта |
|
|
|
| natable_vins_ip | string | IP виртуальной сети |
|
|
|
| natable_vins_network | string | Сеть vins |
|
|
|
|
|
|
### Описание структуры interfaces
|
|
|
|
|
|
| Параметр | Тип | Описание |
|
|
|
| --- | --- | --- |
|
|
|
| def_gw | string | Шлюз по умолчанию |
|
|
|
| ip_address | string | IP адрес компьюта |
|
|
|
|
|
|
## Пример использования
|
|
|
|
|
|
Пример вызова _resource_ функции **dynamix_k8s_wg**:
|
|
|
|
|
|
```terraform
|
|
|
resource "dynamix_k8s_wg" "wg" {
|
|
|
#id экземпляра k8s
|
|
|
#обязательный параметр
|
|
|
#тип - целое число
|
|
|
k8s_id = 1234
|
|
|
|
|
|
#имя worker group
|
|
|
#обязательный параметр
|
|
|
#тип - строка
|
|
|
name = "workers-2"
|
|
|
|
|
|
#количество worker node для создания
|
|
|
#опциональный параметр
|
|
|
#тип - целое число
|
|
|
#по - умолчанию - 1
|
|
|
num = 2
|
|
|
|
|
|
#количество cpu для 1 worker node
|
|
|
#опциональный параметр
|
|
|
#тип - целое число
|
|
|
#по - умолчанию - 1
|
|
|
cpu = 1
|
|
|
|
|
|
#количество RAM для одной worker node в Мбайтах
|
|
|
#опциональный параметр
|
|
|
#тип - целое число
|
|
|
#по-умолчанию - 1024
|
|
|
ram = 1024
|
|
|
|
|
|
#размер загрузочного диска для worker node, в Гбайтах
|
|
|
#опциональный параметр
|
|
|
#тип - целое число
|
|
|
#по - умолчанию - 0
|
|
|
#если установлен параметр 0, то размер диска будет равен размеру образа
|
|
|
disk = 10
|
|
|
|
|
|
#Перечень аргументов для cloud-init для виртуальных машин worker групп
|
|
|
#опциональный параметр
|
|
|
#тип - файл с форматом в виде yaml
|
|
|
#используется при создании и обновлении ресурса
|
|
|
cloud_init = file("initconfig.tftpl")
|
|
|
|
|
|
}
|
|
|
```
|
|
|
|
|
|
После успешного завершения такого вызова **dynamix_k8s_wg** в переменной `dynamix_k8s_wg.wg` будут сохранены возвращаемые значения.В частности, для получения идентификатора k8s_wg следует использовать конструкцию `dynamix_k8s_wg.wg.id`
|