You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
terraform-provider-dynamix/wiki/1.0.0/07.01.07-Resource_dynamix_k...

170 lines
8.1 KiB

7 months ago
_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`