|
|
/*
|
|
|
Пример использования
|
|
|
Ресурса vins
|
|
|
Ресурс позволяет:
|
|
|
1. Создавать vins
|
|
|
2. Удалять vins
|
|
|
3. Восстанвливать vins
|
|
|
4. Добавлять и убирать подключение к внешней сети
|
|
|
5. Резервировать и освобождать ip для vins
|
|
|
6. Добавлять и удалять natrule
|
|
|
7. Перезапускать и редеплоить vnfdev
|
|
|
|
|
|
*/
|
|
|
|
|
|
#Раскомментируйте этот код,
|
|
|
#и внесите необходимые правки в версию и путь,
|
|
|
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
|
|
|
/*
|
|
|
terraform {
|
|
|
required_providers {
|
|
|
dynamix = {
|
|
|
source = "basistech.ru/tf/dynamix"
|
|
|
version = "<VERSION>"
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
*/
|
|
|
|
|
|
provider "dynamix" {
|
|
|
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 "dynamix_vins" "vins" {
|
|
|
#имя создаваемого ресурса
|
|
|
#обязательный параметр
|
|
|
#тип - строка
|
|
|
name = "Test_name"
|
|
|
|
|
|
#id ресурсной группы для создания ресурса
|
|
|
#опциональный параметр
|
|
|
#тип - целое число
|
|
|
rg_id = 10101
|
|
|
|
|
|
#id аккаунта для создания ресурса
|
|
|
#опциональный параметр
|
|
|
#тип - целое число
|
|
|
account_id = 2023
|
|
|
|
|
|
#id внешней сети для подключения к ней ресурса
|
|
|
#опциональный параметр
|
|
|
#тип - целое число
|
|
|
ext_net_id = 2222
|
|
|
|
|
|
#ip внешней сети для подключения к нему ресурса
|
|
|
#опциональный параметр
|
|
|
#тип - строка
|
|
|
ext_ip_addr = "1.1.1.1"
|
|
|
|
|
|
#private network IP CIDR
|
|
|
#опциональный параметр
|
|
|
#тип - строка
|
|
|
ipcidr = "192.168.0.1"
|
|
|
|
|
|
#количество зарезервированных адресов на момент создания
|
|
|
#опциональный параметр
|
|
|
#значение по умолчанию 32
|
|
|
#тип - целое число
|
|
|
pre_reservations_num = 2
|
|
|
|
|
|
#grid (platform) ID
|
|
|
#опциональный параметр
|
|
|
#тип - целое число
|
|
|
gid = 2002
|
|
|
|
|
|
#описание
|
|
|
#опциональный параметр
|
|
|
#тип - строка
|
|
|
desc = "Description"
|
|
|
|
|
|
#ручное подключение и отключение ресурса
|
|
|
#опциональный параметр
|
|
|
#тип - булев
|
|
|
enable = true
|
|
|
|
|
|
#удаление навсегда
|
|
|
#опциональный параметр
|
|
|
#по умолчанию - true
|
|
|
#тип - булев
|
|
|
permanently = true
|
|
|
|
|
|
#удаляет за собой все зависимые ресурсы
|
|
|
#опциональный параметр
|
|
|
#по умолчанию - true
|
|
|
#тип - булев
|
|
|
force = true
|
|
|
|
|
|
#блок для резервирования ip
|
|
|
#опциональный параметр
|
|
|
#тип - блок ip
|
|
|
ip {
|
|
|
#тип подключения
|
|
|
#обязательный параметр
|
|
|
#тип - строка
|
|
|
type = "DHCP"
|
|
|
|
|
|
#ip который необходимо зарезервировать
|
|
|
#опциональный параметр
|
|
|
#тип - строка
|
|
|
ip_addr = "192.168.5.5"
|
|
|
|
|
|
#mac который необходимо зарезервировать
|
|
|
#опциональный параметр
|
|
|
#тип - строка
|
|
|
mac_addr = "ff:ff:ff:ff:ff:ff"
|
|
|
}
|
|
|
|
|
|
#блок для добавления natRule
|
|
|
#опциональный параметр
|
|
|
#тип - блок правил nat
|
|
|
nat_rule {
|
|
|
#ip внутренний
|
|
|
#опциональный параметр
|
|
|
#тип - строка
|
|
|
int_ip = "192.168.0.28"
|
|
|
|
|
|
#внутренний порт
|
|
|
#опциональный параметр
|
|
|
#тип - целое число
|
|
|
int_port = 80
|
|
|
|
|
|
#начало диапазона внешних портов
|
|
|
#опциональный параметр
|
|
|
#тип - целое число
|
|
|
ext_port_start = 8001
|
|
|
|
|
|
#конец диапазона внешних портов
|
|
|
#опциональный параметр
|
|
|
#тип - целое число
|
|
|
ext_port_end = 8001
|
|
|
|
|
|
#протокол natRule
|
|
|
#опциональный параметр
|
|
|
#тип - строка
|
|
|
proto = "tcp"
|
|
|
}
|
|
|
|
|
|
#восстановление ресурса
|
|
|
#опциональный параметр
|
|
|
#по умолчанию - true
|
|
|
#тип - булев
|
|
|
restore = true
|
|
|
|
|
|
#перезапуск vnfDev
|
|
|
#опциональный параметр
|
|
|
#тип - булев
|
|
|
vnfdev_restart = true
|
|
|
|
|
|
#редеплой vnfDev
|
|
|
#опциональный параметр
|
|
|
#тип - булев
|
|
|
vnfdev_redeploy = true
|
|
|
|
|
|
#список dns
|
|
|
#опциональный параметр
|
|
|
#применяется при создании и редактировании ресурса
|
|
|
#если при создании указать пустой список, то ресурс создается с полем vnfs.dhcp.config.dns, имеющим значение по умолчанию
|
|
|
#если при обновлении указать пустой список, то ресурс обновит в модели поле vnfs.dhcp.config.dns с текущего значения на пустой список
|
|
|
#тип - список строк
|
|
|
#dns = ["1.1.1.1", "2.2.2.2"]
|
|
|
}
|
|
|
|
|
|
output "test" {
|
|
|
value = dynamix_vins.vins
|
|
|
}
|