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-decort/samples/cloudapi/resource_kvmvm/main.tf

389 lines
12 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

/*
Пример использования
Работа с ресурсом kvmvm (compute)
Ресурс позволяет:
1. Создавать compute
2. Редактировать compute
3. Удалять compute
*/
#Расскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
terraform {
required_providers {
decort = {
version = "<VERSION>"
source = "basis/decort/decort"
}
}
}
*/
provider "decort" {
authenticator = "oauth2"
#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_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
#размер загрузочного диска
#обязательный параметр
#тип - число
boot_disk_size = 20
#ID сепа для boot диска
#опциональный параметр
#тип - число
sep_id = 1
#Название пула
#опциональный параметр
#тип - строка
pool = "data02"
#описание compute
#опциональный параметр
#тип - строка
description = "test update description in tf words update"
#Создание и добавление диска дял compute
#опциональный параметр
#тип - список дисков
disks {
#Имя диска
#Обязательный для диска параметр
#Тип - строка
disk_name = "disk_name"
#Размер диска
#Обязательный для диска параметр
#Тип - число
size = 5
#Тип диска
#опциональный параметр
#тип - строка
disk_type = "D"
#опциональный параметр
#тип - число
sep_id = 1
#Название пула
#опциональный параметр
#тип - строка
pool = "data01"
#Описание диска
#опциональный параметр
#тип - строка
desc = ""
#Айди образа
#опциональный параметр
#опциональный параметр
image_id = 378
#Флаг для удаления диска
#опциональный параметр
#тип - bool
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]
#Присоеденения сетей и удаление сетей в компьюте
#опциональный параметр
#тип - блок
network {
#Тип сети VINS/EXTNET
#Обязательный параметр
#тип - строка
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 = "kasim_baybikov_1@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
#Применяется только при создании нового экземпляра compute, игнорируется во всех остальных случаях
#опциональный параметр
#тип - строка
cloud_init = ""
#Флаг доступности компьюта для проведения с ним операций
#опциональный параметр
#тип - булев
enabled = true
#pause/resume компьюта
#опциональный параметр
#тип - булев
pause = true
#сделать компьют заново
#опциональный параметр
#тип - булев
reset = true
#флаг для редеплоя компьюта
#опциональный параметр
#тип - булев
auto_start = true
#флаг для редеплоя компьюта
#опциональный параметр
#тип - булев
force_stop = true
#поле для редеплоя компьюта
#опциональный параметр
#тип - строка
data_disks = "KEEP"
#запуск/стоп компьюта
#опциональный параметр
#тип - булев
started = true
#detach диска при удалении компьюта
#опциональный параметр
#тип - булев
detach_disks = true
#Флаг для удаления компьюта
#опциональный параметр
#тип - bool
permanently = false
}
output "test" {
value = decort_kvmvm.comp
}