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.
wiki-terraform-provider-decort/4.6.1/07.01.04-Resource_decort_vi...

26 KiB

Resource функция decort_vins служит для управления виртуальными сетевыми сегментами (Virtual Network Segment) в платформе DECORT.

Изменения в 3.3.0

Добавлена обработка статусов виртуальной сети.
Если статус DELETED, то при попытке изменения конфигурационного файла, сеть будет автоматически восстановлена.
Если статус DESTROYED, то при попытке изменения конфигурационного файла, сеть будет автоматически пересоздана.
Начиная с версии 3.3.0, в ресурсе vins появляется опциональное поле enabled, которое принимает в себя булево значение. Поле отвечает за ручную регуляцию статуса доступности виртуальной сети, автоматическая регуляция так же имеется - восстановленная и вновь созданная виртуальная сеть переводится в режим enabled = true.
Добавлена возможность добалять NAT правила через блок nat_rule.
Добавлена возможность резервировать и освобождать IP адреса для виртуальной сети с помощью блока ip.
Добавлена возможность ручного рестарта виртуальной сети, через опциональное поле restore которое принимает в себя булево значение.
Добавлена возможность ручного рестарта VNF, через опциональное поле vnfdev_restart которое принимает в себя булево значение.
Добавлена возможность ручного редеплоя VNF, через опциональное поле vnfdev_redeploy которое принимает в себя булево значение.
Добавлена возможность удаления ресурса в корзину и полность, через опциональное поле permanently которое принимает в себя булево значение.
Добавлена возможность удаления ресурса даже если к нему присоеденены другие ресурсы, которые будут отключены от виртуальной сети, через опциональное поле force которое принимает в себя булево значение.

Аргументы

Resource функция decort_vins принимает следующие аргументы:

Аргумент Тип Обязательный Описание
name string ✔️ Имя виртуального сетевого сегмента (ViNS), по которому требуется получить информацию. Имя не может быть пустым.
ViNS идентифицируется по комбинации имени и идентификатора ресурсной группы (rg_id) или подписчика (account_id).
Обратите внимание, что имя ViNS является уникальным в рамках "account" и ресурсной группы.
rg_id int Идентификатор ресурсной группы, в которой должен находиться данный ViNS.
Если требуется создать ViNS на уровне подписчика ("account"), то необходимо указать rg_id = 0.
Обратите внимание, что попытка изменить rg_id у существующего ресурса приведёт к его пересозданию.
account_id int Данный параметр является обязательным независимо от того, создаётся ли ViNS на уровне подписчика или на уровне ресурсной группы.
Идентификатор подписчика ("account"), в котором должен находиться данный ViNS.
Обратите внимание, что попытка изменить account_id у существующего ресурса приведёт к его пересозданию.
dns []string Список IP адресов DNS
ext_net_id int Идентификатор внешней сети, в которую должен быть подключён ViNS. Если подключение во внешнюю сеть не требуется, то необходимо задать ext_net_id = 0.
Обратите внимание, что из всех ViNS, созданных на уровне одной и той же ресурсной группы, только один может иметь подключение к внешней сети. ViNS, созданные на уровне "account", не могут иметь подключений к внешним сетям.
ext_ip_addr string IP внешней сети
ipcidr string IP CIDR, который требуется присвоить внутреннему сегменту данного ViNS.
Данный параметр не является обязательным и принимается во внимание только на стадии создания нового ViNS. Если он не задан, то платформа установит значение самостоятельно.
pre_reservations_num int Кол-во IP адресов, которое будет зарезервировано при создании
gid int GRID ID
enabled bool Флаг, отвечающий за возможность переводить ресурс в состояния enable и disable
permanently bool Безвозвратное удаление диска. Используется при удалении
force bool Удаление ресурса, в случае если он к чему-то присоединен произойдет отсоединение его от других ресурсов и удаление
ip Struct{} см. ниже Структура для резервирования IP адресов
nat_rule Struct{} см. ниже Структура для того, чтобы задавать правила NAT
desc string Текстовое описание данного ViNS.
Данный параметр не является обязательным, значение по умолчанию - пустая строка.
restore bool Флаг, для восстановления ресурса
vnfdev_restart bool Флаг, для рестарта VNF
vnfdev_redeploy bool Флаг, для редеплоя VNF

Описание структуры ip

Аргумент Тип Обязательный Описание
type string ✔️ Тип резервирования IP адреса
ip_addr string IP адрес, который надо зарезервировать
mac_addr string MAC адрес, который надо зарезервировать
compute_id int ID компьюта, который надо зарезервировать

Описание структуры nat_rule

Аргумент Тип Обязательный Описание
int_ip string Внутренний IP, для NAT правила
int_port int Внутренний порт, для NAT правила
ext_port_start int Начало диапазона внешних портов, для NAT правила
ext_port_end int Конец диапазона внешних портов, для NAT правила
proto string Протокол для NAT. tcp или udp

Пользователь облачной платформы, от лица которого происходит обращение к данной функции, должен иметь доступ к указанной учётной записи ("account") и/или ресурсной группе. В противном случае возникнет ошибка доступа.

Возвращаемые значения

В случае успешного выполнения Resource функция decort_vins возвращает в указанную при вызове переменную следующие значения:

Параметр Тип Описание
vnf_dev []Struct{} см. ниже VNFDEV
_ckey string CKey
account_id int Уникальный идентификатор подписчика-владельца ViNS.
account_name string Имя подписчика ("account"), которому принадлежит ViNS.
computes []Struct{} см. ниже Информация о компьютах
default_gw string Шлюз по умолчанию
default_qos []Struct{} см. ниже qos виртуальной сети
desc string Текстовое описание ViNS.
gid int Grid ID
guid int ID ресурса
lock_status string Статус доступа виртуальной сети
manager_id int ID manager
manager_type string Type of manager
milestones int Milestones
name string Имя ViNS.
net_mask int Маска подсети
network string Сеть Vins
pre_reservations_num int Кол-во зарезервированных ip адресов
redundant bool Redudant
rg_id int Идентификатор ресурсной группы, на уровне которой создан ViNS. Для ViNS, существующих на уровне "account", данный параметр будет равен 0.
rg_name string Имя ресурсной группы
sec_vnf_dev_id int ID sec vnf
status string Статус
user_managed bool Флаг user managed
vnfs []Struct{} см. ниже VNFS
vxlan_id int ID vxlan
routes []Struct{} см. ниже Список статических маршрутов

Описание структуры routes

Параметр Тип Описание
compute_ids []int Список ID compute, которым предоствавлен доступ
route_id int ID статического маршрута
guid string ID ресурса
destination string IP целевой сети
netmask string Маска сети
gateway string IP шлюза

Описание структуры vnf_dev

Параметр Тип Описание
_ckey string Ckey
account_id int ID аккаунта
capabilities []string Возможности vnf_dev
config Struct{} см. ниже Конфиг VNF
config_saved bool Флаг, отвечающий за то сохранен ли конфиг
custom_pre_cfg bool Custom
desc string Описание
gid int Grid ID
guid int ID ресурса
vnf_id int ID vnf
interfaces []Struct{} см. ниже Информация о интерфейсах
lock_status string Статус доступа vnf_dev
milestones int Этапы
vnf_name string Имя VNF
status string Статус
tech_status string Технический статус
type string Тип vnf
vins []int Список виртуальных сетей

Описание структуры config

Параметр Тип Описание
mgmt Struct{} см. ниже Config Mgmt
resources []Struct{} см. ниже Config resources

Описание структуры mgmt

Параметр Тип Описание
ip_addr string IP адрес mgmt
password string Пароль юзера
ssh_key string Публичный SSH ключ
user string Имя юзера

Описание структуры resources

Параметр Тип Описание
cpu int Кол-во cpu ресурса
ram int Кол-во ram ресурса
stack_id int ID stack ресурса
uuid string UUID ресурса

Описание структуры interfaces

Параметр Тип Описание
conn_id int ID коннекта
conn_type string Тип коннекта
def_gw string Шлюз по умолчанию
flipgroup_id int ID flipgroup
guid string ID ресурса
ip_address string IP адрес интерфейса
listen_ssh bool Флаг, говорящий о том, слушается ли ssh
mac string MAC адрес интерфейса
name string Имя интерфейса
net_id int ID сети
net_mask int Маска
net_type string Тип сети
pci_slot int Слот pci
qos Struct{} см. ниже QOS
target string Таргет интерфейса
type string Тип интерфейса
vnfs []int Список ID vnf

Описание структуры computes

Параметр Тип Описание
compute_id int ID компьюта
compute_name string Имя компьюта

Описание структуры qos

Параметр Тип Описание
e_rate int E rate
guid string ID ресурса
in_brust int In brust
in_rate int In rate

Описание структуры vnfs

Параметр Тип Описание
dhcp []Struct{} см. ниже информаиця о DHCP
gw []Struct{} см. ниже GW
nat []Struct{} см. ниже NAT

Описание структуры dhcp

Параметр Тип Описание
_ckey string CKey
account_id int Уникальный идентификатор подписчика-владельца ViNS.
config Struct{} см. ниже Информация о DHCP конфиге
created_time int Время создания
devices []Struct{} см. ниже Информация о девайсах
gid int GRID ID
guid int ID ресурса
dhcp_id int ID dhcp
lock_status string Статус доступа виртуальной сети
milestones int Milestones
owner_id int ID владельца
owner_type string Тип владельца
pure_virtual bool Флаг, показывающий является ли ресурс чисто виртуальным
status string Статус
tech_status string Технический статус
type string Тип ресурса

Описание структуры dhcp config

Параметр Тип Описание
default_gw string Шлюз по умолчанию
dns []string Список dns
ip_end string Конец диапазона IP адресов
ip_start string Старт диапазона IP адресов
lease int срок
netmask int Маска сети
network string Сеть
reservations []Struct{} см. ниже Информация о резервациях

Описание структуры reservations

Параметр Тип Описание
client_type string Тип клиента
desc string Описание
domainname string Имя домена
hostname string Имя хоста
ip string IP адрес
mac string MAC адрес
type string Тип
vm_id int ID виртуальной машины

Описание структуры devices

Параметр Тип Описание
primary Struct{} см. ниже Первичная информация

Описание структуры primary

Параметр Тип Описание
dev_id int ID dev
iface01 string Интерфейс 1
iface02 string Интерфейс 2

Описание структуры gw

Параметр Тип Описание
_ckey string CKey
account_id int Уникальный идентификатор подписчика-владельца ViNS.
config Struct{} см. ниже Информация о конфиге
created_time int Время создания
devices []Struct{} см. ниже Информация о девайсах
gid int GRID ID
guid int ID ресурса
gw_id int ID GW
lock_status string Статус доступа виртуальной сети
milestones int Milestones
owner_id int ID владельца
owner_type string Тип владельца
pure_virtual bool Флаг, показывающий является ли ресурс чисто виртуальным
status string Статус
tech_status string Технический статус
type string Тип ресурса

Описание структуры gw config

Параметр Тип Описание
default_gw string Шлюз по умолчанию
ext_net_id int ID внешней сети
ext_net_ip string IP внешней сети
ext_netmask int Маска внешней сети
qos Struct{} см. ниже QOS

Описание структуры nat

Параметр Тип Описание
_ckey string CKey
account_id int Уникальный идентификатор подписчика-владельца ViNS.
created_time int Время создания
config Struct{} см. ниже Информация о конфиге
devices []Struct{} см. ниже Информация о девайсах
gid int GRID ID
guid int ID ресурса
nat_id int ID NAT
lock_status string Статус доступа виртуальной сети
milestones int Milestones
owner_id int ID владельца
owner_type string Тип владельца
pure_virtual bool Флаг, показывающий является ли ресурс чисто виртуальным
status string Статус
tech_status string Технический статус
type string Тип ресурса

Описание структуры nat config

Параметр Тип Описание
net_mask int Маска сети
network string Сеть
rules []Struct{} см. ниже Правила NAT

Описание структуры rules

Параметр Тип Описание
rule_id int ID правила
local_ip string Локальный IP адрес
local_port int Локальный порт
protocol string Протокол
public_port_end int Конец диапазона портов
public_port_start int Начало диапазона портов
vm_id int ID виртуальной машины
vm_name string Имя виртуальной машины

Пример использования

Пример вызова Resource функции decort_vins:

resource "decort_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

  #удаление навсегда
  #опциональный параметр
  #тип - булев
  permanently = 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"
  }

  #восстановление ресурса
  #опциональный параметр
  #тип - булев
  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"]

}

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