Resource функция dynamix_vins служит для управления виртуальными сетевыми сегментами (Virtual Network Segment) в платформе DYNAMIX.
Аргументы
Resource функция dynamix_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 функция dynamix_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 |
Список виртуальных сетей |
vnc_password |
string |
VNC пароль |
Описание структуры 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 |
Шлюз по умолчанию |
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 |
int |
Максимальный размер пакета, который может быть передан по сети без фрагментации |
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
Параметр |
Тип |
Описание |
guid |
string |
GUID |
txmode |
string |
TX mode |
ioeventfd |
string |
IO event |
event_idx |
string |
Event ID |
queues |
int |
Количество очередей |
rx_queue_size |
int |
Длина очереди RX |
tx_queue_size |
int |
Длина очереди TX |
Описание структуры 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
Параметр |
Тип |
Описание |
_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
Параметр |
Тип |
Описание |
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_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 функции dynamix_vins:
resource "dynamix_vins" "vins" {
#имя создаваемого ресурса
#обязательный параметр
#тип - строка
name = "Test_name"
#id ресурсной группы для создания ресурса
#опциональный параметр
#тип - целое число
rg_id = 10101
#id аккаунта для создания ресурса
#опциональный параметр
#тип - целое число
account_id = 2023
#блок правил extnet
#опциональный параметр
#тип - блок extnet
ext_net = {
#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"
}]
#список для резервирования ip
#опциональный параметр
#тип - массив объектов правил 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"]
}
После успешного завершения такого вызова dynamix_vins в переменной dynamix_vins.vins
будут сохранены возвращаемые значения. В частности, для получения идентификатора ViNS следует использовать конструкцию dynamix_vins.vins.id