11 KiB
Resource функция dynamix_k8s_wg служит для управления worker groups (рабочики группами, wg) кластера.
Работа с cloud_init
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 |
chipset | string | ❌ | Тип эмулируемой системы для добавляемых vm worker группы |
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 | ❌ | Параметры для утилиты cloud_init, которая используется на платформе DYNAMIX для первичного конфигурирования нод worker группы |
Возвращаемые значения
В случае успешного выполнения resource функция dynamix_k8s_wg возвращает в указанную при вызове переменную следующие значения:
Параметр | Тип | Описание |
---|---|---|
annotations | []string | Аннотации группы воркеров |
chipset | string | Тип эмулируемой системы для добавляемых vm worker группы |
cloud_init | file | Параметры для утилиты cloud_init, которая используется на платформе DYNAMIX для первичного конфигурирования нод worker группы |
cpu | int | Количество cpu для 1 worker node по - умолчанию - 1 |
detailed_info | []Struct{} см. ниже | Детальная информация о группе воркеров |
disk | int | Размер загрузочного диска для worker node, в Гб |
guid | int | ID платформы |
id | string | ID ресурса |
k8s_id | int | ID экземпляра k8s |
labels | []string | Лейблы группы воркеров |
name | string | Наименование worker group |
num | int | Количество worker node для создания |
ram | int | Количество RAM для одной worker node в Мбайтах, по-умолчанию - 1024 |
taints | []string | Ограничения для группы воркеров |
wg_id | int | ID группы воркеров |
worker_sep_id | int | ID SEP'а для создания загрузочных дисков для группы worker node |
worker_sep_pool | string | Pool для использования |
Описание структуры 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
#тип эмулируемой системы
#опциональный параметр
#тип - строка
#используется при создании
#chipset = "i440fx"
#количество cpu для 1 worker node
#опциональный параметр
#тип - целое число
#по умолчанию - 1
#используется при создании
#cpu = 1
#количество RAM для одной worker node в МБ
#опциональный параметр
#тип - целое число
#по умолчанию - 1024
#используется при создании
#ram = 1024
#размер загрузочного диска для worker node, в ГБ
#опциональный параметр
#по умолчанию - 0
#если установлен параметр 0, то размер диска будет равен размеру образа
#тип - целое число
#используется при создании
#disk = 10
#список строк с labels для worker группы, в формате: ["label1=value1", "label2=value2"]
#опциональный параметр
#тип - массив строк
#используется при создании
#labels = ["label1=value1", "label2=value2"]
#список строк с annotations для worker группы, в формате: ["key1=value1", "key2=value2"]
#опциональный параметр
#тип - массив строк
#используется при создании
#annotations = ["key1=value1", "key2=value2"]
#список строк с taints для worker группы, в формате: ["key1=value1:NoSchedule", "key2=value2:NoExecute"]
#опциональный параметр
#тип - массив строк
#используется при создании
#taints = ["key1=value1", "key2=value2"]
#id СХД для создания загрузочных дисков для Worker-групп по умолчанию. Использует sepId образа, если не указан.
#опциональный параметр
#тип - целое число
#используется при создании
#worker_sep_id = 1
#пул для хранения Workers. Если не заполнить, будет выбран системой
#опциональный параметр
#тип - целое число
#используется при создании
#worker_sep_pool = "worker_pool"
#перечень аргументов для cloud-init для виртуальных машин worker групп
#опциональный параметр
#тип - файл в формате YAML
#используется при создании и обновлении
#cloud_init = file("initconfig.tftpl")
}
После успешного завершения такого вызова dynamix_k8s_wg в переменной dynamix_k8s_wg.wg
будут сохранены возвращаемые значения.В частности, для получения идентификатора k8s_wg следует использовать конструкцию dynamix_k8s_wg.wg.id