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.2.1/07.01.07-Resource_dynamix_k...

9.1 KiB

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

Работа с cloud_init

Cloud Init позволяет запустить ноды worker группы с предустановленными настройками. Подробнее про настройку cloud_init можно прочесть по ссылке.

Пароли, указанные в 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
  1. Указать путь до файла initconfig.tftpl в качестве значения параметра cloud_init в ресурсе dynamix_k8s_wg:
resource "dynamix_k8s_wg" "wg1" {
   # ...

   cloud_init = file("initconfig.tftpl")

   # ...
}
  1. Выполнить 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 Тип эмулируемой системы для worker группы
ram int Количество RAM для одной worker node в Мбайтах,
по-умолчанию - 1024
disk int Размер загрузочного диска для worker node, в Гбайтах
по - умолчанию - 0
если установлен параметр 0, то размер диска будет равен размеру образа
labels []string Список lables
annotations []string Список annotations
taints []string Список taints
worker_chipset string Тип эмулируемой системы для worker node
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

  #тип эмулируемой системы worker группы
  #опциональный параметр
  #тип - строка
  chipset = "i440fx"

  #количество RAM для одной worker node в Мбайтах
  #опциональный параметр
  #тип - целое число
  #по-умолчанию - 1024
  ram = 1024

  #размер загрузочного диска для worker node, в Гбайтах
  #опциональный параметр
  #тип - целое число
  #по - умолчанию - 0
  #если установлен параметр 0, то размер диска будет равен размеру образа
  disk = 10

  #тип эмулируемой системы worker nodes
  #опциональный параметр
  #тип - строка
  worker_chipset = "i440fx"

  #id SEP'а для создания загрузочных дисков для группы worker node по умолчанию,
  #если не указан, используется sep_id образа
  #опциональный параметр
  #тип - целое число
  worker_sep_id = 1

  #pool для использования, если установлен worker_sep_id, если не указан, выбиравется системой
  #опциональный параметр
  #тип - строка
  worker_sep_pool = "pool"

  #Перечень аргументов для cloud-init для виртуальных машин worker групп
  #опциональный параметр
  #тип - файл с форматом в виде yaml
  #используется при создании и обновлении ресурса
  cloud_init = file("initconfig.tftpl")

}

После успешного завершения такого вызова dynamix_k8s_wg в переменной dynamix_k8s_wg.wg будут сохранены возвращаемые значения.В частности, для получения идентификатора k8s_wg следует использовать конструкцию dynamix_k8s_wg.wg.id