This commit is contained in:
asteam
2025-07-01 13:44:09 +03:00
parent 5382579a5f
commit ddbb12996d
1041 changed files with 2842 additions and 96448 deletions

View File

@@ -2,7 +2,6 @@
Пример использования
Ресурса account
Ресурс позволяет:
1. Создавать аккаунт
2. Редактировать аккаунт
3. Удалять аккаунт
*/
@@ -34,45 +33,32 @@ resource "dynamix_account" "a" {
#имя аккаунта
#обязательный параметр
#тип - строка
#используется при создании и редактировании аккаунта
#используется при обновлении
account_name = "new_my_account"
#имя пользователя - создателя аккаунта
#обязательный параметр
#тип - строка
username = "username@decs3o"
#доступность аккаунта
#опциональный параметр
#тип - булев
#может применяться при редактировании аккаунта
enable = true
#id аккаунта, позволяет сформировать .tfstate, если аккаунт имеет в платформе
#опциональный параметр
#тип - целое число
account_id = 11111
#электронная почта, на которую будет отправлена информация о доступе
#опциональный параметр
#тип - строка
#применяется при создании аккаунта
emailaddress = "fff@fff.ff"
#по умолчанию - true
#используется при обновлении
#enable = true
#отправлять ли на электронную почту письмо о доступе
#опциональный параметр
#тип - булев
#применяется при создании аккаунта и редактировании аккаунта
send_access_emails = true
#по умолчанию - true
#используется при обновлении
#send_access_emails = true
#добавление/редактирование/удаление пользователей, к которым привязан аккаунт
#опциональный параметр
#тип - объект, кол-во таких объектов не ограничено
users = [{
#тип - массив объектов, кол-во таких объектов не ограничено
#используется при обновлении
#users = [{
#id пользователя
#обязательный параметр
#тип - строка
user_id = "username_2@decs3o"
#user_id = "username_2@decs3o"
#тип доступа пользователя
#обязательный параметр
@@ -81,50 +67,50 @@ resource "dynamix_account" "a" {
#R - чтение
#RCX - запись
#ARCXDU - админ
access_type = "R"
}]
#access_type = "R"
#}]
#ограничение используемых ресурсов
#опциональный параметр
#тип - объект
#используется при создании и редактировании
resource_limits = {
#используется при обновлении
#resource_limits = {
#кол-во используемых ядер cpu
#опциональный параметр
#тип - целое число
#если установлена -1 - кол-во неограиченно
cu_c = 2
#cu_c = 2
#кол-во используемой RAM в МБ
#опциональный параметр
#тип - целое число
#если установлена -1 - кол-во неограиченно
cu_m = 1024
#cu_m = 1024
#размер дисков, в ГБ
#опциональный параметр
#тип - целое число
#если установлена -1 - размер неограичен
cu_d = 23
#cu_d = 23
#кол-во используемых публичных IP
#опциональный параметр
#тип - целое число
#если установлена -1 - кол-во неограиченно
cu_i = 2
#cu_i = 2
#ограничения на кол-во передачи данных, в ГБ
#опциональный параметр
#тип - целое число
#если установлена -1 - кол-во неограиченно
cu_np = 2
#cu_np = 2
#кол-во графических процессоров
#опциональный параметр
#тип - целое число
#если установлена -1 - кол-во неограиченно
gpu_units = 2
}
#gpu_units = 2
#}
#восстановление аккаунта
#опциональный параметр
@@ -133,13 +119,23 @@ resource "dynamix_account" "a" {
#по умолчанию - true
#restore = false
#мгновеное удаление аккаунта, если да - то аккаунт невозможно будет восстановить
#флаг для удаления аккаунта, без возможности восстановления
#опциональный параметр
#тип - булев
#используется при удалении аккаунта
#по умолчанию - true
#используется при удалении
#permanently = true
#описание
#опциональный параметр
#строка
#desc = "description"
#причина отключения аккаунта
#опциональный параметр
#тип - строка
#используется при обновлении
#reason = "something_reason"
}
output "test" {

View File

@@ -48,7 +48,7 @@ resource "dynamix_bservice" "b" {
#необязательный параметр
#тип - булев
#используется при редактировании ресурса
#по-умолачанию - false
#по-умолчанию - true
#enable = true
#снимок состояния
@@ -76,7 +76,7 @@ resource "dynamix_bservice" "b" {
#необязательный параметр
#тип - булев
#используется при редактировании ресурса
#по-умолачанию - false
#по-умолчанию - false
#start = false
#восстановление сервиса после удаления
@@ -90,7 +90,7 @@ resource "dynamix_bservice" "b" {
#необязательный параметр
#тип - булев
#используется при удалении ресурса
#по-умолачанию - false
#по-умолчанию - true
#permanently = true
}

View File

@@ -75,6 +75,13 @@ resource "dynamix_bservice_group" "bsg" {
#тип - строка
driver = "kvm_x86"
#чипсет
#возможные значения - i440fx, Q35
#значение по умолчанию - i440fx
#опциональный параметр
#тип - строка
#chipset = "i440fx"
#id Storage endpoint provider
#необязательный параметр
#тип - целое число

View File

@@ -1,6 +1,9 @@
/*
Пример использования
Ресурса диска
1. Создавать диск
2. Редактировать диск
3. Удалять диск
*/
#Раскомментируйте этот код,
@@ -30,80 +33,80 @@ resource "dynamix_disk" "disk" {
#id аккаунта
#обязательный параметр
#тип - целое число
#используется при создании
account_id = 88366
#gid
#обязательный параметр
#тип - целое число
gid = 212
#название диска диска
#название диска
#обязательный параметр
#тип - строка
#используется при создании и обновлении
disk_name = "super-disk-re"
#максимальный размер диска
#максимальный размер диска, в ГБ
#обязательный параметр
#тип - целое число
#используется при создании и обновлении
size_max = 20
#тип диска
#опциональный параметр
#тип - строка
#допустимые значения: "D", "B", "T"
#значение по умолчанию: "D"
#type = "d"
#sep id
#опциональный параметр
#тип - целое число
#значение по умолчанию 0
#по умолчанию - 0
#используется при создании
#sep_id = 1
#название pool
#опциональный параметр
#тип - строка
#используется при создании
#pool = "pool_name"
#описание диска
#опциональный параметр
#тип - строка
#используется при создании и обновлении
#desc = "description"
#флаг поделиться диском
#опциональный параметр
#тип - булев
#по умолчанию - false
#используется при создании и обновлении
#shareable = true
#настройки лимитов операций записи/чтения с диска
#опциональный параметр
#тип - блок, тип вложенных полей - число
iotune = {
read_bytes_sec = 0
read_bytes_sec_max = 0
read_iops_sec = 0
read_iops_sec_max = 0
size_iops_sec = 0
total_bytes_sec = 0
total_bytes_sec_max = 0
total_iops_sec = 3000
total_iops_sec_max = 0
write_bytes_sec = 0
write_bytes_sec_max = 0
write_iops_sec = 0
write_iops_sec_max = 0
}
#тип - блок
#тип вложенных полей - целое число
#используется при создании и обновлении
#iotune = {
#read_bytes_sec = 0
#read_bytes_sec_max = 0
#read_iops_sec = 0
#read_iops_sec_max = 0
#size_iops_sec = 0
#total_bytes_sec = 0
#total_bytes_sec_max = 0
#total_iops_sec = 3000
#total_iops_sec_max = 0
#write_bytes_sec = 0
#write_bytes_sec_max = 0
#write_iops_sec = 0
#write_iops_sec_max = 0
#}
#настройки для удаления диска
#флаг для удаления диска
#флаг для удаления диска, без возможности восстановления
#опциональный параметр
#тип - булев
#по умолчанию - true
#используется при удалении
#permanently = true
#флаг отсоединения диска от машины перед удалением
#опциональный параметр
#тип - булев
#по умолчанию - true
#используется при удалении
#detach = true
}

View File

@@ -62,6 +62,11 @@ data "dynamix_extnet_list" "el" {
#тип - строка
#status = "ENABLED"
#имя моста openVswitch
#опциональный параметр
#тип - строка
#ovs_bridge = "ovs_bridge_name"
#сортировка по одному из поддерживаемых полей
#опциональный параметр
#тип - строка

View File

@@ -35,42 +35,50 @@ resource "dynamix_flipgroup" "fg" {
#id аккаунта
#обязательный параметр
#тип - целое число
#используется при создании
account_id = 999
#наименование Flipgroup
#обязательный параметр
#тип - строка
#используется при создании и обновлении
name = "flipgroup_name"
#тип сети (EXTNET, ViNS)
#обязательный параметр
#тип - строка
#используется при создании
net_type = "EXTNET"
#id сети
#обязательный параметр
#тип - целое число
#используется при создании
net_id = 13
#тип клиентов (в данный момент поддерживается только тип 'compute')
#обязательный параметр
#тип - строка
#используется при создании
client_type = "compute"
#ip-адрес
#опциональный параметр
#тип - строка
ip = "127.0.0.1"
#используется при создании
#ip = "127.0.0.1"
#список клиентов, прикрепленных к флипгруппе
#опциональный параметр
#тип - массив целых чисел
client_ids = [11269]
#используется при создании и обновлении
#client_ids = [11269]
#описание флипгруппы
#опциональный параметр
#тип - строка
desc = "CHANGED"
#используется при создании и обновлении
#desc = "CHANGED"
}
output "fg_out" {

View File

@@ -36,144 +36,190 @@ resource "dynamix_k8s_cp" "cp" {
#название кластера
#обязательный параметр
#тип - строка
#используется при создании и обновлении
name = "k8s-cp"
#K8sCI ID
#k8sCI ID
#обязательный параметр
#тип - целое число
#используется при создании
k8sci_id = 55
#плагин сети (flannel, weavenet или calico)
#обязательный параметр
#тип - строка
#используется при создании
network_plugin = "flannel"
#id ресурсной группы
#обязательный параметр
#тип - целое число
#используется при создании
rg_id = 1387
#кол-во ядер мастер-узла
#опциональный параметр
#тип - целое число
cpu = 2
#используется при создании
#cpu = 2
#объем RAM мастер-узла
#объем RAM мастер-узла, в МБ
#опциональный параметр
#тип - целое число
ram = 2048
#используется при создании
#ram = 2048
#кол-во ВМ мастер-узла (1, 3 или 5)
#опциональный параметр
#тип - целое число
num = 1
#используется при создании и обновлении
#num = 1
#размер диска мастер-узла
#размер диска мастер-узла, в ГБ
#опциональный параметр
#тип - целое число
disk = 10
#используется при создании
#disk = 10
#описание кластера
#опциональный параметр
#тип - строка
desc = "<DESCRIPTION>"
#используется при создании и обновлении
#desc = "<DESCRIPTION>"
#id extnet
#опциональный параметр
#тип - целое число
extnet_id = 0
#используется при создании
#extnet_id = 0
#id vins
#опциональный параметр
#тип - целое число
vins_id = 1234
#используется при создании
#vins_id = 1234
#storage Endpoint ID
#опциональный параметр
#тип - целое число
sep_id = 0
#используется при создании
#sep_id = 0
#SEP Pool
#sep pool
#опциональный параметр
#тип - строка
sep_pool = "pool"
#используется при создании
#sep_pool = "pool"
#старт/стоп кластера
#опциональный параметр
#по умолчанию - false
#тип - булев
start = true
#используется при создании и обновлении
#start = true
#флаг доступности кластера
#опциональный параметр
#по умолчанию - true
#тип - булев
#enable = true
#создать кластер с/без балансировщика нагрузки
#опциональный параметр
#по умолчанию - true
#тип - булев
with_lb = true
#используется при создании
#with_lb = true
#позволяет создать схему отказоустройчивой LB
#создать схему отказоустойчивой LB
#опциональный параметр
#по умолчанию - false
#тип - булев
ha_mode = true
#используется при создании
#ha_mode = true
#дополнительные SAN (Subject Alternative Names) для использования в процессе автоматического выписывания сертификата Кластера Kubernetes;
#возможность взаимодействовать с кластером по FQDN
#параметр получает список строк IP-адреса и/или DNS (по формату RFC 1123 c поддержкой wildcard)
#опциональный параметр
#тип - массив строк
additional_sans = ["192.168.201.0","192.168.201.1"]
#используется при создании
#additional_sans = ["192.168.201.0","192.168.201.1"]
#используется для определения настроек и действий, которые должны быть выполнены перед запуском любого другого компонента в кластере
#это позволяет вам настраивать такие вещи, как регистрация node, настройка network и другие задачи инициализации
#опциональный параметр
#тип - строка
init_config = "{JSON string}"
#используется при создании
#init_config = "{JSON string}"
#используется для определения глобальных настроек и конфигураций для всего кластера
#он включает в себя такие параметры, как имя кластера, настройки DNS, методы аутентификации и другие конфигурации в масштабах кластера
#опциональный параметр
#тип - строка
cluster_config = "{JSON string}"
#используется при создании
#cluster_config = "{JSON string}"
#используется для настройки поведения и параметров Kubelet, который является агентом primary node, запускаемым на каждом node кластера
#он включает в себя такие параметры, как IP-адрес node, распределение ресурсов, политики удаления модулей и другие конфигурации, специфичные для Kubelet
#опциональный параметр
#тип - строка
kubelet_config = "{JSON string}"
#используется при создании
#kubelet_config = "{JSON string}"
#используется для настройки поведения и параметров присоединения node к кластеру
#он включает в себя такие параметры, как режим прокси-сервера, диапазоны IP-адресов кластера и другие конфигурации, специфичные для Kube-proxy
#опциональный параметр
#тип - строка
kube_proxy_config = "{JSON string}"
#используется при создании
#kube_proxy_config = "{JSON string}"
#используется для настройки поведения и параметров присоединения node к кластеру
#он включает в себя такие параметры, как cluster's control plane endpoint, токен и ключ сертификата
#опциональный параметр
#тип - строка
join_config = "{JSON string}"
#используется при создании
#join_config = "{JSON string}"
#при создании кластре использовать подключение только к сети ExtNet
#опциональный параметр
#по умолчанию - false
#тип - булев
extnet_only = true
#используется при создании
#extnet_only = true
#добавить ssl-сертификат в формате x509 pem
#необязательный параметр
#тип - файл с форматом в виде x509 pem
oidc_cert = file("ca.crt")
#опциональный параметр
#тип - файл с форматом в виде .crt
#используется при создании
#oidc_cert = file("ca.crt")
#тип эмулируемой системы
#опциональный параметр
#тип - строка
chipset = "i440fx"
#используется при создании
#chipset = "i440fx"
#пользовательские значения sysctl для LB
#опциональный параметр
#тип - список мап
lb_sysctl_params = [{text = "1", text = "some"}]
#тип - массив мап
#используется при создании и обновлении
#lb_sysctl_params = [{ key1 = "value1", key2 = "value2" }]
#команда destroy удаляет кластер без возможности восстановления
#флаг для удаления k8s_cp, без возможности восстановления
#опциональный параметр
#тип - булев
permanently = true
#по умолчанию - true
#используется при удалении
#permanently = true
#восстановление группы после удаления
#опциональный параметр
#используется при редактировании ресурса
#по умолчанию - true
#тип - булев
#используется при обновлении
#restore = true
}
output "cp_out" {

View File

@@ -31,64 +31,85 @@ resource "dynamix_k8s_wg" "wg" {
#id экземпляра k8s
#обязательный параметр
#тип - целое число
#используется при создании
k8s_id = 1234
#имя worker group
#обязательный параметр
#тип - строка
#используется при создании
name = "workers-2"
#количество worker node для создания
#опциональный параметр
#тип - целое число
#по - умолчанию - 1
num = 2
#по умолчанию - 1
#используется при создании и обновлении
#num = 2
#тип эмулируемой системы worker nodes
#тип эмулируемой системы
#опциональный параметр
#тип - строка
worker_chipset = "i440fx"
#используется при создании
#chipset = "i440fx"
#количество cpu для 1 worker node
#опциональный параметр
#тип - целое число
#по - умолчанию - 1
cpu = 1
#по умолчанию - 1
#используется при создании
#cpu = 1
#тип эмулируемой системы worker группы
#опциональный параметр
#тип - строка
chipset = "i440fx"
#количество RAM для одной worker node в Мбайтах
#количество RAM для одной worker node в МБ
#опциональный параметр
#тип - целое число
#по-умолчанию - 1024
ram = 1024
#по умолчанию - 1024
#используется при создании
#ram = 1024
#размер загрузочного диска для worker node, в Гбайтах
#размер загрузочного диска для worker node, в ГБ
#опциональный параметр
#тип - целое число
#по - умолчанию - 0
#по умолчанию - 0
#если установлен параметр 0, то размер диска будет равен размеру образа
disk = 10
#тип - целое число
#используется при создании
#disk = 10
#id SEP'а для создания загрузочных дисков для группы worker node по умолчанию,
#если не указан, используется sep_id образа
#список строк с 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
#используется при создании
#worker_sep_id = 1
#pool для использования, если установлен worker_sep_id, если не указан, выбирается системой
#пул для хранения Workers. Если не заполнить, будет выбран системой
#опциональный параметр
#тип - строка
worker_sep_pool = "pool"
#тип - целое число
#используется при создании
#worker_sep_pool = "worker_pool"
#Перечень аргументов для cloud-init для виртуальных машин worker групп
#перечень аргументов для cloud-init для виртуальных машин worker групп
#опциональный параметр
#тип - файл с форматом в виде yaml
#используется при создании и обновлении ресурса
cloud_init = file("initconfig.tftpl")
#тип - файл в формате YAML
#используется при создании и обновлении
#cloud_init = file("initconfig.tftpl")
}

View File

@@ -35,360 +35,398 @@ resource "dynamix_kvmvm" "comp" {
#может быть изменен
#обязательный параметр
#тип - строка
#используется при создании и обновлении
name = "test-tf-compute-update-new"
#id resource group
#обязательный параметр
#тип - целое число
#используется при создании
rg_id = 1111
#тип драйвера для compute
#обязательный параметр
#тип - строка
#возможные значения: "SVA_KVM_X86", "KVM_X86"
#используется при создании
driver = "KVM_X86"
#число cpu
#обязательный параметр
#тип - целое число
#используется при создании и обновлении
cpu = 1
#кол-во оперативной памяти, МБ
#обязательный параметр
#тип - целое число
#возможные значения: кратные 128
#используется при создании и обновлении
ram = 2048
#размер загрузочного диска
#опциональный параметр
#тип - целое число
boot_disk_size = 20
#используется при создании и обновлении
#boot_disk_size = 20
#тип эмулируемой системы
#опциональный параметр
#тип - строка
#возможные значения: "i440fx", "Q35"
chipset = "i440fx"
#используется при создании и обновлении
#chipset = "i440fx"
#id сепа для boot диска
#опциональный параметр
#тип - целое число
sep_id = 1
#используется при создании
#sep_id = 1
#название пула
#опциональный параметр
#тип - строка
pool = "data02"
#используется при создании
#pool = "data02"
#конфигурация cloud init
#опциональный параметр
#тип - файл в формате JSON
cloud_init = file("initconfig.tftpl")
#используется при создании
#cloud_init = file("initconfig.tftpl")
#описание compute
#опциональный параметр
#тип - строка
description = "test update description in tf words update"
#используется при создании и обновлении
#description = "test update description in tf words update"
#id образа диска для создания compute
#опциональный параметр
#тип - целое число
image_id = 111
#используется при создании и обновлении
#image_id = 111
#создание без загрузочного диска в остановленном состоянии
#опциональный параметр
#если значение равно True, параметры image_id, boot_disk_size, sep_id, pool должны быть пустыми
#тип - булев
without_boot_disk = true
#используется при создании
#without_boot_disk = true
#необходимость выравнивать ВМ по NUMA
#опциональный параметр
#возможные значения - "none "strict" "loose"
#по умолчанию - "none"
#тип - строка
numa_affinity = "loose"
#используется при создании и обновлении
#numa_affinity = "loose"
#необходимость запускать ВМ на выделенных CPU ядрах
#опциональный параметр
#по умолчанию - false
#тип - булев
cpu_pin = true
#используется при создании и обновлении
#cpu_pin = true
#необходимость использовать для выделения RAM виртуальной машины Huge Pages
#опциональный параметр
#по умолчанию - false
#тип - булев
hp_backed = true
#используется при создании и обновлении
#hp_backed = true
#список PCI девайсов
#опциональный параметр
#тип - массив целых чисел
pci_devices = [1,2]
#используется при создании и обновлении
#pci_devices = [1,2]
#правила affinity
#опциональный параметр
#может быть один, несколько или ни одного
#тип - список объектов правил
affinity_rules = [{
#используется при создании и обновлении
#affinity_rules = [{
#тип правила
#обязательный параметр
#возможные значения - compute или node
#тип - строка
topology = "compute"
#topology = "compute"
#строгость правила
#обязательный параметр
#возможные значения - RECOMMENDED и REQUIRED
#тип - строка
policy = "RECOMMENDED"
#policy = "RECOMMENDED"
#режим проверки
#обязательный параметр
#возможные значения - ANY, EQ, NE
#тип - строка
mode = "ANY"
#mode = "ANY"
#ключ правила
#обязательный параметр
#тип - строка
key = "testkey"
#key = "testkey"
#ключ правила
#опциональный параметр
#тип - строка
value = "testvalue"
}]
#value = "testvalue"
#}]
#правила anti-affinity
#опциональный параметр
#может быть один, несколько или ни одного
#тип - список объектов правил
anti_affinity_rules = [{
#используется при создании и обновлении
#anti_affinity_rules = [{
#тип правила
#обязательный параметр
#возможные значения - compute или node
#тип - строка
topology = "compute"
#topology = "compute"
#строгость правила
#обязательный параметр
#возможные значения - RECOMMENDED и REQUIRED
#тип - строка
policy = "RECOMMENDED"
#policy = "RECOMMENDED"
#режим проверки
#обязательный параметр
#возможные значения - ANY, EQ, NE
#тип - строка
mode = "ANY"
#mode = "ANY"
#ключ правила
#обязательный параметр
#тип - строка
key = "testkey"
#key = "testkey"
#ключ правила
#опциональный параметр
#тип -строка
value = "testvalue"
}]
#value = "testvalue"
#}]
#установка метки для вм
#опциональный параметр
#тип - строка
affinity_label = "test4"
#используется при создании и обновлении
#affinity_label = "test4"
#Управление XML виртуальной машины
#опциональный параметр
#тип - строка (json-encoded)
custom_fields = "{`key`:`value`}"
#используется при создании и обновлении
#custom_fields = "{`key`:`value`}"
#наименование системы
#опциональный параметр
#используется при создании вм
#по умолчанию - не задан
#тип - строка
is = ""
#используется при создании
#is = ""
#назначение вм
#опциональный параметр
#используется при создании вм
#по умолчанию - не задан
#тип - строка
ipa_type = ""
#используется при создании
#ipa_type = ""
#id экстра дисков
#опциональный параметр
#тип - массив целых чисел
extra_disks = [1234, 4322, 1344]
#используется при создании и обновлении
#extra_disks = [1234, 4322, 1344]
#присоединения сетей и удаление сетей в компьюте
#опциональный параметр
#тип - список объектов сетей
network = [{
#используется при создании и обновлении
#network = [{
#тип сети
#обязательный параметр
#тип - строка
#возможные значения - "VINS", "EXTNET", "VFNIC", "DPDK" (при выборе типа DPDK, необходимо указать hp_backed = true)
net_type = "VINS"
#net_type = "VINS"
#id сети
#обязательный параметр
#тип - целое число
net_id = 1234
#net_id = 1234
#ip адрес входящий в сеть
#опциональный параметр
#тип - строка
ip_address = "127.0.0.1"
#ip_address = "127.0.0.1"
#mac-адрес интерфейса компьюта
#опциональный параметр
#тип - строка
#mac = "52:54:01:12:34:60"
#вес сети, указывается при необходимости указания порядка подключения сетей
#первой подключается сеть с наименьшим весом
#сеть с нулевым или неуказанным весом имеет наименьший приоритет
#опциональный параметр
#тип - целое число
weight = 15
#weight = 15
#максимальный объём данных, который может быть передан за одну итерацию
#используется только с сетями типа "DPDK"
#возможные значения - 1-9216
#опциональный параметр
#тип - целое число
mtu = 1500
}]
#mtu = 1500
#}]
#добавление и удаление тэгов
#опциональный параметр
#тип - список тэгов
tags = [{
#используется при создании и обновлении
#tags = [{
#ключ для тэга
#обязательный параметр
#тип - строка
key = "key"
#key = "key"
#значения тэга
#обязательный параметр
#тип - строка
value = "value"
}]
#value = "value"
#}]
#добавление и удаление port forwarding
#опциональный параметр
#тип - список объектов переадресации портов
port_forwarding = [{
#используется при создании и обновлении
#port_forwarding = [{
#номер внешнего начального порта для правила
#Обязательный параметр
#тип - целое число
public_port_start = 2023
#public_port_start = 2023
#номер внешнего последнего порта для правила
#опциональный параметр
#тип - целое число
#по умолчанию - -1
public_port_end = 2023
#public_port_end = 2023
#номер внутреннего базового порта
#обязательный параметр
#тип - целое число
local_port = 80
#local_port = 80
#сетевой протокол
#Обязательный параметр
#обязательный параметр
#тип - строка
proto = "tcp"
}]
#proto = "tcp"
#}]
#предоставить/забрать пользователю доступ к компьюту
#опциональный параметр
#тип - список объектов прав пользователя
user_access = [{
#используется при создании и обновлении
#user_access = [{
#имя юзера, которому предоставляем доступ
#обязательный параметр
#тип - строка
username = "some@decs3o"
#username = "some@decs3o"
#права: 'R' - только на чтение, 'RCX' - чтение/запись, 'ARCXDU' - админ
#обязательный параметр
#тип - строка
access_type = "ARCXDU"
}]
#access_type = "ARCXDU"
#}]
#создать/удалить снапшот компьюта
#опциональный параметр
#тип - список объектов снапшотов
snapshot = [{
#используется при создании и обновлении
#snapshot = [{
#лейбл снапшота
#обязательный параметр
#тип - строка
label = "label1"
}]
#label = "label1"
#}]
#флаг для удаления снапшотов в асинхронном режиме
#опциональный параметр
#по умолчанию - false
#тип - булев
#используется при удалении
#snapshot_delete_async = true
#rollback на нужный снапшот
#опциональный параметр
#не имеет смысла при отсутсвии снапшотов
#тип - объект
rollback = {
#Лейбл снапшота
#Обязательный параметр
#используется при обновлении
#rollback = {
#лейбл снапшота
#обязательный параметр
#тип - строка
label = "label1"
}
#label = "label1"
#}
#вставить/удалить СD rom
#опциональный параметр
#максимальное кол-во - 1
#тип - объект
cd = {
#id образа диска CD rom
#обязательный параметр
#тип - целое число
cdrom_id = 344
}
#тип - целое число
#используется при создании и обновлении
#cd_image_id = 344
#список ядер для использования в механизме vcpupinning. Количество указанных ядер должно быть равно количеству виртуальных процессоров ВМ
#игнорируется если cpu_pin=false или pin_to_stack=false
#опциональный параметр
#тип - массив целых чисел
preferred_cpu = [1234, 456]
#используется при создании и обновлении
#preferred_cpu = [1234, 456]
#добавить компьют на стэк
#опциональный параметр
#тип - булев
pin_to_stack = true
#используется при создании и обновлении
#pin_to_stack = true
#флаг для старта компьюта при рестарте ноды
#опциональный параметр
#тип - булев
auto_start_w_node = true
#используется при создании и обновлении
#auto_start_w_node = true
#флаг доступности компьюта для проведения с ним операций
#опциональный параметр
#тип - булев
enabled = true
#используется при создании и обновлении
#enabled = true
#pause/resume компьюта
#опциональный параметр
#тип - булев
#по умолчанию - false
pause = true
#используется при создании и обновлении
#pause = true
#reset компьюта
#опциональный параметр
#тип - булев
#по умолчанию - false
reset = true
#используется при обновлении
#reset = true
#восстановить компьют из корзины
#опциональный параметр
#тип - булев
#по умолчанию - true
restore = true
#флаг для редеплоя компьюта
#опциональный параметр
#тип - булев
#по умолчанию - false
auto_start = true
#используется при обновлении
#restore = true
#флаг для редеплоя компьюта
#опциональный параметр
@@ -400,31 +438,56 @@ resource "dynamix_kvmvm" "comp" {
#опциональный параметр
#тип - булев
#по умолчанию - false
force_resize = true
#поле для редеплоя компьюта
#опциональный параметр
#тип - строка
#возможные значения - "KEEP", "DETACH", "DESTROY"
data_disks = "KEEP"
#используется при обновлении
#force_resize = true
#запуск/стоп компьюта
#опциональный параметр
#тип - булев
#по умолчанию - true
started = true
#используется при создании и обновлении
#started = true
#detach диска при удалении компьюта
#опциональный параметр
#тип - булев
#по умолчанию - true
detach_disks = true
#используется при удалении
#detach_disks = true
#флаг для удаления компьюта
#опциональный параметр
#тип - булев
#по умолчанию - true
permanently = false
#используется при удалении
#permanently = false
#тип вм
#возможные значения - linux, windows, unknown
#опциональный параметр
#тип - строка
#используется при создании и обновлении
#loader_type = "unknown"
#тип загрузки образа
#возможные значения - bios, uefi
#опциональный параметр
#тип - строка
#используется при создании и обновлении
#boot_type = "bios"
#изменение размера ВМ
#опциональный параметр
#тип - булев
#используется при создании и обновлении
#hot_resize = false
#наименование сетевого интерфейса
#возможные значения - eth, ens
#опциональный параметр
#тип - строка
#используется при создании и обновлении
#network_interface_naming = "ens"
}

View File

@@ -31,26 +31,30 @@ provider "dynamix" {
}
resource "dynamix_lb" "lb" {
#id ресурсной группы для со
#id ресурсной группы
#обязательный параметр
#тип - целое число
#используется при создании
rg_id = 1111
#наименование load balancer
#обязательный параметр
#тип - строка
#используется при создании
name = "tf-test-lb"
#id внешней сети
#опциональный параметр
#id внешней сети и id виртуальной сети не могут быть одновременно = 0
#тип - целое число
#используется при создании
#extnet_id = 6
#id виртуальной сети
#опциональный параметр
#id внешней сети и id виртуальной сети не могут быть одновременно = 0
#тип - целое число
#используется при создании
#vins_id = 758
#флаг запуска load balancer
@@ -59,33 +63,41 @@ resource "dynamix_lb" "lb" {
#то для успешного старта, он должен быть доступен (enable = true)
#по умолчанию - true
#тип - булев
#start = true
#используется при создании и обновлении
start = true
#позволяет создать схему отказоустройчивой LB
#опциональный параметр
#тип - булев
#по умолчанию - false
#используется при создании и обновлении
#ha_mode = true
#описание
#опциональный параметр
#тип - строка
#используется при создании и обновлении
#desc = "temp super lb for testing tf provider"
#флаг доступности load balancer
#опциональный параметр
#тип - булев
#по умолчанию - true
#используется при создании и обновлении
#enable = true
#флаг перезапуска load balancer
#перезагрузка срабатывает только при изменении флага с false или null на true
#опциональный параметр
#тип - булев
#используется при обновлении
#restart = false
#флаг сброса конфигурации load balancer
#сброс срабатывает только при изменении флага с false или null на true
#опциональный параметр
#тип - булев
#используется при обновлении
#config_reset = false
#флаг моментального удаления load balancer
@@ -93,6 +105,7 @@ resource "dynamix_lb" "lb" {
#применяется при выполнении команды terraform destroy
#по умолчанию - true
#тип - булев
#используется при удалении
#permanently = true
#флаг восстановления load balancer
@@ -100,6 +113,7 @@ resource "dynamix_lb" "lb" {
#восстановить можно load balancer, удаленным с флагом permanently = false
#по умолчанию - true
#тип - булев
#используется при обновлении
#restore = true
#флаг используемый при рестарте load balancer
@@ -107,11 +121,13 @@ resource "dynamix_lb" "lb" {
#при значении "true" рестарт производится на обоих нодах в HA mode
#значение по умолчанию - true
#тип - булев
#используется при обновлении
#safe = true
#пользовательские значения sysctl для LB
#опциональный параметр
#тип - список мап
#используется при создании и обновлении
#sysctl_params = [{key = "1", value = "some" }]
}

View File

@@ -34,11 +34,13 @@ resource "dynamix_lb_backend" "lb" {
#id балансировщика нагрузок
#обязательный параметр
#тип - целое число
#используется при создании
lb_id = 668
#имя бекенда для создания сервера
#обязательный параметр
#тип - строка
#используется при создании
name = "testBackend"
#алгоритм балансировки
@@ -46,6 +48,7 @@ resource "dynamix_lb_backend" "lb" {
#по умолчанию - "roundrobin"
#доступные значения - "roundrobin", "static-rr", "leastconn"
#тип - строка
#используется при создании и обновлении
#algorithm = "roundrobin"
#-------------------
@@ -56,42 +59,49 @@ resource "dynamix_lb_backend" "lb" {
#опциональный параметр
#по умолчанию - 5000
#тип - целое число
#используется при создании и обновлении
#inter = 5000
#интервал между проверками доступности сервера после восстановления, в миллисекундах
#опциональный параметр
#по умолчанию - 1000
#тип - целое число
#используется при создании и обновлении
#downinter = 1000
#кол-во проверок, которые сервер должен успешно пройти
#опциональный параметр
#по умолчанию - 2
#тип - целое число
#используется при создании и обновлении
#rise = 2
#кол-во проверок, которые сервер может не пройти и после этого получить статус "unavailable"
#опциональный параметр
#по умолчанию - 2
#тип - целое число
#используется при создании и обновлении
#fall = 2
#кол-во миллисекунд - время между получением сервера статуса "available" и открытием соединений
#опциональный параметр
#по умолчанию - 60000
#тип - целое число
#используется при создании и обновлении
#slowstart = 60000
#максимальное кол-во соединений сервера, при достижении этого кол-ва, сервер выходит из схемы балансирования
#опциональный параметр
#по умолчанию - 250
#тип - целое число
#используется при создании и обновлении
#maxconn = 250
#максимальное кол-во соединений в очереди сервера, при достижении этого кол-ва, соединения будут перенаправлены на другой сервер
#опциональный параметр
#по умолчанию - 256
#тип - целое число
#используется при создании и обновлении
#maxqueue = 256
#вес сервера для балансировки
@@ -100,6 +110,7 @@ resource "dynamix_lb_backend" "lb" {
#макс - 255
#по умолчанию - 100
#тип - целое число
#используется при создании и обновлении
#weight = 100
}

View File

@@ -34,26 +34,31 @@ resource "dynamix_lb_backend_server" "lb" {
#id балансировщика нагрузок
#обязательный параметр
#тип - целое число
#используется при создании
lb_id = 668
#имя бекенда для создания сервера
#обязательный параметр
#тип - строка
#используется при создании
backend_name = "testBackend"
#имя сервера
#обязательный параметр
#тип - строка
#используется при создании и обновлении
name = "testServer"
#ip адрес сервера
#обязательный параметр
#тип - строка
#используется при создании и обновлении
address = "192.168.5.33"
#порт сервера
#обязательный параметр
#тип - целое число
#используется при создании и обновлении
port = 6553
#проверка доступности сервера
@@ -61,48 +66,56 @@ resource "dynamix_lb_backend_server" "lb" {
#по умолчанию - "enabled"
#доступные значения - "disabled", "enabled"
#тип - строка
#используется при создании и обновлении
#check = "enabled"
#интервал между проверками, в миллисекундах
#опциональный параметр
#по умолчанию - 5000
#тип - целое число
#используется при создании и обновлении
#inter = 5000
#интервал между проверками доступности сервера после восстановления, в миллисекундах
#опциональный параметр
#по умолчанию - 1000
#тип - целое число
#используется при создании и обновлении
#downinter = 1000
#кол-во проверок, которые сервер должен успешно пройти
#опциональный параметр
#тип - целое число
#по умолчанию - 2
#используется при создании и обновлении
#rise = 2
#кол-во проверок, которые сервер может не пройти и после этого получить статус "unavailable"
#опциональный параметр
#по умолчанию - 2
#тип - целое число
#используется при создании и обновлении
#fall = 2
#кол-во миллисекунд - время между получением сервера статуса "available" и открытием соединений
#опциональный параметр
#по умолчанию - 60000
#тип - целое число
#используется при создании и обновлении
#slowstart = 60000
#максимальное кол-во соединений сервера, при достижении этого кол-ва, сервер выходит из схемы балансирования
#опциональный параметр
#по умолчанию - 250
#тип - целое число
#используется при создании и обновлении
#maxconn = 250
#максимальное кол-во соединений в очереди сервера, при достижении этого кол-ва, соединения будут перенаправлены на другой сервер
#опциональный параметр
#по умолчанию - 256
#тип - целое число
#используется при создании и обновлении
#maxqueue = 256
#вес сервера для балансировки
@@ -111,6 +124,7 @@ resource "dynamix_lb_backend_server" "lb" {
#макс - 255
#по умолчанию - 100
#тип - целое число
#используется при создании и обновлении
#weight = 100
}

View File

@@ -33,16 +33,19 @@ resource "dynamix_lb_frontend" "lb" {
#id балансировщика нагрузок
#обязательный параметр
#тип - целое число
#используется при создании
lb_id = 668
#имя бекенда для создания фронтенда
#обязательный параметр
#тип - строка
#используется при создании
backend_name = "testBackend"
#имя фронтенда
#обязательный параметр
#тип - строка
#используется при создании
name = "testFrontend"
}

View File

@@ -34,26 +34,31 @@ resource "dynamix_lb_frontend_bind" "lb" {
#id балансировщика нагрузок
#обязательный параметр
#тип - целое число
#используется при создании
lb_id = 668
#имя фронтенда для создания привязки
#обязательный параметр
#тип - строка
#используется при создании
frontend_name = "testFrontend"
#наименование привязки
#обязательный параметр
#тип - строка
#используется при создании и обновлении
name = "testBinding"
#адрес привязки фронтенда
#обязательный параметр
#тип - строка
#используется при создании и обновлении
address = "111.111.111.111"
#порт для привязки фронтенда
#обязательный параметр
#тип - целое число
#используется при создании и обновлении
port = 1111
}

View File

@@ -34,148 +34,168 @@ resource "dynamix_resgroup" "rg" {
#имя ресурсной группы
#обязательный параметр
#тип - строка
#используется при создании и обновлении
name = "testing_rg_1"
#id аккаунта которому будет принадлежать ресурсная группа
#обязательный параметр
#тип - целое число
#используется при создании
account_id = 123
#id сети
#id платформы
#обязательный параметр
#тип - целое число
#используется при создании
gid = 1234
#тип сети по умолчанию для этой ресурсной группы
#опциональный параметр
#виртуальные машины, созданные в этой RG, по умолчанию будут подключены к этой сети
#допустимые значения: PRIVATE, PUBLIC, NONE
#по умолчанию - PRIVATE
#тип - строка
def_net_type = "NONE"
#используется при создании
#def_net_type = "NONE"
#ip cidr частной сети, если сеть по умолчанию PRIVATE
#опциональный параметр
#тип - строка
ipcidr = "1.1.1.1"
#используется при создании
#ipcidr = "1.1.1.1"
#id внешней сети
#опциональный параметр
#тип - целое число
ext_net_id = 123
#используется при создании
#ext_net_id = 123
#ip внешней сети
#опциональный параметр
#тип - строка
ext_ip = "1.1.1.1"
#используется при создании
#ext_ip = "1.1.1.1"
#описание
#опциональный параметр
#тип - строка
description = "qwerty"
#используется при создании и обновлении
#description = "qwerty"
#флаг доступности ресурсной группы
#опциональный параметр
#тип - булев
enable = true
#используется при создании и обновлении
#по умолчанию - true
#enable = true
#имя пользователя
#опциональный параметр
#тип - строка
owner = "name_user"
#используется при создании
#owner = "name_user"
#блок для предоставления прав на ресурсную группу
#опциональный параметр
#тип - блок прав доступа
access = [{
#имя юзера предоставляемому права
#используется при создании и обновлении
#access = [{
#имя юзера предоставляемому права
#обязательный параметр при использовании блока
#тип - строка
user = "kasim_baybikov_1@decs3o"
#user = "kasim_baybikov_1@decs3o"
#тип прав
#опциональный параметр
#тип - строка
right = "RCX"
}]
#right = "RCX"
#}]
#установить сеть по умолчанию
#опциональный параметр
#тип - блок сетей
def_net = {
#используется при создании и обновлении
#def_net = {
#тип сети
#обязательный параметр при использовании блока
#тип - строка
net_type = "PUBLIC"
#net_type = "PUBLIC"
#id сети
#опциональный параметр
#идентификатор сегмента сети. Если net_type — PUBLIC, а net_id — 0,
#то будет выбран сегмент внешней сети по умолчанию. Если net_type
#имеет значение PRIVATE и net_id=0, будет выбран первый vins, определенный для этой ресурсной группы.
#В противном случае net_id идентифицирует либо существующий сегмент внешней сети, либо vins.
#имеет значение PRIVATE и net_id=0, будет выбран первый vins, определенный для этой ресурсной группы
#в противном случае net_id идентифицирует либо существующий сегмент внешней сети, либо vins
#тип - целое число
net_id = 1234
}
#net_id = 1234
#}
#лимиты ресурсов для ресурсной группы
#опциональный параметр
#тип - блок конфигураций
quota = {
#используется при создании и обновлении
#quota = {
#максимальное количество ядер процессора
#опциональный параметр
#значение по умолчанию: -1
#по умолчанию: -1
#тип - целое число
cpu = 5
#cpu = 5
#максимальный размер памяти в мегабайтах
#максимальный размер памяти, в МБ
#опциональный параметр
#тип - число
#значение по умолчанию: -1
ram = 1024
#по умолчанию: -1
#тип - целое число
#ram = 1024
#максимальный размер объединенных виртуальных дисков в ГБ
#опциональный параметр
#значение по умолчанию: -1
#по умолчанию: -1
#тип - целое число
disk = 180
#disk = 180
#максимальное количество отправленных/полученных сетевых узлов
#опциональный параметр
#значение по умолчанию: -1
#по умолчанию: -1
#тип - целое число
ext_traffic = 21
#ext_traffic = 21
#максимальное количество назначенных общедоступных IP-адресов
#опциональный параметр
#значение по умолчанию: -1
#по умолчанию: -1
#тип - целое число
ext_ips = 29
}
#ext_ips = 29
#}
#список названий pools
#необязательный параметр
#опциональный параметр
#игнорируется при создании ресурса, применяется только при обновлении
#тип - массив строк
uniq_pools = ["sep1_poolName1", "sep2_poolName2"]
#используется при обновлении
#uniq_pools = ["sep1_poolName1", "sep2_poolName2"]
#флаг для принудительного удаления ресурсной группы
#опциональный параметр
#тип - булев
#используется при удалении
#по умолчанию - true
force = true
#force = true
#флаг для моментального удаления ресурсной группы
#флаг для удаления ресурсной группы, без возможности восстановления
#опциональный параметр
#тип - булев
#используется при удалении
#по умолчанию - true
permanently = true
#permanently = true
#восстановление группы после удаления
#опциональный параметр
#используется при редактировании ресурса
#по умолчанию - true
#тип - булев
restore = true
#используется при обновлении
#по умолчанию - true
#restore = true
}

View File

@@ -69,6 +69,11 @@ data "dynamix_vins_list" "vl" {
#формат - "+поле" по возрастанию / "-поле" по убыванию
#sort_by = "+name"
#поиск по статусу
#опциональный параметр
#тип - строка
#status = "ENABLED"
#номер страницы для отображения
#опциональный параметр
#тип - целое число
@@ -80,6 +85,7 @@ data "dynamix_vins_list" "vl" {
#тип - целое число
#если не задан - выводятся все доступные данные
#size = 1
}
output "test" {

View File

@@ -39,136 +39,153 @@ resource "dynamix_vins" "vins" {
#имя создаваемого ресурса
#обязательный параметр
#тип - строка
#используется при создании
name = "Test_name"
#id ресурсной группы для создания ресурса
#опциональный параметр
#тип - целое число
#используется при создании
rg_id = 10101
#id аккаунта для создания ресурса
#опциональный параметр
#тип - целое число
#используется при создании
account_id = 2023
#блок правил extnet
#опциональный параметр
#тип - блок extnet
ext_net = {
#ext_net = {
#id внешней сети для подключения к ней ресурса
#опциональный параметр
#тип - целое число
ext_net_id = 2222
#используется при создании и обновлении
#ext_net_id = 2222
#ip внешней сети для подключения к нему ресурса
#опциональный параметр
#тип - строка
ext_ip_addr = "1.1.1.1"
}
#используется при создании и обновлении
#ext_ip_addr = "1.1.1.1"
#}
#private network IP CIDR
#опциональный параметр
#тип - строка
ipcidr = "192.168.0.1"
#используется при создании
#ipcidr = "192.168.0.1"
#количество зарезервированных адресов на момент создания
#опциональный параметр
#значение по умолчанию 32
#тип - целое число
pre_reservations_num = 2
#используется при создании
#pre_reservations_num = 2
#grid (platform) ID
#опциональный параметр
#тип - целое число
gid = 2002
#используется при создании
#gid = 2002
#описание
#опциональный параметр
#тип - строка
desc = "Description"
#используется при создании и обновлении
#desc = "Description"
#ручное подключение и отключение ресурса
#опциональный параметр
#тип - булев
enable = true
#используется при создании и обновлении
#enable = true
#удаление навсегда
#опциональный параметр
#по умолчанию - true
#тип - булев
permanently = true
#используется при удалении
#permanently = true
#удаляет за собой все зависимые ресурсы
#опциональный параметр
#по умолчанию - true
#тип - булев
force = true
#используется при удалении
#force = true
#список для резервирования ip
#опциональный параметр
#тип - массив объектов ip
ip = [{
#используется при создании и обновлении
#ip = [{
#тип подключения
#обязательный параметр
#тип - строка
type = "DHCP"
#type = "DHCP"
#ip который необходимо зарезервировать
#опциональный параметр
#тип - строка
ip_addr = "192.168.5.5"
#ip_addr = "192.168.5.5"
#mac который необходимо зарезервировать
#опциональный параметр
#тип - строка
mac_addr = "ff:ff:ff:ff:ff:ff"
}]
#mac_addr = "ff:ff:ff:ff:ff:ff"
#}]
#список для резервирования ip
#опциональный параметр
#тип - массив объектов ip
nat_rule = [{
#используется при создании и обновлении
#nat_rule = [{
#ip внутренний
#опциональный параметр
#тип - строка
int_ip = "192.168.0.28"
#int_ip = "192.168.0.28"
#внутренний порт
#опциональный параметр
#тип - целое число
int_port = 80
#int_port = 80
#начало диапазона внешних портов
#опциональный параметр
#тип - целое число
ext_port_start = 8001
#ext_port_start = 8001
#конец диапазона внешних портов
#опциональный параметр
#тип - целое число
ext_port_end = 8001
#ext_port_end = 8001
#протокол natRule
#опциональный параметр
#тип - строка
proto = "tcp"
}]
#proto = "tcp"
#}]
#восстановление ресурса
#опциональный параметр
#по умолчанию - true
#тип - булев
restore = true
#используется при обновлении
#restore = true
#перезапуск vnfDev
#опциональный параметр
#тип - булев
vnfdev_restart = true
#используется при обновлении
#vnfdev_restart = true
#редеплой vnfDev
#опциональный параметр
#тип - булев
vnfdev_redeploy = true
#используется при обновлении
#vnfdev_redeploy = true
#список dns
#опциональный параметр
@@ -176,6 +193,7 @@ resource "dynamix_vins" "vins" {
#если при создании указать пустой список, то ресурс создается с полем vnfs.dhcp.config.dns, имеющим значение по умолчанию
#если при обновлении указать пустой список, то ресурс обновит в модели поле vnfs.dhcp.config.dns с текущего значения на пустой список
#тип - список строк
#используется при создании и обновлении
#dns = ["1.1.1.1", "2.2.2.2"]
}