This commit is contained in:
2024-05-31 14:05:21 +03:00
parent 84b7a80e1b
commit db1760cb72
815 changed files with 58194 additions and 11049 deletions

View File

@@ -0,0 +1,14 @@
{
"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"
}
]
}

View File

@@ -0,0 +1,463 @@
/*
Пример использования
Работа с ресурсом kvmvm (compute)
Ресурс позволяет:
1. Создавать compute
2. Редактировать compute
3. Удалять compute
*/
#Расскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
terraform {
required_providers {
decort = {
version = "<VERSION>"
source = "basis/decort/decort"
}
}
}
*/
provider "decort" {
authenticator = "decs3o"
#controller_url = <DECORT_CONTROLLER_URL>
controller_url = "https://ds1.digitalenergy.online"
#oauth2_url = <DECORT_SSO_URL>
oauth2_url = "https://sso.digitalenergy.online"
allow_unverified_ssl = true
}
resource "decort_cb_kvmvm" "comp" {
#имя compute
#обязательный параметр
#мб изменен
#тип - строка
name = "test-tf-compute-update-new"
#id resource group
#обязательный параметр
#тип - целое число
rg_id = 1111
#тип драйвера для compute
#обязательный параметр
#тип - строка
driver = "KVM_X86"
#число cpu
#обязательный параметр
#тип - целое число
cpu = 1
#кол-во оперативной памяти, МБ
#обязательный параметр
#тип - целое число
ram = 2048
#id образа диска для создания compute
#опциональный параметр
#тип - целое число
#image_id = 111
#Если значение равно True, параметры image_id, boot_disk_size, sep_id, pool игнорируются, и компьютер создается без загрузочного диска в остановленном состоянии
#опциональный параметр
#тип - булев
#without_boot_disk = true
#размер загрузочного диска
#опциональный параметр
#тип - целое число
#boot_disk_size = 20
#ID сепа для boot диска
#опциональный параметр
#тип - целое число
#sep_id = 1
#Название пула
#опциональный параметр
#тип - строка
#pool = "data02"
#конфигурация cloud init
#опциональный параметр
#тип - файл в формате JSON/YAML
#cloud_init = file("initconfig.tftpl")
#описание compute
#опциональный параметр
#тип - строка
#description = "test update description in tf words update"
#stack id
#опциональный параметр
#тип - целое число
#stack_id = 1
#id образа CD-ROM для загрузки
#используется при изменении ресурса, при повторном старте вм
#опциональный параметр
#тип - целое число
#alt_boot_id = 1
#необходимость выравнивать ВМ по NUMA
#опциональный параметр
#тип - строка
#возможные значения - "none, "strict", "loose"
#значение по умолчанию - "none"
#numa_affinity = "loose"
#необходимость запускать ВМ на выделенных CPU ядрах
#опциональный параметр
#тип - булев
#значение по умолчанию - false
#cpu_pin = true
#необходимость использовать для выделения RAM виртуальной машины Huge Pages
#опциональный параметр
#тип - булев
#значение по умолчанию - false
#hp_backed = true
#Создание и добавление диска дял compute
#опциональный параметр
#тип - список дисков
#disks {
#Имя диска
#Обязательный для диска параметр
#Тип - строка
#disk_name = "disk_name"
#Размер диска
#Обязательный для диска параметр
#тип - целое число
#size = 5
#Тип диска
#опциональный параметр
#тип - строка
#disk_type = "D"
#опциональный параметр
#тип - целое число
#sep_id = 1
#Название пула
#опциональный параметр
#тип - строка
#pool = "data01"
#список node
#опциональный параметр
#тип - массив целых чисел
#node_ids = [10,11]
#Описание диска
#опциональный параметр
#тип - строка
#desc = ""
#Айди образа
#опциональный параметр
#image_id = 378
#Флаг для удаления диска
#опциональный параметр
#тип - булев
#permanently = false
#}
#правила affinity
#опциональный параметр
#может быть один, несколько или ни одного блока
#тип - блок
#affinity_rules {
#тип правила
#возможные значения - compute или node
#обязательный параметр
#тип - строка
#topology = "compute"
#строгость правила
#возможные значения - RECOMMENDED и REQUIRED
#обязательный параметр
#тип - строка
#policy = "RECOMMENDED"
#режим проверки
#возможные значения - ANY, EQ, NE
#обязательный параметр
#тип - строка
#mode = "ANY"
#ключ правила
#обязательный параметр
#тип - строка
#key = "testkey"
#ключ правила
#необязательный параметр
#тип - строка
#value = "testvalue"
#}
#правила anti-affinity
#опциональный параметр
#может быть один, несколько или ни одного блока
#тип - блок
#anti_affinity_rules {
#тип правила
#возможные значения - compute или node
#обязательный параметр
#тип - строка
#topology = "compute"
#строгость правила
#возможные значения - RECOMMENDED и REQUIRED
#обязательный параметр
#тип - строка
#policy = "RECOMMENDED"
#режим проверки
#возможные значения - ANY, EQ, NE
#обязательный параметр
#тип - строка
#mode = "ANY"
#ключ правила
#обязательный параметр
#тип - строка
#key = "testkey"
#ключ правила
#необязательный параметр
#тип - строка
#value = "testvalue"
#}
#установка метки для вм
#опциональный параметр
#тип - строка
#affinity_label = "test4"
#наименование системы
#опциональный параметр
#используется при создании вм
#по умолчанию - не задан
#тип - строка
#is=""
#назначение вм
#опциональный параметр
#используется при создании вм
#по умолчанию - не задан
#тип - строка
#ipa_type = ""
#Id экстра дисков
#опциональный параметр
#тип - список чисел
#extra_disks = [1234, 4322, 1344]
#Управление XML виртуальной машины
#опциональный параметр
#тип - строка (json-encoded)
#custom_fields = "{`key`:`value`}"
#Описание необходимости выполнения действия
#опциональный параметр
#тип - строка
#reason = "need"
#Присоеденения сетей и удаление сетей в компьюте
#опциональный параметр
#тип - блок
#network {
#Тип сети VINS/EXTNET (для любого драйвера) и VFNIC (для KVM_X86)
#Обязательный параметр
#тип - строка
#net_type = "VINS"
#ID сети
#Обязательный параметр
#тип - целое число
#net_id = 1234
#IP адрес входящий в сеть
#опциональный параметр
#тип - строка
#ip_address = "127.0.0.1"
#}
#добавление и удаление тэгов
#опциональный параметр
#тип - блок
#tags {
#Ключ для тэга
#Обязательный параметр
#тип - строка
#key = "key"
#Значения тэга
#Обязательный параметр
#тип - строка
#value = "value"
#}
#добавление и удаление port forwarding
#опциональный параметр
#тип - блок
#port_forwarding {
#номер внешнего начального порта для правила
#Обязательный параметр
#тип - целое число
#public_port_start = 2023
#номер внешнего последнего порта для правила
#опциональный параметр
#тип - целое число
#по умолчанию - -1
#public_port_end = 2023
#номер внутреннего базового порта
#Обязательный параметр
#тип - целое число
#local_port = 80
#сетевой протокол
#Обязательный параметр
#тип - строка
#proto = "tcp"
#}
#предоставить/забрать пользователю доступ к компьюту
#опциональный параметр
#тип - блок
#user_access {
#Имя юзера, которому предоставляем доступ
#Обязательный параметр
#тип - строка
#username = "some@decs3o"
#Права: 'R' - только на чтение, 'RCX' - чтение/запись, 'ARCXDU' - админ
#Обязательный параметр
#тип - строка
#access_type = "ARCXDU"
#}
#Создать/удалить снапшот компьюта
#опциональный параметр
#тип - блок
#snapshot {
#Лейбл снапшота
#Обязательный параметр
#тип - строка
#label = "label1"
#}
#Rollback на нужный снапшот
#опциональный параметр
#Не имеет смысла при отсутсвии снапшотов
#тип - блок
#rollback {
#Лейбл снапшота
#Обязательный параметр
#тип - строка
#label = "label1"
#}
#Вставить/удалить СD rom
#опциональный параметр
#Максимальное кол-во - 1
#тип - блок
#cd {
#ID образа диска CD rom
#Обязательный параметр
#тип - целое число
#cdrom_id = 344
#}
#Добавить компьют на стэк
#опциональный параметр
#тип - булев
#pin_to_stack = true
#id stack для добавления компьюта на этот стэк
#опциональный параметр
#тип - целое число
#target_stack_id = 1
#Флаг для принужительного добавления компьюта на стэк
#опциональный параметр
#тип - булев
#force_pin = true
#Флаг доступности компьюта для проведения с ним операций
#опциональный параметр
#тип - булев
#enabled = true
#pause/resume компьюта
#опциональный параметр
#тип - булев
#pause = true
#сделать компьют заново
#опциональный параметр
#тип - булев
#reset = true
#восстановить удаленный компьют из корзины
#опциональный параметр
#тип - булев
#restore = true
#флаг для редеплоя компьюта
#опциональный параметр
#тип - булев
#auto_start = true
#флаг для редеплоя компьюта
#опциональный параметр
#тип - булев
#force_stop = true
#флаг для предоставления дисков из node
#опциональный параметр
#тип - булев
#по умолчанию - true
#depresent = true
#флаг для ресайза компьюта
#опциональный параметр
#тип - булев
#force_resize = true
#поле для редеплоя компьюта
#опциональный параметр
#тип - строка
#data_disks = "KEEP"
#запуск/стоп компьюта
#опциональный параметр
#тип - булев
#started = true
#detach диска при удалении компьюта
#опциональный параметр
#тип - булев
#detach_disks = true
#Флаг для удаления компьюта
#опциональный параметр
#тип - булев
#permanently = false
}
output "test" {
value = decort_cb_kvmvm.comp
}