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.9.2/07.01.04-Resource_decort_vi...

31 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. Правила NAT можно указать только для зарезервированных IP. Если создается resourse_decort_vins и resourse, который будет использовать данный vins, то поле nat_rule необходимо указать только после подключения данной сети к resourse и резервирования ip адреса
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{} см. ниже Информация о компьютах
created_by string Кем создан ресурс
created_time int Время создания ресурса
default_gw string Шлюз по умолчанию
default_qos []Struct{} см. ниже qos виртуальной сети
deleted_by string Кем удален ресурс
deleted_time int Время удаления ресурса
desc string Текстовое описание ViNS.
dns []string Список IP адресов DNS
enabled bool Флаг, отвечающий за доступность ресурса
ext_ip_addr string IP внешней сети, если задан
ext_net_id []int Список внешних сетей, к которым подключен ресурс
ext_net_id int Идентификатор внешней сети, в которую должен быть подключён ViNS по умолчанию.
force bool Флаг принудительного удаления ресурса.
gid int Grid ID
guid int ID ресурса
id string Идентификатор данной сети.
ip Struct{} см. ниже Структура для резервирования IP адресов
ipcidr string IP CIDR, указанный при создании.
lock_status string Статус доступа виртуальной сети
manager_id int ID manager
manager_type string Type of manager
milestones int Milestones
name string Имя ViNS.
nat_rule Struct{} см. ниже Структура для того, чтобы задавать правила NAT.
net_mask int Маска подсети
network string Сеть Vins
permanently bool Флаг безвозвратного удаление сети
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 Статус
updated_by string Юзернейм обновивший ресурс
updated_time int Время обновления
user_managed bool Флаг user managed
vins_id int Идентификатор данной сети.
vnf_dev []Struct{} см. ниже VNFDEV
vnfdev_restart bool Флаг, для рестарта VNF
vnfdev_redeploy bool Флаг, для редеплоя VNF
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 ресурса
interfaces []Struct{} см. ниже Информация о интерфейсах
lock_status string Статус доступа vnf_dev
milestones int Этапы
status string Статус
tech_status string Технический статус
type string Тип vnf
vins []int Список виртуальных сетей
vnc_password string vnc пароль
vnf_id int ID vnf
vnf_name string Имя VNF

Описание структуры 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

Параметр Тип Описание
bus_number int Номер шины
conn_id int ID коннекта
conn_type string Тип коннекта
def_gw string Шлюз по умолчанию
enabled bool Флаг доступности
flipgroup_id int ID flipgroup
guid string ID ресурса
ip_address string IP адрес интерфейса
libvirt_settings []Struct{}см. ниже Параметры libvirt virtio интерфейса
listen_ssh bool Флаг, говорящий о том, слушается ли ssh
mac string MAC адрес интерфейса
mtu string Максимальный объём данных, который может быть передан за одну итерацию
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

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

Параметр Тип Описание
event_idx string Event ID
guid string GUID
ioeventfd string IO event
queues int Количество очередей
rx_queue_size int Длина очереди RX
tx_queue_size int Длина очереди TX
txmode string TX mode

Описание структуры 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{} см. ниже Информация о девайсах
dhcp_id int ID dhcp
gid int GRID ID
guid int ID ресурса
lock_status string Статус доступа виртуальной сети
milestones int Milestones
owner_id int ID владельца
owner_type string Тип владельца
pure_virtual bool Флаг, показывающий является ли ресурс чисто виртуальным
routes []Struct{} Список статических маршрутов
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

Параметр Тип Описание
account_id int ID аккунта
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_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

Описание структуры 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 Имя виртуальной машины

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

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

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

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

resource "decort_vins" "vins" {
  #имя создаваемого ресурса
  #обязательный параметр
  #тип - строка
  #используется при создании
  name = "Test_name"

  #id ресурсной группы для создания ресурса
  #должен быть указан или rg_id или account_id
  #опциональный параметр
  #тип - целое число
  #используется при создании
  rg_id = 10101

  #id аккаунта для создания ресурса
  #должен быть указан или rg_id или account_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"

  #количество зарезервированных адресов на момент создания
  #опциональный параметр
  #тип - целое число
  #используется при создании
  #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