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-dynamix/wiki/1.2.0/07.01.04-Resource_dynamix_v...

475 lines
25 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.

_Resource_ функция **dynamix_vins** служит для управления виртуальными сетевыми сегментами (Virtual Network Segment) в платформе DYNAMIX.
## Аргументы
_Resource_ функция **dynamix_vins** принимает следующие аргументы:
| Аргумент | Тип | Обязательный | Описание |
| --- | --- | --- | --- |
| name | string | :heavy_check_mark: | Имя виртуального сетевого сегмента (ViNS), по которому требуется получить информацию. Имя не может быть пустым.<br/>ViNS идентифицируется по комбинации имени и идентификатора ресурсной группы (`rg_id`) или подписчика (`account_id`).<br>Обратите внимание, что имя ViNS является уникальным в рамках "account" и ресурсной группы. |
| rg_id | int | :x: | Идентификатор ресурсной группы, в которой должен находиться данный ViNS.<br>Если требуется создать ViNS на уровне подписчика ("account"), то необходимо указать `rg_id = 0`.<br/>Обратите внимание, что попытка изменить `rg_id` у существующего ресурса приведёт к его пересозданию. |
| account_id | int | :x: | Данный параметр является обязательным независимо от того, создаётся ли ViNS на уровне подписчика или на уровне ресурсной группы.<br/> Идентификатор подписчика ("account"), в котором должен находиться данный ViNS.<br/>Обратите внимание, что попытка изменить `account_id` у существующего ресурса приведёт к его пересозданию. |
| dns | []string | :x: | Список IP адресов DNS |
| ext_net_id | int | :x: | Идентификатор внешней сети, в которую должен быть подключён ViNS. Если подключение во внешнюю сеть не требуется, то необходимо задать `ext_net_id = 0`.<br/>Обратите внимание, что из всех ViNS, созданных на уровне одной и той же ресурсной группы, только один может иметь подключение к внешней сети. ViNS, созданные на уровне "account", не могут иметь подключений к внешним сетям. |
| ext_ip_addr | string | :x: | IP внешней сети |
| ipcidr | string | :x: | IP CIDR, который требуется присвоить внутреннему сегменту данного ViNS. <br/>Данный параметр не является обязательным и принимается во внимание только на стадии создания нового ViNS. Если он не задан, то платформа установит значение самостоятельно. |
| pre_reservations_num | int | :x: | Кол-во IP адресов, которое будет зарезервировано при создании |
| gid | int | :x: | GRID ID |
| enabled | bool | :x: | Флаг, отвечающий за возможность переводить ресурс в состояния enable и disable |
| permanently | bool | :x: | Безвозвратное удаление диска. Используется при удалении |
| force | bool | :x: | Удаление ресурса, в случае если он к чему-то присоединен произойдет отсоединение его от других ресурсов и удаление |
| ip | Struct{} [см. ниже](#описание-структуры-ip) | :x: | Структура для резервирования IP адресов |
| nat_rule | Struct{} [см. ниже](#описание-структуры-nat_rule) | :x: | Структура для того, чтобы задавать правила NAT |
| desc | string | :x: | Текстовое описание данного ViNS.<br/>Данный параметр не является обязательным, значение по умолчанию - пустая строка. |
| restore | bool | :x: | Флаг, для восстановления ресурса |
| vnfdev_restart | bool | :x: | Флаг, для рестарта VNF |
| vnfdev_redeploy | bool | :x: | Флаг, для редеплоя VNF |
### Описание структуры ip
| Аргумент | Тип | Обязательный | Описание |
| --- | --- | --- | --- |
| type | string | :heavy_check_mark: | Тип резервирования IP адреса |
| ip_addr | string | :x: | IP адрес, который надо зарезервировать |
| mac_addr | string | :x: | MAC адрес, который надо зарезервировать |
| compute_id | int | :x: | ID компьюта, который надо зарезервировать |
### Описание структуры nat_rule
| Аргумент | Тип | Обязательный | Описание |
| --- | --- | --- | --- |
| int_ip | string | :heavy_check_mark: | Внутренний IP, для NAT правила |
| int_port | int | :x: | Внутренний порт, для NAT правила |
| ext_port_start | int | :heavy_check_mark: | Начало диапазона внешних портов, для NAT правила |
| ext_port_end | int | :x: | Конец диапазона внешних портов, для NAT правила |
| proto | string | :x: | Протокол для NAT. tcp или udp |
Пользователь облачной платформы, от лица которого происходит обращение к данной функции, должен иметь доступ к указанной учётной записи ("account") и/или ресурсной группе. В противном случае возникнет ошибка доступа.
## Возвращаемые значения
В случае успешного выполнения _Resource_ функция **dynamix_vins** возвращает в указанную при вызове переменную следующие значения:
| Параметр | Тип | Описание |
| --- | --- | --- |
| vnf_dev | []Struct{} [см. ниже](#описание-структуры-vnf_dev) | VNFDEV |
| \_ckey | string | CKey |
| account_id | int | Уникальный идентификатор подписчика-владельца ViNS. |
| account_name | string | Имя подписчика ("account"), которому принадлежит ViNS. |
| computes | []Struct{} [см. ниже](#описание-структуры-computes) | Информация о компьютах |
| default_gw | string | Шлюз по умолчанию |
| default_qos | []Struct{} [см. ниже](#описание-структуры-qos) | 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) | VNFS |
| vxlan_id | int | ID vxlan |
| routes | []Struct{} [см. ниже](#описание-структуры-routes) | Список статических маршрутов |
### Описание структуры 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{} [см. ниже](#описание-структуры-config) | Конфиг 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{} [см. ниже](#описание-структуры-interfaces) | Информация о интерфейсах |
| 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{} [см. ниже](#описание-структуры-mgmt) | Config Mgmt |
| resources | []Struct{} [см. ниже](#описание-структуры-resources) | 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_settings) | Параметры 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) | 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 | []Struct{} [см. ниже](#описание-структуры-dhcp) | информаиця о DHCP |
| gw | []Struct{} [см. ниже](#описание-структуры-gw) | GW |
| nat | []Struct{} [см. ниже](#описание-структуры-nat) | NAT |
### Описание структуры dhcp
| Параметр | Тип | Описание |
| --- | --- | --- |
| \_ckey | string | CKey |
| account_id | int | Уникальный идентификатор подписчика-владельца ViNS. |
| config | Struct{} [см. ниже](#описание-структуры-dhcp-config) | Информация о DHCP конфиге |
| created_time | int | Время создания |
| devices | []Struct{} [см. ниже](#описание-структуры-devices) | Информация о девайсах |
| 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) | Информация о резервациях |
### Описание структуры reservations
| Параметр | Тип | Описание |
| --- | --- | --- |
| account_id | int | Тип ID аккаунта |
| ip | string | IP адрес |
| mac | string | MAC адрес |
| type | string | Тип |
| vm_id | int | ID виртуальной машины |
### Описание структуры devices
| Параметр | Тип | Описание |
| --- | --- | --- |
| primary | Struct{} [см. ниже](#описание-структуры-primary) | Первичная информация |
### Описание структуры primary
| Параметр | Тип | Описание |
| --- | --- | --- |
| dev_id | int | ID dev |
| iface01 | string | Интерфейс 1 |
| iface02 | string | Интерфейс 2 |
### Описание структуры gw
| Параметр | Тип | Описание |
| --- | --- | --- |
| \_ckey | string | CKey |
| account_id | int | Уникальный идентификатор подписчика-владельца ViNS. |
| config | Struct{} [см. ниже](#описание-структуры-gw-config) | Информация о конфиге |
| created_time | int | Время создания |
| devices | []Struct{} [см. ниже](#описание-структуры-devices) | Информация о девайсах |
| 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) | QOS |
### Описание структуры nat
| Параметр | Тип | Описание |
| --- | --- | --- |
| \_ckey | string | CKey |
| account_id | int | Уникальный идентификатор подписчика-владельца ViNS. |
| created_time | int | Время создания |
| config | Struct{} [см. ниже](#описание-структуры-nat-config) | Информация о конфиге |
| devices | []Struct{} [см. ниже](#описание-структуры-devices) | Информация о девайсах |
| 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{} [см. ниже](#описание-структуры-rules) | Правила 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**:
```terraform
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`