8.1 KiB
Resource функция dynamix_k8s_wg служит для управления worker groups (рабочики группами, wg) кластера.
Работа с cloud_init
Доступно в версии провайдера 4.4.1 и выше.
Cloud Init позволяет запустить ноды worker группы с предустановленными настройками. Подробнее про настройку cloud_init можно прочесть по ссылке.
Пароли, указанные в cloud_init не сохраняются на платформе и не отображаются в API!
Для использования cloud_init конфигурации, следует:
- Создать файл с расширением
.tftpl
в рабочей директории. - Описать в созданном файле конфигурацию 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
- Указать путь до файла
initconfig.tftpl
в качестве значения параметраcloud_init
в ресурсеdynamix_k8s_wg
:
resource "dynamix_k8s_wg" "wg1" {
# ...
cloud_init = file("initconfig.tftpl")
# ...
}
- Выполнить
terraform apply
Импортирование ресурса
Так как ресурс k8s_wg является подресурсом k8s, то для его импорта необходимо указать ID кластера, а так же само имя ресурса.
Общая схема:
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 | ✔️ | ID экземпляра k8s |
name | string | ✔️ | Наименование worker group |
num | int | ❌ | Количество worker node для создания по - умолчанию - 1 |
cpu | int | ❌ | Количество cpu для 1 worker node по - умолчанию - 1 |
ram | int | ❌ | Количество RAM для одной worker node в Мбайтах, по-умолчанию - 1024 |
disk | int | ❌ | Размер загрузочного диска для worker node, в Гбайтах по - умолчанию - 0 если установлен параметр 0, то размер диска будет равен размеру образа |
labels | []string | ❌ | Список lables |
annotations | []string | ❌ | Список annotations |
taints | []string | ❌ | Список taints |
worker_sep_id | int | ❌ | ID SEP'а для создания загрузочных дисков для группы worker node по умолчанию, если не указан, используется sep_id образа |
worker_sep_pool | string | ❌ | Pool для использования, если установлен worker_sep_id, если не указан, выбиравется системой |
cloud_init | file | ❌ | Используется на этапе создания нод worker группы. Параметры для утилиты cloud_init, которая используется в платформе DYNAMIX для первичного конфигурирования нод worker группы |
Возвращаемые значения
В случае успешного выполнения resource функция dynamix_k8s_wg возвращает в указанную при вызове переменную следующие значения:
Параметр | Тип | Описание |
---|---|---|
wg_id | int | ID группы воркеров |
detailed_info | []Struct{} см. ниже | Детальная информация о группе воркеров |
labels | []string | Лейблы группы воркеров |
guid | int | ID ресурса |
annotations | []string | Аннотации группы воркеров |
taints | []string | Ограничения для группы воркеров |
Описание структуры detailed_info
Параметр | Тип | Описание |
---|---|---|
compute_id | int | ID компьюта, входящего в группу воркеров |
name | string | Имя компьюта |
status | string | Статус компьюта |
tech_status | string | Технический статус |
interfaces | []Struct{} см. ниже | Информация о интерфейсах компьюта |
natable_vins_ip | string | IP виртуальной сети |
natable_vins_network | string | Сеть vins |
Описание структуры interfaces
Параметр | Тип | Описание |
---|---|---|
def_gw | string | Шлюз по умолчанию |
ip_address | string | IP адрес компьюта |
Пример использования
Пример вызова resource функции dynamix_k8s_wg:
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