Add new pages

stSolo
2022-07-25 19:18:20 +03:00
parent 19d8122b37
commit b405196ddc
32 changed files with 1724 additions and 1085 deletions

@@ -0,0 +1,113 @@
Функция доступна в провайдере версии 2.0 и выше.
_Resource_ функция **decort_image** служит для управления образом.
## Аргументы
_Resource_ функция **decort_image** для создания образа принимает следующие аргументы:
| Аргумент | Тип | Обязательный | Описание |
| -------------- | -------- | ------------------ | --------------------------------------------------------------------------------------------------------------------------------------- |
| name | string | :heavy_check_mark: | Имя образа<br/>При изменении - изменяет название образа |
| url | string | :heavy_check_mark: | Адрес образа |
| gid | int | :heavy_check_mark: | Grid id образа |
| boot_type | string | :heavy_check_mark: | Тип загрузки образа,<br/>возможные варианты: "bios" или "uefi" |
| image_type | string | :heavy_check_mark: | Тип образа,<br />возможные варианты - "linux", "windows" |
| drivers | []string | :heavy_check_mark: | Драйвера,<br/>возможные варианты - ["KVM_X86", "SVA_KVM_X86"], ["KVM_X86"], ["SVA_KVM_X86"] |
| account_id | int | :x: | ID аккаунта владельца образа,<br/>может быть использован как при создании, так и редактировании образа |
| username | string | :x: | Имя пользователя,<br/>может быть использован как при создании, так и редактировании образа |
| password | string | :x: | Пароль пользователя,<br/>может быть использован как при создании, так и редактировании образа |
| username_dl | string | :x: | Имя пользователя для загрузки бинарных данных,<br/>может быть использован как при создании, так и редактировании образа |
| password_dl | string | :x: | Пароль пользователя для загрузки бинарных данных,<br/>может быть использован как при создании, так и редактировании образа |
| sync | bool | :x: | Синхронное создание образа, используется при создании |
| sep_id | int | :x: | ID storage endpoint |
| pool_name | string | :x: | Пул для создания образа |
| architecture | string | :x: | Используется при создании, <br/>архитектура системы образа<br/>доступные значения: "X86_64"<br/>по-умолчанию "X86_64" |
| enabled | bool | :x: | Доступность образа,<br/>используется при редактировании ресурса |
| shared_with | []int | :x: | Настройка доступа образа аккаунтам<br/>используется на уже созданном ресурсе,<br/>пустой маасив - удаление всех доступов, если они были |
| computeci_id | int | :x: | Установка computeci,<br/>используется на уже созданном ресурсе,<br/>чтобы сбросить, необходимо передать 0 |
| enabled_stacks | []string | :x: | Доступные стаки,<br/>используется на уже созданном ресурсе<br/>для удаления всех доступных стаков, необходимо передать пустой массив |
| permanently | bool | :x: | Мгновенное удаление<br/>можно использовать перед удалением |
| reason | string | :x: | Причина удаления<br/>можно использовать перед удалением |
## Возвращаемые значения
В случае успешного выполнения _resource_ функция **decort_image** возвращает в указанную при вызове переменную следующие значения:
| Параметр | Тип | Описание |
| -------------- | ------------------------------------------ | -------------------------------------------------------- |
| account_id | int | accountId привязки образа |
| architecture | string | Архитектура образа, возможен вариант X86_64 или PPC64_LE |
| boot_type | string | Тип запуска ОС - bios или uefi |
| bootable | bool | Является ли образ загрузочным |
| computeci_id | int | ID вычислительного ресурса |
| desc | string | Описание образа |
| drivers | []string | Список используемых драйверов |
| enabled | bool | Доступность образа |
| gid | int | ID платформы, где образ будет создан |
| guid | int | Внутренний id образа, совпадает с image_id |
| history | object{id: int, guid: int, timestamp: int} | История обновлений образа |
| hot_resize | bool | Использует ли машина горячее изменение размера образа |
| image_type | string | Тип образа: linux, windows или другой |
| last_modified | int | Дата последнего изменения |
| link_to | int | Привязка к образу, используется в виртуальных образах |
| meta | []string | Мета информация об образе |
| milestones | int | Вехи |
| name | string | Название образа |
| password | string | Пароль для образа |
| password_dl | string | Пароль для загрузки двоичных файлов |
| permanently | bool | Удаление образа: мгновенное или нет |
| pool_name | string | Пул, в котором был создан образ |
| provider_name | string | Наименование провайдера |
| purge_attempts | int | Попытки |
| reference_id | string | ID ссылки |
| res_id | string | ID ресурса |
| res_name | string | Наименование ресурса |
| rescuecd | bool | cd или нет |
| sep_id | int | storage endpoint provider ID |
| size | int | Размер образа |
| status | string | Статус образа |
| tech_status | string | Технический статус |
| unc_path | string | unc path |
| url | string | Адрес, которого осуществлялась загрузка образа |
| username | string | Имя пользователя образа |
| username_dl | string | Имя пользователя для загрузки двоичных файлов |
| version | string | Версия |
## Пример использования
Пример вызова _resource_ функции **decort_image**:
```terraform
resource "decort_image" "my_image" {
name = "test_image_rename"
url = <IMAGE_URL>
gid = 212
boot_type = "bios"
image_type = "linux"
drivers = ["KVM_X86", "SVA_KVM_X86"]
#account_id = 5725
#username = "Valera"
#password = "123"
#username_dl = "Valera1"
#password_dl = "1231"
#sep_id = 1206
#pool_name = "vmstor"
#architecture = "X86_64"
#enabled = true
#shared_with = [28096, 57121]
#computeci_id = 1
#enabled_stacks = ["9"]
#permanently = true
#reason = "test"
}
# once the above directive completes, will be accessible
# as decort_image.my_image
```
Данный пример подразумевает, что ранее по тексту tf-файла выполнена корректная инициализация провайдера (подробнее об инициализации Terraform провайдера DECORT см. соответствующий [раздел](https://github.com/rudecs/terraform-provider-decort/wiki/05.-%D0%98%D0%BD%D0%B8%D1%86%D0%B8%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F-Terraform-%D0%BF%D1%80%D0%BE%D0%B2%D0%B0%D0%B9%D0%B4%D0%B5%D1%80%D0%B0-DECORT.)).
После успешного завершения такого вызова **decort_image** в переменной `decort_image.my_image` будут сохранены возвращаемые значения.

@@ -0,0 +1,59 @@
Функция доступна в провайдере версии 2.2 и выше.
_Resource_ функция **decort_pcidevice** служит для управления устройств с шиной PCI.
## Аргументы
_Resource_ функция **decort_pcidevice** принимает следующие аргументы:
| Аргумент | Тип | Обязательный | Описание |
| ----------- | ------ | ------------------ | ---------------------------------------------------------------------------------------------- |
| name | string | :heavy_check_mark: | Имя устройства |
| hw_path | string | :heavy_check_mark: | Путь до устройства (HW Path) |
| description | string | :heavy_check_mark: | Описание устройства |
| rg_id | int | :heavy_check_mark: | id ресурсной группы устройства |
| stack_id | int | :heavy_check_mark: | id стака устройства |
| enable | bool | :x: | Доступность устройства, может использоваться на уже созданном ресурсе |
| force | bool | :x: | Принудительное удаление устройства, используется при удалении устройства |
| device_id | int | :x: | id устройства, может быть использовано для формирования .tfstate, при наличии ресурса в облаке |
## Возвращаемые значения
В случае успешного выполнения _resource_ функция **decort_pcidevice** возвращает в указанную при вызове переменную элемент, который состоит из следующих параметров:
| Параметр | Тип | Описание |
| ----------- | -------- | ------------------------------------ |
| meta | []string | Мета информация |
| compute_id | int | id вычислительной площадки |
| description | string | Описание |
| guid | int | Внутренний id |
| hw_path | string | HW Путь |
| device_id | int | id устройства |
| name | string | Наименование устройства |
| rg_id | int | id ресурсной группы (resource group) |
| stack_id | int | id стэка |
| status | string | Статус устройства |
| system_name | string | Системное имя устройства |
## Пример использования
Пример вызова _resource_ функции **decort_pcidevice**:
```terraform
resource "decort_pcidevice" "pd" {
name = "test_device"
hw_path = "0000:01:00.0"
description = "test desc"
rg_id = 11111
stack_id = 11
#enable = false
#force = true
}
# once the above directive completes, pcidevice will be accessible
# as decort_pcidevice.pd
```
Данный пример подразумевает, что ранее по тексту tf-файла выполнена корректная инициализация провайдера (подробнее об инициализации Terraform провайдера DECORT см. соответствующий [раздел](https://github.com/rudecs/terraform-provider-decort/wiki/05.-%D0%98%D0%BD%D0%B8%D1%86%D0%B8%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F-Terraform-%D0%BF%D1%80%D0%BE%D0%B2%D0%B0%D0%B9%D0%B4%D0%B5%D1%80%D0%B0-DECORT.)).
После успешного завершения такого вызова **decort_pcidevice** в переменной `decort_pcidevice.pd` будут сохранены возвращаемые значения.

@@ -0,0 +1,385 @@
Функция доступна в провайдере версии 2.2 и выше.
_Resource_ функция **decort_sep_config** служит для управления конфигурацией storage endpoint. Storage endpoint (sep) - точка доступа к хранилищу данных. Sep бывает четырех типов:
- des
- hitachi
- dorado
- tatlin
Каждый тип отличается возможной конфигурацией.
_Resource_ функция **decort_sep_config** позволяет добавлять, редактировать конфигурацию sep. Обо всех доступных полях конфигурации для каждого типа storage endpoint см. ниже.
## Аргументы
_Resource_ функция **decort_sep_config** принимает следующие аргументы:
| Аргумент | Тип | Обязательный | Описание |
| ---------- | -------------------------------------------------------------------------------- | ------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| sep_id | int | :heavy_check_mark: | sep id |
| config | json string | :x: | Конфигурация sep. Не использовать вместе с field_edit |
| field_edit | Struct{<br/>field_name string<br/>field_value string<br/>field_type string<br/>} | :x: | Редактирование/добавление поля, используется при редактировании sep<br/>&nbsp;<br/>Наименование поля<br/>&nbsp;<br/>Значение поля<br/>&nbsp;<br/>Тип поля. Возможные значения: str, int, dict, list, bool<br/> &nbsp;<br/> Не использовать вместе с config |
## Возвращаемые значения
В случае успешного выполнения _data source_ функция **decort_sep** возвращает в указанную при вызове переменную элемент, который состоит из следующих параметров:
| Параметр | Тип | Описание |
| ---------- | -------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| sep_id | int | id storage |
| config | json string | Конфигурация sep |
| field_edit | Struct{<br/>field_name string<br/>field_value string<br/>field_type string<br/>} | Редактирование/добавление поля, используется при редактировании sep<br/>&nbsp;<br/>Наименование поля<br/>&nbsp;<br/>Значение поля<br/>&nbsp;<br/>Тип поля. Возможные значения: str, int, dict, list, bool<br/> &nbsp;<br/> &nbsp; |
## Пример использования
Пример вызова _resource_ функции **decort_sep_config**:
```terraform
resource "decort_sep_config" "sc" {
sep_id = 1111
#config = file("./config.json")
#внимание, во избежание конфликтов не использовать с полем config
/*
field_edit {
field_name = "edgeuser_password"
field_value = "mosk"
field_type = "str"
}
*/
}
# once the above directive completes, sep will be accessible
# as decort_sep_config.sc
# and config will be accessible
# as decort_sep_config.sc.config
```
Данный пример подразумевает, что ранее по тексту tf-файла выполнена корректная инициализация провайдера (подробнее об инициализации Terraform провайдера DECORT см. соответствующий [раздел](https://github.com/rudecs/terraform-provider-decort/wiki/05.-%D0%98%D0%BD%D0%B8%D1%86%D0%B8%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F-Terraform-%D0%BF%D1%80%D0%BE%D0%B2%D0%B0%D0%B9%D0%B4%D0%B5%D1%80%D0%B0-DECORT.)).
После успешного завершения такого вызова **decort_sep_config** в переменной `decort_sep_config.sc` будут сохранены возвращаемые значения.
Чтобы получить доступ к конфигурации и сохранить ее в файл .json, необходимо:
1. определить в .tf - файле дополнительный output с любым именем, в который запишется информация о конфигурации sep и обернуть ее в вызов функции jsondecode для декодирования информации.
```terraform
output "sep_config" {
value = jsondecode(decort_sep_config.sc.config)
}
```
2. Применить изменения в терраформе.
```bash
terraform apply
```
3. Сохранить данные из output в .json - файл.
```bash
terraform output -json sep_config >> config.json
```
В общем случае это будет выглядеть как указано ниже.
```bash
terraform output -json <output-name> >> <file-name>.json
```
## Примеры возможных конфигураций для разных типов sep
Поля в разных версиях decort могут отличаться.
Конфигурация перед отправкой проходит валидацию.
### des
| Поле | Тип | Описание |
| ----------------- | -------- | --------------------------- |
| API_IPs | []string | Список ip адресов для api |
| protocol | string | Протокол сообщения с sep |
| decs3o_app_secret | string | Секретный ключ decs3o |
| format | string | Формат передачи данных |
| edgeuser_password | string | Пароль пользователя |
| edgeuser_name | string | Имя пользователя |
| decs3o_app_id | string | APP ID, полученный в decs3o |
| transport | string | Транспортный протокол |
```json
{
"API_IPs": ["11.111.1.11", "11.111.1.12", "11.111.1.13", "11.111.1.14"],
"protocol": "des",
"decs3o_app_secret": "",
"format": "raw",
"edgeuser_password": "somepassword",
"housekeeping_settings": {
"disk_del_queue": {
"purgatory_id": 1
}
},
"edgeuser_name": "someusername",
"decs3o_app_id": "",
"ovs_settings": {},
"pools": [
{
"types": ["D"],
"referenceId": "somerefid",
"name": "poolname2",
"pagecache_ratio": 100,
"uris": [
{
"ip": "11.111.1.11",
"port": 11
},
{
"ip": "11.111.1.12",
"port": 11
},
{
"ip": "11.111.1.13",
"port": 11
},
{
"ip": "11.111.1.14",
"port": 11
}
]
},
{
"types": ["D"],
"referenceId": "somerefid2",
"name": "poolname1",
"pagecache_ratio": 100,
"uris": [
{
"ip": "11.111.1.11",
"port": 12
},
{
"ip": "11.111.1.12",
"port": 12
},
{
"ip": "11.111.1.13",
"port": 12
},
{
"ip": "11.111.1.14",
"port": 12
}
]
},
{
"types": ["B"],
"referenceId": "somerefid3",
"name": "myname",
"pagecache_ratio": 100,
"uris": [
{
"ip": "11.111.1.11",
"port": 13
},
{
"ip": "11.111.1.12",
"port": 13
},
{
"ip": "11.111.1.13",
"port": 13
},
{
"ip": "11.111.1.14",
"port": 13
}
]
}
],
"transport": "tcp"
}
```
### hitachi
| Поле | Тип | Описание |
| ------------- | -------- | ------------------------- |
| API_URLs | []string | Список адресов для api |
| SN | string | Серийный номер |
| format | string | Формат передачи данных |
| disk_max_size | int | Максимальный размер диска |
| mgmt_password | string | Пароль пользователя |
| mgmt_user | string | Имя пользователя |
| model | string | Модель |
| name_prefix | string | Префикс в имени |
| protocol | string | Протокол сообщения |
| ssl_verify | bool | Проверка ssl |
```json
{
"API_URLs": ["https://11.11.111.11:11", "https://11.11.111.12:11"],
"SN": 1111,
"disk_max_size": 111,
"format": "raw",
"hostGroupNumMax": 1,
"hostGroupNumMin": 1,
"hostGroupNumber": 1,
"housekeeping_settings": {
"disk_del_queue": {
"purge_attempts_threshold": 20
}
},
"mgmt_password": "pwd",
"mgmt_user": "username",
"model": "model",
"name_prefix": "my-prefix-",
"pools": [
{
"clone_technology": "snapshot",
"id": 1,
"maxLdevId": 1111,
"minLdevId": 111,
"name": "my-prefix-01",
"snapshot_pool_id": 1,
"snapshotable": true,
"types": ["D", "B", "ANY"],
"usage_limit": 999999999
},
{
"clone_technology": "snapshot",
"id": 2,
"maxLdevId": 1111,
"minLdevId": 111,
"name": "my-prefix-92-snap",
"snapshot_pool_id": 1,
"snapshotable": true,
"types": [],
"usage_limit": 111
}
],
"ports": ["port-name-1", "port-name-2"],
"protocol": "scsi",
"ssl_verify": false
}
```
### dorado
| Поле | Тип | Описание |
| ----------------- | -------- | ------------------------- |
| API_URLs | []string | Список адресов для api |
| edgeuser_password | string | Пароль пользователя |
| edgeuser_name | string | Имя пользователя |
| format | string | Формат передачи данных |
| disk_max_size | int | Максимальный размер диска |
| mgmt_password | string | Пароль пользователя |
| mgmt_user | string | Имя пользователя |
| model | string | Модель |
| name_prefix | string | Префикс в имени |
| protocol | string | Протокол сообщения |
```json
{
"API_URLs": ["https://111.11.111.111:11/"],
"disk_max_size": 111,
"edgeuser_name": "username",
"edgeuser_password": "pwd",
"format": "raw",
"groups": {
"hostgroup": ["hostname", "1"],
"lungroup": ["hostname_lungroup", "2"],
"portgroup": ["hostname_portgroup", "3"]
},
"hostGroupName": "hostname",
"housekeeping_settings": {
"disk_del_queue": {
"purge_attempts_threshold": 20
}
},
"mgmt_password": "pwd2",
"mgmt_user": "username2",
"model": "Dorado",
"name_prefix": "my-prefix-",
"pools": [
{
"name": "pool1",
"types": ["D", "B", "ANY"],
"usage_limit": 111111
}
],
"ports": [
{
"ip": "11.111.1.111",
"name": "port1"
},
{
"ip": "11.111.1.112",
"name": "port2"
},
{
"ip": "11.111.1.113",
"name": "myport3"
}
],
"protocol": "iscsi"
}
```
### tatlin
| Поле | Тип | Описание |
| ----------------- | -------- | ------------------------- |
| API_URLs | []string | Список адресов для api |
| edgeuser_password | string | Пароль пользователя |
| edgeuser_name | string | Имя пользователя |
| format | string | Формат передачи данных |
| disk_max_size | int | Максимальный размер диска |
| mgmt_password | string | Пароль пользователя |
| mgmt_user | string | Имя пользователя |
| model | string | Модель |
| name_prefix | string | Префикс в имени |
| protocol | string | Протокол сообщения |
```json
{
"API_URLs": ["ssh://111.11.11.11:43"],
"disk_max_size": 1111,
"edgeuser_name": "usrname",
"edgeuser_password": "pwd",
"format": "raw",
"hostGroupName": "mygroupname",
"housekeeping_settings": {
"disk_del_queue": {
"purge_attempts_threshold": 20
}
},
"mgmt_password": "pwd2",
"mgmt_user": "usrname",
"model": "Tatlin",
"name_prefix": "my-prefix-",
"pools": [
{
"name": "pool-name",
"types": ["D", "B"],
"usage_limit": 11111
}
],
"ports": [
{
"ips": ["111.11.111.113", "111.11.111.114"],
"iqn": "some_iqn_string",
"name": "myportname"
},
{
"ips": ["111.11.111.113", "111.11.111.114"],
"iqn": "myiqnstring",
"name": "myportname"
}
],
"protocol": "iscsi",
"techDisk": {
"name": "mydiskname",
"pool": "pool-name",
"size": 1,
"wwid": "wwidstring"
}
}
```

@@ -0,0 +1,421 @@
Функция доступна в провайдере версии 2.2 и выше.
_Resource_ функция **decort_sep** служит для управления storage endpoint. Storage endpoint (sep) - точка доступа к хранилищу данных. Sep бывает четырех типов:
- des
- hitachi
- dorado
- tatlin
Каждый тип отличается возможной конфигурацией.
_Resource_ функция **decort_sep** позволяет создавать, редактировать, удалять sep. Кроме этого, с помощью этой функции можно добавлять, редактировать конфигурацию sep. Обо всех доступных полях конфигурации для каждого типа storage endpoint см. ниже.
## Аргументы
_Resource_ функция **decort_sep** принимает следующие аргументы:
| Аргумент | Тип | Обязательный | Описание |
| ------------------ | -------------------------------------------------------------------------------- | ------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| gid | int | :heavy_check_mark: | Grid id |
| name | string | :heavy_check_mark: | Наименование sep |
| type | string | :heavy_check_mark: | Тип sep.<br/>Возможные значения:<br/>des<br/>hitachi<br/>tatlin<br/>dorado |
| desc | string | :x: | Описание sep, используется при создании sep |
| config | json string | :x: | Конфигурация sep. Используется при создании и редактировании sep<br/>Не использовать вместе с field_edit |
| enable | bool | :x: | Доступность sep, используется при создании и редактировании sep |
| consumed_by | []int | :x: | Используемые nodes, используется при создании и редактировании sep |
| provided_by | []int | :x: | Используемые provider nodes, используется при создании и редактировании sep |
| upd_capacity_limit | bool | :x: | Обновление предела емкости, используется при редактировании sep |
| decommission | bool | :x: | Отвязывание всех зависимостей от sep (отвязывание nodes)<br/>Используется вместе с параметром clear_physically |
| clear_physically | bool | :x: | Физическое очищение nodes |
| field_edit | Struct{<br/>field_name string<br/>field_value string<br/>field_type string<br/>} | :x: | Редактирование/добавление поля, используется при редактировании sep<br/>&nbsp;<br/>Наименование поля<br/>&nbsp;<br/>Значение поля<br/>&nbsp;<br/>Тип поля. Возможные значения: str, int, dict, list, bool<br/> &nbsp;<br/> Не использовать вместе с config |
| sep_id | int | :x: | Используется для формирования .tfstate, в случае его удаления и присутствия sep с указанным id в системе |
## Возвращаемые значения
В случае успешного выполнения _data source_ функция **decort_sep** возвращает в указанную при вызове переменную элемент, который состоит из следующих параметров:
| Параметр | Тип | Описание |
| ------------------ | -------------------------------------------------------------------------------- | ------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| sep_id | int | id storage endpoint |
| meta | []string | Мета информация о sep |
| consumed_by | []int | Список node id, использующих sep |
| desc | string | Описание sep |
| gid | int | Grid id, к которому привязан sep |
| guid | int | Внутренний id sep |
| milestones | int | Вехи |
| name | string | Наименование sep |
| obj_status | string | Статус sep |
| provided_by | []int | Список provider id, использующих sep |
| tech_status | string | Технический статус sep |
| type | string | Тип sep |
| config | json string | Конфигурация sep |
| upd_capacity_limit | bool | :x: | Обновление предела емкости, используется при редактировании sep |
| decommission | bool | :x: | Отвязывание всех зависимостей от sep (отвязывание nodes)<br/>Используется вместе с параметром clear_physically |
| clear_physically | bool | :x: | Физическое очищение nodes |
| enable | bool | :x: | Доступность sep, используется при создании и редактировании sep |
| field_edit | Struct{<br/>field_name string<br/>field_value string<br/>field_type string<br/>} | :x: | Редактирование/добавление поля, используется при редактировании sep<br/>&nbsp;<br/>Наименование поля<br/>&nbsp;<br/>Значение поля<br/>&nbsp;<br/>Тип поля. Возможные значения: str, int, dict, list, bool<br/> &nbsp;<br/> &nbsp; |
## Пример использования
Пример вызова _resource_ функции **decort_sep**:
```terraform
resource "decort_sep" "s" {
gid = 111
name = "test sep"
type = "des"
#desc = "description"
#config = file("./config.json")
#внимание, во избежание конфликтов не использовать с полем config
/*
field_edit {
field_name = "edgeuser_password"
field_value = "mosk"
field_type = "str"
}
*/
#enable = false
#consumed_by = [23,21]
#upd_capacity_limit = true
#provided_by = [16, 14, 15]
#decommission = true
#clear_physically = false
}
# once the above directive completes, sep will be accessible
# as decort_sep.s
# and config will be accessible
# as decort_sep.s.config
```
Данный пример подразумевает, что ранее по тексту tf-файла выполнена корректная инициализация провайдера (подробнее об инициализации Terraform провайдера DECORT см. соответствующий [раздел](https://github.com/rudecs/terraform-provider-decort/wiki/05.-%D0%98%D0%BD%D0%B8%D1%86%D0%B8%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F-Terraform-%D0%BF%D1%80%D0%BE%D0%B2%D0%B0%D0%B9%D0%B4%D0%B5%D1%80%D0%B0-DECORT.)).
После успешного завершения такого вызова **decort_sep** в переменной `decort_sep.s` будут сохранены возвращаемые значения.
Чтобы получить доступ к конфигурации и сохранить ее в файл .json, необходимо:
1. определить в .tf - файле дополнительный output с любым именем, в который запишется информация о конфигурации sep и обернуть ее в вызов функции jsondecode для декодирования информации.
```terraform
output "sep_config" {
value = jsondecode(decort_sep.s.config)
}
```
2. Применить изменения в терраформе.
```bash
terraform apply
```
3. Сохранить данные из output в .json - файл.
```bash
terraform output -json sep_config >> config.json
```
В общем случае это будет выглядеть как указано ниже.
```bash
terraform output -json <output-name> >> <file-name>.json
```
## Примеры возможных конфигураций для разных типов sep
Поля в разных версиях decort могут отличаться.
Конфигурация перед отправкой проходит валидацию.
### des
| Поле | Тип | Описание |
| ----------------- | -------- | --------------------------- |
| API_IPs | []string | Список ip адресов для api |
| protocol | string | Протокол сообщения с sep |
| decs3o_app_secret | string | Секретный ключ decs3o |
| format | string | Формат передачи данных |
| edgeuser_password | string | Пароль пользователя |
| edgeuser_name | string | Имя пользователя |
| decs3o_app_id | string | APP ID, полученный в decs3o |
| transport | string | Транспортный протокол |
```json
{
"API_IPs": ["11.111.1.11", "11.111.1.12", "11.111.1.13", "11.111.1.14"],
"protocol": "des",
"decs3o_app_secret": "",
"format": "raw",
"edgeuser_password": "somepassword",
"housekeeping_settings": {
"disk_del_queue": {
"purgatory_id": 1
}
},
"edgeuser_name": "someusername",
"decs3o_app_id": "",
"ovs_settings": {},
"pools": [
{
"types": ["D"],
"referenceId": "somerefid",
"name": "poolname2",
"pagecache_ratio": 100,
"uris": [
{
"ip": "11.111.1.11",
"port": 11
},
{
"ip": "11.111.1.12",
"port": 11
},
{
"ip": "11.111.1.13",
"port": 11
},
{
"ip": "11.111.1.14",
"port": 11
}
]
},
{
"types": ["D"],
"referenceId": "somerefid2",
"name": "poolname1",
"pagecache_ratio": 100,
"uris": [
{
"ip": "11.111.1.11",
"port": 12
},
{
"ip": "11.111.1.12",
"port": 12
},
{
"ip": "11.111.1.13",
"port": 12
},
{
"ip": "11.111.1.14",
"port": 12
}
]
},
{
"types": ["B"],
"referenceId": "somerefid3",
"name": "myname",
"pagecache_ratio": 100,
"uris": [
{
"ip": "11.111.1.11",
"port": 13
},
{
"ip": "11.111.1.12",
"port": 13
},
{
"ip": "11.111.1.13",
"port": 13
},
{
"ip": "11.111.1.14",
"port": 13
}
]
}
],
"transport": "tcp"
}
```
### hitachi
| Поле | Тип | Описание |
| ------------- | -------- | ------------------------- |
| API_URLs | []string | Список адресов для api |
| SN | string | Серийный номер |
| format | string | Формат передачи данных |
| disk_max_size | int | Максимальный размер диска |
| mgmt_password | string | Пароль пользователя |
| mgmt_user | string | Имя пользователя |
| model | string | Модель |
| name_prefix | string | Префикс в имени |
| protocol | string | Протокол сообщения |
| ssl_verify | bool | Проверка ssl |
```json
{
"API_URLs": ["https://11.11.111.11:11", "https://11.11.111.12:11"],
"SN": 1111,
"disk_max_size": 111,
"format": "raw",
"hostGroupNumMax": 1,
"hostGroupNumMin": 1,
"hostGroupNumber": 1,
"housekeeping_settings": {
"disk_del_queue": {
"purge_attempts_threshold": 20
}
},
"mgmt_password": "pwd",
"mgmt_user": "username",
"model": "model",
"name_prefix": "my-prefix-",
"pools": [
{
"clone_technology": "snapshot",
"id": 1,
"maxLdevId": 1111,
"minLdevId": 111,
"name": "my-prefix-01",
"snapshot_pool_id": 1,
"snapshotable": true,
"types": ["D", "B", "ANY"],
"usage_limit": 999999999
},
{
"clone_technology": "snapshot",
"id": 2,
"maxLdevId": 1111,
"minLdevId": 111,
"name": "my-prefix-92-snap",
"snapshot_pool_id": 1,
"snapshotable": true,
"types": [],
"usage_limit": 111
}
],
"ports": ["port-name-1", "port-name-2"],
"protocol": "scsi",
"ssl_verify": false
}
```
### dorado
| Поле | Тип | Описание |
| ----------------- | -------- | ------------------------- |
| API_URLs | []string | Список адресов для api |
| edgeuser_password | string | Пароль пользователя |
| edgeuser_name | string | Имя пользователя |
| format | string | Формат передачи данных |
| disk_max_size | int | Максимальный размер диска |
| mgmt_password | string | Пароль пользователя |
| mgmt_user | string | Имя пользователя |
| model | string | Модель |
| name_prefix | string | Префикс в имени |
| protocol | string | Протокол сообщения |
```json
{
"API_URLs": ["https://111.11.111.111:11/"],
"disk_max_size": 111,
"edgeuser_name": "username",
"edgeuser_password": "pwd",
"format": "raw",
"groups": {
"hostgroup": ["hostname", "1"],
"lungroup": ["hostname_lungroup", "2"],
"portgroup": ["hostname_portgroup", "3"]
},
"hostGroupName": "hostname",
"housekeeping_settings": {
"disk_del_queue": {
"purge_attempts_threshold": 20
}
},
"mgmt_password": "pwd2",
"mgmt_user": "username2",
"model": "Dorado",
"name_prefix": "my-prefix-",
"pools": [
{
"name": "pool1",
"types": ["D", "B", "ANY"],
"usage_limit": 111111
}
],
"ports": [
{
"ip": "11.111.1.111",
"name": "port1"
},
{
"ip": "11.111.1.112",
"name": "port2"
},
{
"ip": "11.111.1.113",
"name": "myport3"
}
],
"protocol": "iscsi"
}
```
### tatlin
| Поле | Тип | Описание |
| ----------------- | -------- | ------------------------- |
| API_URLs | []string | Список адресов для api |
| edgeuser_password | string | Пароль пользователя |
| edgeuser_name | string | Имя пользователя |
| format | string | Формат передачи данных |
| disk_max_size | int | Максимальный размер диска |
| mgmt_password | string | Пароль пользователя |
| mgmt_user | string | Имя пользователя |
| model | string | Модель |
| name_prefix | string | Префикс в имени |
| protocol | string | Протокол сообщения |
```json
{
"API_URLs": ["ssh://111.11.11.11:43"],
"disk_max_size": 1111,
"edgeuser_name": "usrname",
"edgeuser_password": "pwd",
"format": "raw",
"hostGroupName": "mygroupname",
"housekeeping_settings": {
"disk_del_queue": {
"purge_attempts_threshold": 20
}
},
"mgmt_password": "pwd2",
"mgmt_user": "usrname",
"model": "Tatlin",
"name_prefix": "my-prefix-",
"pools": [
{
"name": "pool-name",
"types": ["D", "B"],
"usage_limit": 11111
}
],
"ports": [
{
"ips": ["111.11.111.113", "111.11.111.114"],
"iqn": "some_iqn_string",
"name": "myportname"
},
{
"ips": ["111.11.111.113", "111.11.111.114"],
"iqn": "myiqnstring",
"name": "myportname"
}
],
"protocol": "iscsi",
"techDisk": {
"name": "mydiskname",
"pool": "pool-name",
"size": 1,
"wwid": "wwidstring"
}
}
```

@@ -0,0 +1,104 @@
Функция доступна в провайдере версии 2.0 и выше.
_Resource_ функция **decort_cdrom_image** служит для управления cdrom - образом.
## Аргументы
_Resource_ функция **decort_cdrom_image** для создания cdrom - образа принимает следующие аргументы:
| Аргумент | Тип | Обязательный | Описание |
| -------------- | -------- | ------------------ | --------------------------------------------------------------------------------------------------------------------------------------- |
| name | string | :heavy_check_mark: | Имя образа<br/>При изменении - изменяет название образа |
| url | string | :heavy_check_mark: | Адрес образа |
| gid | int | :heavy_check_mark: | Grid id образа |
| drivers | []string | :heavy_check_mark: | Драйвера,<br/>возможные варианты - ["KVM_X86", "SVA_KVM_X86"], ["KVM_X86"], ["SVA_KVM_X86"] |
| account_id | int | :x: | ID аккаунта владельца образа,<br/>может быть использован как при создании, так и редактировании образа |
| username | string | :x: | Имя пользователя,<br/>может быть использован как при создании, так и редактировании образа |
| password | string | :x: | Пароль пользователя,<br/>может быть использован как при создании, так и редактировании образа |
| username_dl | string | :x: | Имя пользователя для загрузки бинарных данных,<br/>может быть использован как при создании, так и редактировании образа |
| password_dl | string | :x: | Пароль пользователя для загрузки бинарных данных,<br/>может быть использован как при создании, так и редактировании образа |
| sep_id | int | :x: | ID storage endpoint |
| pool_name | string | :x: | Пул для создания образа |
| architecture | string | :x: | Используется при создании, <br/>архитектура системы образа<br/>доступные значения: "X86_64"<br/>по-умолчанию "X86_64" |
| enabled | bool | :x: | Доступность образа,<br/>используется при редактировании ресурса |
| shared_with | []int | :x: | Настройка доступа образа аккаунтам<br/>используется на уже созданном ресурсе,<br/>пустой маасив - удаление всех доступов, если они были |
| computeci_id | int | :x: | Установка computeci,<br/>используется на уже созданном ресурсе,<br/>чтобы сбросить, необходимо передать 0 |
| enabled_stacks | []string | :x: | Доступные стаки,<br/>используется на уже созданном ресурсе<br/>для удаления всех доступных стаков, необходимо передать пустой массив |
| permanently | bool | :x: | Мгновенное удаление<br/>можно использовать перед удалением |
## Возвращаемые значения
В случае успешного выполнения _resource_ функция **decort_cdrom_image** возвращает в указанную при вызове переменную следующие значения:
| Параметр | Тип | Описание |
| -------------- | ------------------------------------------ | -------------------------------------------------------- |
| account_id | int | accountId привязки образа |
| architecture | string | Архитектура образа, возможен вариант X86_64 или PPC64_LE |
| computeci_id | int | ID вычислительного ресурса |
| desc | string | Описание образа |
| drivers | []string | Список используемых драйверов |
| enabled | bool | Доступность образа |
| gid | int | ID платформы, где образ будет создан |
| guid | int | Внутренний id образа, совпадает с image_id |
| history | object{id: int, guid: int, timestamp: int} | История обновлений образа |
| hot_resize | bool | Использует ли машина горячее изменение размера образа |
| image_type | string | Тип образа: linux, windows или другой |
| last_modified | int | Дата последнего изменения |
| link_to | int | Привязка к образу, используется в виртуальных образах |
| meta | []string | Мета информация об образе |
| milestones | int | Вехи |
| name | string | Название образа |
| password | string | Пароль для образа |
| password_dl | string | Пароль для загрузки двоичных файлов |
| permanently | bool | Удаление образа: мгновенное или нет |
| pool_name | string | Пул, в котором был создан образ |
| provider_name | string | Наименование провайдера |
| purge_attempts | int | Попытки |
| reference_id | string | ID ссылки |
| res_id | string | ID ресурса |
| res_name | string | Наименование ресурса |
| rescuecd | bool | CD или нет |
| sep_id | int | storage endpoint provider ID |
| size | int | Размер образа |
| status | string | Статус образа |
| tech_status | string | Технический статус |
| unc_path | string | unc path |
| url | string | Адрес, которого осуществлялась загрузка образа |
| username | string | Имя пользователя образа |
| username_dl | string | Имя пользователя для загрузки двоичных файлов |
| version | string | Версия |
## Пример использования
Пример вызова _resource_ функции **decort_cdrom_image**:
```terraform
resource "decort_cdrom_image" "my_image" {
name = "test_image_rename"
url = <IMAGE_URL>
gid = 212
drivers = ["KVM_X86", "SVA_KVM_X86"]
#account_id = 57252
#username = "Valera"
#password = "123"
#username_dl = "Valera1"
#password_dl = "1231"
#sep_id = 1206
#pool_name = "vmstor"
#architecture = "X86_64"
#enabled = true
#shared_with = [28096, 57121]
#computeci_id = 1
#enabled_stacks = ["9"]
#permanently = true
}
# once the above directive completes, cdrom image will be accessible
# as decort_cdrom_image.my_image
```
Данный пример подразумевает, что ранее по тексту tf-файла выполнена корректная инициализация провайдера (подробнее об инициализации Terraform провайдера DECORT см. соответствующий [раздел](https://github.com/rudecs/terraform-provider-decort/wiki/05.-%D0%98%D0%BD%D0%B8%D1%86%D0%B8%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F-Terraform-%D0%BF%D1%80%D0%BE%D0%B2%D0%B0%D0%B9%D0%B4%D0%B5%D1%80%D0%B0-DECORT.)).
После успешного завершения такого вызова **decort_cdrom_image** в переменной `decort_cdrom_image.my_image` будут сохранены возвращаемые значения.

@@ -1,34 +1,39 @@
Функция доступна в провайдере версии 2.0 и выше.
**Внимание:** необходимы права администратора.
_Resource_ функция **decort_delete_images** служит для удаления нескольких образов. _Resource_ является чисто служебным и ничего не создает, не изменяет.
Для того, чтобы удалить образы, необходимо:
1. Создать .tf - файл и добавить в него данные.
2. Ввести команды в консоли:
```bash
terraform init
terraform apply
terraform destroy
```
3. После введения последней команды, образы удалятся из системы.
Если имеется необходимо повторить удаление, но с другими данными, рекомендуется удалить файл состояния terraform - .tfstate, .tfstate.backup.
После этого, рекомендуется повторить все с первого этапа.
## Аргументы
_Resource_ функция **decort_delete_images** для создания образа принимает следующие аргументы:
| Аргумент | Тип | Обязательный | Описание |
| --- | --- | --- | --- |
| ----------- | ------ | ------------------ | ------------------------------------------------ |
| images_ids | []int | :heavy_check_mark: | Массив, содержащий набор id образов для удаления |
| reason | string | :heavy_check_mark: | Причина удаления |
| permanently | bool | :x: | Параметр удаления<br/>по-умолчанию - false |
## Возвращаемые значения
Отсутствуют
## Пример использования
Пример вызова _resource_ функции **decort_delete_images**:
```terraform
resource "decort_delete_images" "my_images" {
image_ids = [1111]

@@ -0,0 +1,184 @@
Функция доступна в провайдере версии 2.3 и выше.
_Resource_ функция **decort_account** служит для управления аккаунтами. Аккаунты в платформе позволяют создавать ресурсные группы, вычислительные мощности (computes), виртуальные сети, управлять ресурсами и так далее. Аккаунты создают пользователи (user). Все административное взаимодействие внутри платформы строится на аккаунтах.
## Аргументы
_Resource_ функция **decort_account** принимает следующие аргументы:
| Аргумент | Тип | Обязательный | Описание |
| --- | --- | :---: | --- |
| account_name | string | :heavy_check_mark: | Имя аккаунта<br/>Используется при создании и редактировании |
| username | string | :heavy_check_mark: | Имя пользователя - владельца аккаунта<br/>Используется при создании |
| emailaddress | string | :x: | Адрес электронной почты<br/>Используется при создании |
| send_access_emails | bool | :x: | Флаг отправки электронного письма<br/>Используется при создании и редактировании<br/>По-умолчанию: true |
| resource_limits | Struct{<br/>cu_c float<br/>cu_d float<br/>cu_i float<br/>cu_m float<br/>cu_np float<br/>gpu_units float<br/>}<br/>&nbsp;<br/>&nbsp;<br/>&nbsp;<br/> | :x: | Ресурсы аккаунта<br/>Кол-во ядер<br/>Размер диска, ГБ<br/>Кол-во публичных ip-адресов<br/>Размер RAM, МБ<br/>Кол-во переданных данных, в ГБ<br/>Кол-во графических процессоров<br/>&nbsp;<br/>Используется при создании и редактировании аккаунта<br/>По-умолчанию, все ресурсы выставлены в -1, что обозначает их использование без ограничений.<br/>Значение 0 недопустимо. Должен быть использован хотя бы минимальные экземпляр ресурса. |
| enable | bool | :x: | Флаг доступности аккаунта<br/>Используется при редактировании |
| restore | bool | :x: | Флаг восстановления аккаунта<br/>Используется при редактировании |
| users | []Struct{<br/>user_id string<br/>access_type string<br/>recursive_delete bool<br/> } | :x: | Добавление/удаление пользователей в аккаунт<br/>ID пользователя(его имя)<br/>Тип доступа пользователя. R - чтение, RCX - запись, ARCXDU - админ<br/>Флаг рекурсивного удаления пользователя<br/>&nbsp;<br/> |
| permanently | bool | :x: | Флаг удаления аккаунта<br/>Если выставлен в true, то аккаунт и все с ним связанное удаляется моментально<br/>Если false - то аккаунт попадает в "корзину", где хранится некоторое время. Из "корзины" аккаунт можно восстановить<br/>По-умолчанию: false<br/>Используется при удалении |
| account_id | int | :x: | ID аккаунта, используется для формирования .tfstate, если аккаунт уже был создан в платформе<br/>Может использоваться при создании аккаунта |
## Возвращаемые значения
В случае успешного выполнения _resource_ функция **decort_account** возвращает в указанную при вызове переменную элемент, который состоит из следующих параметров:
| Параметр | Тип | Описание |
| --- | --- | --- |
| account_id | int | ID аккаунта |
| account_name | string | Название аккаунта |
| meta | []string | Мета информация |
| resources | Struct{<br/>current Struct{<br/>cpu int<br/>disksize int<br/>extips int<br/>exttraffic int<br/>gpu int<br/>ram int<br/>}<br/>reserved Struct{<br/>cpu int<br/>disksize int<br/>extips int<br/>exttraffic int<br/>gpu int<br/>ram int<br/>}<br/>} | Информация о ресурсах<br/>Задействованные<br/>Кол-вол ядер<br/>Размер диска, ГБ<br/>Кол-во внешних ip-адресов<br/>Размер внешнего траффика<br/>Кол-во графических ядер<br/>Размер RAM, MБ<br/><br/>Зарезервированные<br/>Кол-вол ядер<br/>Размер диска, ГБ<br/>Кол-во внешних ip-адресов<br/>Размер внешнего траффика<br/>Кол-во графических ядер<br/>Размер RAM, MБ<br/><br/>&nbsp;<br/> |
| acl | []Struct{<br/>can_be_deleted bool<br/>explicit bool<br/>guid string<br/>right string<br/>status string<br/>type string<br/>user_group_id string<br/>} | Более подробная информация об аккаунтах<br/>Может ли быть удален аккаунт<br/>Явно ли указан доступ<br/>guid аккаунта<br/>Права доступа<br/>Статус аккаунта<br/>Тип аккаунта<br/>Идентификатор пользователя-владельца аккаунта<br/>&nbsp;<br/> |
| company | string | Название компании, которой принадлежит аккаунт |
| companyurl | string | url-адрес компани |
| created_by | string | Пользователь - создателя аккаунта |
| created_time | int | Время создания аккаунта |
| deactivation_time | float | Время деактивации аккаунта |
| deleted_by | string | Пользователь, удаливший аккаунт |
| deleted_time | int | Время удаления аккаунта |
| displayname | string | Отображаемое имя аккаунта |
| guid | int | Внутренний guid аккаунта |
| resource_limits | Struct{<br/>cu_c float<br/>cu_d float<br/>cu_i float<br/>cu_m float<br/>cu_np float<br/>gpu_units float<br/>} | Ограничения ресурсов<br/>Кол-во ядер<br/>Размер диска, ГБ<br/>Число публичных ip адресов<br/>Размер RAM, МБ<br/>Объем трафика, ГБ<br/>Кол-вол графических ядер<br/>&nbsp;<br/> |
| send_access_emails | bool | Флаг, отправлять ли на указанную почту письмо о доступе |
| service_account | bool | Флаг, является ли аккаунт аккаунтом-обслуживания |
| status | string | Статус аккаунта |
| updated_time | int | Время последнего обновления |
| version | int | Версия аккаунта |
| vins | []int | Список id виртуальных сетей |
| vinses | []int | Список id виртуальных сетей |
| computes | Struct{<br/>started int<br/>stopped int <br/>} | Информация о вычислительных мощностях<br/>Кол-во запущенных<br/>Кол-во остановленных<br/>&nbsp;<br/> |
| machines | Struct{<br/>halted int<br/>running int <br/>} | Информация о виртуальных машинах (устаревшее)<br/>Кол-во запущенных<br/>Кол-во остановленных<br/>&nbsp;<br/> |
## Пример использования
Пример вызова _resource_ функции **decort_account**:
```terraform
resource "decort_account" "a" {
#имя аккаунта
#обязательный параметр
#тип - строка
#используется при создании и редактировании аккаунта
account_name = "new_my_account"
#имя пользователя - создателя аккаунта
#обязательный параметр
#тип - строка
username = "username@decs3o"
#доступность аккаунта
#необязательный параметр
#тип - булев тип
#может применяться при редактировании аккаунта
#enable = true
#id аккаунта, позволяет сформировать .tfstate, если аккаунт имеет в платформе
#необязательный параметр
#тип - число
#account_id = 11111
#электронная почта, на которую будет отправлена информация о доступе
#необязательный параметр
#тип - строка
#применяется при создании аккаунта
#emailaddress = "fff@fff.ff"
#отправлять ли на электронную почту письмо о доступе
#необязательный параметр
#тип - булев тип
#применяется при создании аккаунта и редактировании аккаунта
send_access_emails = true
#добавление/редактирование/удаление пользователей, к которым привязан аккаунт
#необязательный параметр
#тип - объект, кол-во таких объектов не ограничено
/*users {
#id пользователя
#обязательный параметр
#тип - строка
user_id = "username_2@decs3o"
#тип доступа пользователя
#обязательный параметр
#тип - строка
#возможные параметры:
#R - чтение
#RCX - запись
#ARCXDU - админ
access_type = "R"
#рекурсивное удаление пользователя из всех ресурсов аккаунтов
#необязательный параметр
#тип - булев тип
#по-умолчанию - false
#применяется при удалении пользователя из аккаунта
recursive_delete = true
}
users {
user_id = "username_1@decs3o"
access_type = "R"
}*/
#ограничение используемых ресурсов
#необязательный параметр
#тип - объект
#используется при создании и редактировании
/*
resource_limits {
#кол-во используемых ядер cpu
#необязательный параметр
#тип - число
#если установлена -1 - кол-во неограниченно
cu_c = 2
#кол-во используемой RAM в МБ
#необязательный параметр
#тип - число
#если установлена -1 - кол-во неограниченно
cu_m = 1024
#размер дисков, в ГБ
#необязательный параметр
#тип - число
#если установлена -1 - размер неограничен
cu_d = 23
#кол-во используемых публичных IP
#необязательный параметр
#тип - число
#если установлена -1 - кол-во неограниченно
cu_i = 2
#ограничения на кол-во передачи данных, в ГБ
#необязательный параметр
#тип - число
#если установлена -1 - кол-во неограиченно
cu_np = 2
#кол-во графических процессоров
#необязательный параметр
#тип - число
#если установлена -1 - кол-во неограиченно
gpu_units = 2
}
#восстановление аккаунта
#необязательный параметр
#тип - булев тип
#применяется к удаленным аккаунтам
#по-умолчанию - false
#restore = false
#мгновенное удаление аккаунта, если да - то аккаунт невозможно будет восстановить
#необязательный параметр
#тип - булев тип
#используется при удалении аккаунта
#по-умолчанию - false
#permanently = true
}
# once the above directive completes, account will be accessible
# as decort_account.a
```
Данный пример подразумевает, что ранее по тексту tf-файла выполнена корректная инициализация провайдера (подробнее об инициализации Terraform провайдера DECORT см. соответствующий [раздел](https://github.com/rudecs/terraform-provider-decort/wiki/05.-%D0%98%D0%BD%D0%B8%D1%86%D0%B8%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F-Terraform-%D0%BF%D1%80%D0%BE%D0%B2%D0%B0%D0%B9%D0%B4%D0%B5%D1%80%D0%B0-DECORT.)).
После успешного завершения такого вызова **decort_account** в переменной `decort_account.a` будут сохранены возвращаемые значения.

@@ -2,33 +2,29 @@
**Внимание:** необходимы права администратора.
_Resource_ функция **decort_cdrom_image** служит для управления cdrom - образом.
_Resource_ функция **decort_virtual_image** служит для управления виртуальным образом. Виртуальный образа создаются на основе уже созданных ранее образов, таким образом, они привязываются к уже созданным образам. Образ, на основе которого создан виртуальный диск, удалить невозможно - для этого необходимо удалить виртуальный образ, либо связать его с другим образом.
## Аргументы
_Resource_ функция **decort_cdrom_image** для создания cdrom - образа принимает следующие аргументы:
_Resource_ функция **decort_virtual_image** для создания виртуального образа принимает следующие аргументы:
| Аргумент | Тип | Обязательный | Описание |
| --- | --- | --- | --- |
| name | string | :heavy_check_mark: | Имя образа<br/>При изменении - изменяет название образа|
| url | string | :heavy_check_mark: | Адрес образа |
| gid | int | :heavy_check_mark: | Grid id образа |
| drivers | []string | :heavy_check_mark: | Драйвера,<br/>возможные варианты - ["KVM_X86", "SVA_KVM_X86"], ["KVM_X86"], ["SVA_KVM_X86"] |
| account_id | int | :x: | ID аккаунта владельца образа,<br/>может быть использован как при создании, так и редактировании образа |
| username | string | :x: | Имя пользователя,<br/>может быть использован как при создании, так и редактировании образа |
| password | string | :x: | Пароль пользователя,<br/>может быть использован как при создании, так и редактировании образа |
| username_dl | string | :x: | Имя пользователя для загрузки бинарных данных,<br/>может быть использован как при создании, так и редактировании образа |
| password_dl | string | :x: | Пароль пользователя для загрузки бинарных данных,<br/>может быть использован как при создании, так и редактировании образа |
| sep_id | int | :x: |ID storage endpoint |
| pool_name | string | :x: | Пул для создания образа |
| architecture | string | :x: | Используется при создании, <br/>архитектура системы образа<br/>доступные значения: "X86_64"<br/>по-умолчанию "X86_64" |
| name | string | :heavy_check_mark: | Имя виртуального образа |
| target_id | int | :heavy_check_mark: | ID образа, на основе котрого будет создан виртуальный |
| link_to | int | :x: | Используется при редактировании ресурса<br/>изменение связи виртуального образа |
| account_id | int | :x: | ID аккаунта владельца образа<br/>может быть использован при редактировании образа|
| username | string | :x: | Имя пользователя,<br/>может быть использован при редактировании образа |
| password | string | :x: | Пароль пользователя,<br/>может быть использован при редактировании образа |
| enabled | bool | :x: | Доступность образа,<br/>используется при редактировании ресурса |
| shared_with | []int | :x: | Настройка доступа образа аккаунтам<br/>используется на уже созданном ресурсе,<br/>пустой маасив - удаление всех доступов, если они были |
| computeci_id | int | :x: | Установка computeci,<br/>используется на уже созданном ресурсе,<br/>чтобы сбросить, необходимо передать 0 |
| enabled_stacks | []string | :x: | Доступные стаки,<br/>используется на уже созданном ресурсе<br/>для удаления всех доступных стаков, необходимо передать пустой массив |
| permanently | bool | :x: | Мгновенное удаление<br/>можно использовать перед удалением |
| reason | string | :x: | Причина удаления<br/>можно использовать перед удалением |
## Возвращаемые значения
В случае успешного выполнения _resource_ функция **decort_cdrom_image** возвращает в указанную при вызове переменную следующие значения:
В случае успешного выполнения _resource_ функция **decort_virtual_image** возвращает в указанную при вызове переменную следующие значения:
| Параметр | Тип | Описание |
| --- | --- | --- |
@@ -36,7 +32,7 @@ _Resource_ функция **decort_cdrom_image** для создания cdrom -
| architecture | string | Архитектура образа, возможен вариант X86_64 или PPC64_LE |
| computeci_id | int | ID вычислительного ресурса |
| desc | string | Описание образа |
| drivers | []string | Список используемых драйверов |
| drivers | []string | Cписок используемых драйверов |
| enabled | bool | Доступность образа |
| gid | int | ID платформы, где образ будет создан |
| guid | int | Внутренний id образа, совпадает с image_id |
@@ -49,7 +45,6 @@ _Resource_ функция **decort_cdrom_image** для создания cdrom -
| milestones | int | Вехи |
| name | string | Название образа |
| password | string | Пароль для образа |
| password_dl | string | Пароль для загрузки двоичных файлов |
| permanently | bool | Удаление образа: мгновенное или нет |
| pool_name | string | Пул, в котором был создан образ |
| provider_name | string | Наименование провайдера |
@@ -57,7 +52,6 @@ _Resource_ функция **decort_cdrom_image** для создания cdrom -
| reference_id | string | ID ссылки |
| res_id | string | ID ресурса |
| res_name | string | Наименование ресурса |
| rescuecd | bool | CD или нет |
| sep_id | int | storage endpoint provider ID |
| size | int | Размер образа |
| status | string | Статус образа |
@@ -65,40 +59,33 @@ _Resource_ функция **decort_cdrom_image** для создания cdrom -
| unc_path | string | unc path |
| url | string | Адрес, которого осуществлялась загрузка образа |
| username | string | Имя пользователя образа |
| username_dl | string | Имя пользователя для загрузки двоичных файлов |
| version | string | Версия |
## Пример использования
Пример вызова _resource_ функции **decort_cdrom_image**:
Пример вызова _resource_ функции **decort_virtual_image**:
```terraform
resource "decort_cdrom_image" "my_image" {
name = "test_image_rename"
url = <IMAGE_URL>
gid = 212
drivers = ["KVM_X86", "SVA_KVM_X86"]
#account_id = 57252
resource "decort_virtual_image" "my_image" {
name = "test_vi_im_new_rename"
target_id = 2222
#link_to = 3333
#account_id = 78765
#username = "Valera"
#password = "123"
#username_dl = "Valera1"
#password_dl = "1231"
#sep_id = 1206
#pool_name = "vmstor"
#architecture = "X86_64"
#enabled = true
#shared_with = [28096, 57121]
#enabled = false
#shared_with = [111222, 222333]
#computeci_id = 1
#enabled_stacks = ["9"]
#permanently = true
#reason = "test"
}
# once the above directive completes, cdrom image will be accessible
# as decort_cdrom_image.my_image
# once the above directive completes, will be accessible
# as decort_virtual_image.my_image
```
Данный пример подразумевает, что ранее по тексту tf-файла выполнена корректная инициализация провайдера (подробнее об инициализации Terraform провайдера DECORT см. соответствующий [раздел](https://github.com/rudecs/terraform-provider-decort/wiki/05.-%D0%98%D0%BD%D0%B8%D1%86%D0%B8%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F-Terraform-%D0%BF%D1%80%D0%BE%D0%B2%D0%B0%D0%B9%D0%B4%D0%B5%D1%80%D0%B0-DECORT.)).
После успешного завершения такого вызова **decort_cdrom_image** в переменной `decort_cdrom_image.my_image` будут сохранены возвращаемые значения.
После успешного завершения такого вызова **decort_virtual_image** в переменной `decort_virtual_image.my_image` будут сохранены возвращаемые значения.

@@ -0,0 +1,113 @@
Функция доступна в провайдере версии 2.0 и выше.
_Resource_ функция **decort_image** служит для управления образом.
## Аргументы
_Resource_ функция **decort_image** для создания образа принимает следующие аргументы:
| Аргумент | Тип | Обязательный | Описание |
| -------------- | -------- | ------------------ | --------------------------------------------------------------------------------------------------------------------------------------- |
| name | string | :heavy_check_mark: | Имя образа<br/>При изменении - изменяет название образа |
| url | string | :heavy_check_mark: | Адрес образа |
| gid | int | :heavy_check_mark: | Grid id образа |
| boot_type | string | :heavy_check_mark: | Тип загрузки образа,<br/>возможные варианты: "bios" или "uefi" |
| image_type | string | :heavy_check_mark: | Тип образа,<br />возможные варианты - "linux", "windows" |
| drivers | []string | :heavy_check_mark: | Драйвера,<br/>возможные варианты - ["KVM_X86", "SVA_KVM_X86"], ["KVM_X86"], ["SVA_KVM_X86"] |
| account_id | int | :x: | ID аккаунта владельца образа,<br/>может быть использован как при создании, так и редактировании образа |
| username | string | :x: | Имя пользователя,<br/>может быть использован как при создании, так и редактировании образа |
| password | string | :x: | Пароль пользователя,<br/>может быть использован как при создании, так и редактировании образа |
| username_dl | string | :x: | Имя пользователя для загрузки бинарных данных,<br/>может быть использован как при создании, так и редактировании образа |
| password_dl | string | :x: | Пароль пользователя для загрузки бинарных данных,<br/>может быть использован как при создании, так и редактировании образа |
| sync | bool | :x: | Синхронное создание образа, используется при создании |
| sep_id | int | :x: | ID storage endpoint |
| pool_name | string | :x: | Пул для создания образа |
| architecture | string | :x: | Используется при создании, <br/>архитектура системы образа<br/>доступные значения: "X86_64"<br/>по-умолчанию "X86_64" |
| enabled | bool | :x: | Доступность образа,<br/>используется при редактировании ресурса |
| shared_with | []int | :x: | Настройка доступа образа аккаунтам<br/>используется на уже созданном ресурсе,<br/>пустой маасив - удаление всех доступов, если они были |
| computeci_id | int | :x: | Установка computeci,<br/>используется на уже созданном ресурсе,<br/>чтобы сбросить, необходимо передать 0 |
| enabled_stacks | []string | :x: | Доступные стаки,<br/>используется на уже созданном ресурсе<br/>для удаления всех доступных стаков, необходимо передать пустой массив |
| permanently | bool | :x: | Мгновенное удаление<br/>можно использовать перед удалением |
| reason | string | :x: | Причина удаления<br/>можно использовать перед удалением |
## Возвращаемые значения
В случае успешного выполнения _resource_ функция **decort_image** возвращает в указанную при вызове переменную следующие значения:
| Параметр | Тип | Описание |
| -------------- | ------------------------------------------ | -------------------------------------------------------- |
| account_id | int | accountId привязки образа |
| architecture | string | Архитектура образа, возможен вариант X86_64 или PPC64_LE |
| boot_type | string | Тип запуска ОС - bios или uefi |
| bootable | bool | Является ли образ загрузочным |
| computeci_id | int | ID вычислительного ресурса |
| desc | string | Описание образа |
| drivers | []string | Список используемых драйверов |
| enabled | bool | Доступность образа |
| gid | int | ID платформы, где образ будет создан |
| guid | int | Внутренний id образа, совпадает с image_id |
| history | object{id: int, guid: int, timestamp: int} | История обновлений образа |
| hot_resize | bool | Использует ли машина горячее изменение размера образа |
| image_type | string | Тип образа: linux, windows или другой |
| last_modified | int | Дата последнего изменения |
| link_to | int | Привязка к образу, используется в виртуальных образах |
| meta | []string | Мета информация об образе |
| milestones | int | Вехи |
| name | string | Название образа |
| password | string | Пароль для образа |
| password_dl | string | Пароль для загрузки двоичных файлов |
| permanently | bool | Удаление образа: мгновенное или нет |
| pool_name | string | Пул, в котором был создан образ |
| provider_name | string | Наименование провайдера |
| purge_attempts | int | Попытки |
| reference_id | string | ID ссылки |
| res_id | string | ID ресурса |
| res_name | string | Наименование ресурса |
| rescuecd | bool | cd или нет |
| sep_id | int | storage endpoint provider ID |
| size | int | Размер образа |
| status | string | Статус образа |
| tech_status | string | Технический статус |
| unc_path | string | unc path |
| url | string | Адрес, которого осуществлялась загрузка образа |
| username | string | Имя пользователя образа |
| username_dl | string | Имя пользователя для загрузки двоичных файлов |
| version | string | Версия |
## Пример использования
Пример вызова _resource_ функции **decort_image**:
```terraform
resource "decort_image" "my_image" {
name = "test_image_rename"
url = <IMAGE_URL>
gid = 212
boot_type = "bios"
image_type = "linux"
drivers = ["KVM_X86", "SVA_KVM_X86"]
#account_id = 5725
#username = "Valera"
#password = "123"
#username_dl = "Valera1"
#password_dl = "1231"
#sep_id = 1206
#pool_name = "vmstor"
#architecture = "X86_64"
#enabled = true
#shared_with = [28096, 57121]
#computeci_id = 1
#enabled_stacks = ["9"]
#permanently = true
#reason = "test"
}
# once the above directive completes, will be accessible
# as decort_image.my_image
```
Данный пример подразумевает, что ранее по тексту tf-файла выполнена корректная инициализация провайдера (подробнее об инициализации Terraform провайдера DECORT см. соответствующий [раздел](https://github.com/rudecs/terraform-provider-decort/wiki/05.-%D0%98%D0%BD%D0%B8%D1%86%D0%B8%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F-Terraform-%D0%BF%D1%80%D0%BE%D0%B2%D0%B0%D0%B9%D0%B4%D0%B5%D1%80%D0%B0-DECORT.)).
После успешного завершения такого вызова **decort_image** в переменной `decort_image.my_image` будут сохранены возвращаемые значения.

@@ -0,0 +1,45 @@
Функция доступна в провайдере версии 2.0 и выше.
_Resource_ функция **decort_k8s_wg** служит для управления worker groups (рабочики группами, wg) кластера.
## Аргументы
_Resource_ функция **decort_k8s_wg** для создания worker group принимает следующие аргументы:
| Аргумент | Тип | Обязательный | Описание |
| --- | --- | --- | --- |
| k8s_id | int | :heavy_check_mark: | ID экземпляра k8s |
| name | string | :heavy_check_mark: | Наименование worker group |
| num | int | :x: | Количество worker node для создания |
| cpu | int | :x: | Количество cpu для 1 worker node<br/>по - умолчанию - 1|
| ram | int | :x: | Количество RAM для одной worker node в Мбайтах, <br/>по-умолчанию - 1024|
| disk | int | :x: | Размер загрузочного диска для worker node, в Гбайтах<br/>по - умолчанию - 0<br/>если установлен параметр 0, то размер диска будет равен размеру образа |
## Возвращаемые значения
В случае успешного выполнения _resource_ функция **decort_k8s_wg** возвращает в указанную при вызове переменную следующие значения:
| Параметр | Тип | Описание |
| --- | --- | --- |
| k8s_id | int | ID экземпляра k8s |
| name | string | Наименование worker group |
| num | int | Количество worker node для создания |
| cpu | int | Количество cpu для 1 worker node |
| ram | int | Количество RAM для одной worker node в Мбайтах |
| disk | int | Размер загрузочного диска для worker node, в Гбайтах |
## Пример использования
Пример вызова _resource_ функции **decort_k8s_wg**:
```terraform
resource "decort_k8s_wg" "wg" {
k8s_id = 1234 //это значение должно быть результатом вызова decort_k8s.cluster.id
name = "workers-2"
num = 2
cpu = 1
ram = 1024
disk = 10
}
# once the above directive completes, will be accessible
# as decort_k8s_wg.wg
```
Данный пример подразумевает, что ранее по тексту tf-файла выполнена корректная инициализация провайдера (подробнее об инициализации Terraform провайдера DECORT см. соответствующий [раздел](https://github.com/rudecs/terraform-provider-decort/wiki/05.-%D0%98%D0%BD%D0%B8%D1%86%D0%B8%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F-Terraform-%D0%BF%D1%80%D0%BE%D0%B2%D0%B0%D0%B9%D0%B4%D0%B5%D1%80%D0%B0-DECORT.)).

@@ -0,0 +1,69 @@
Функция доступна в провайдере версии 2.0 и выше.
_Resource_ функция **decort_k8s** служит для управления кластером.
## Аргументы
_Resource_ функция **decort_k8s** для создания кластера принимает следующие аргументы:
| Аргумент | Тип | Обязательный | Описание |
| --- | --- | --- | --- |
| name | string | :heavy_check_mark: | Наименование кластера, <br/>при изменении - изменяет наименование кластера |
| rg_id | int | :heavy_check_mark: | ID ресурсной группы |
| k8sci_id | int | :heavy_check_mark: | ID catalogue item |
| wg_name | string | :heavy_check_mark: | Имя для первой worker group, <br/> созданной в кластере |
| masters | object{<br/>num: int, <br/>cpu: int,<br/>ram: int,<br/>disk: int} | :x: | Настройка мастер node или nodes<br/>Обязательный параметр, кол-во nodes<br/>Обязательный параметр, количество cpu<br/>Обязательный параметр, кол-во RAM в Mбайтах<br/>Обязательный параметр, размер диска в Гбайтах |
| workers | object{<br/>num: int, <br/>cpu: int,<br/>ram: int,<br/>disk: int} | :x: | Настройка worker node или nodes<br/>Обязательный параметр, кол-во nodes<br/>Обязательный параметр, количество cpu<br/>Обязательный параметр, кол-во RAM в Mбайтах<br/>Обязательный параметр, размер диска в Гбайтах |
| extnet_id | int | :x: | ID внешней сети для соединения workers.<br/>Если не задано,<br/>то сеть будет выбрана платформой. |
## Возвращаемые значения
В случае успешного выполнения _resource_ функция **decort_k8s** возвращает в указанную при вызове переменную следующие значения:
| Параметр | Тип | Описание |
| --- | --- | --- |
| default_wg_id | int | ID рабочей группы (worker group) для этого экземпляра кластера. |
| kubeconfig | string | Kubeconfig для доступа к кластеру. |
| lb_ip | string | IP адрес балансировщика нагрузки (load balancer) по-умолчанию. |
| name | string | Наименование кластера |
| rg_id | int | ID ресурсной группы |
| k8sci_id | int | ID catalogue item |
| wg_name | string | Имя для первой worker group, <br/> созданной в кластере |
| masters | object{<br/>num: int, <br/>cpu: int,<br/>ram: int,<br/>disk: int} | Настройка мастер node или nodes<br/>Кол-во nodes<br/>Количество cpu<br/>Кол-во RAM в Mбайтах<br/>Размер диска в Гбайтах |
| workers | object{<br/>num: int, <br/>cpu: int,<br/>ram: int,<br/>disk: int} | Настройка worker node или nodes<br/>Кол-во nodes<br/>Количество cpu<br/>Кол-во RAM в Mбайтах<br/>Размер диска в Гбайтах |
| extnet_id | int | ID внешней сети для соединения workers |
## Пример использования
Пример вызова _resource_ функции **decort_k8s**:
```terraform
resource "decort_k8s" "cluster" {
name = "tftest"
rg_id = 123
k8sci_id = 9
wg_name = "workers"
#extnet_id = 11111
/*
masters {
num = 1
cpu = 2
ram = 2048
disk = 10
}
*/
/*
workers {
num = 1
cpu = 2
ram = 2048
disk = 10
}
*/
}
# once the above directive completes, will be accessible
# as decort_k8s.cluster
```
Данный пример подразумевает, что ранее по тексту tf-файла выполнена корректная инициализация провайдера (подробнее об инициализации Terraform провайдера DECORT см. соответствующий [раздел](https://github.com/rudecs/terraform-provider-decort/wiki/05.-%D0%98%D0%BD%D0%B8%D1%86%D0%B8%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F-Terraform-%D0%BF%D1%80%D0%BE%D0%B2%D0%B0%D0%B9%D0%B4%D0%B5%D1%80%D0%B0-DECORT.)).
После успешного завершения такого вызова **decort_k8s** в переменной `decort_k8s` будут сохранены возвращаемые значения.

@@ -0,0 +1,81 @@
_Resource_ функция **decort_kvmvm** служит для управления виртуальными машинами, создаваемыми в платформе DECORT на базе технологии виртуализации KVM.
## Аргументы
_Resource_ функция **decort_kvmvm** принимает следующие аргументы:
| Аргумент | Тип | Обязательный | Описание |
| --- | --- | --- | --- |
| driver | string | :heavy_check_mark: | Аппаратная архитектура виртуальной машины.<br/>Может принимать одно из следующих значений:<br/> * "KVM_X86" - виртуальная машина KVM на аппаратной платформе x86.<br/> * "KVM_PPC" - виртуальная машина KVM на аппаратной платформе IBM Power. |
| cpu | int | :heavy_check_mark: | Количество процессоров. |
| name | string | :heavy_check_mark: | Имя виртуальной машины. Обратите внимание, что имя должно быть уникальным в рамках ресурсной группы. |
| rg_id | int | :heavy_check_mark: | Идентификатор ресурсной группы, которой принадлежит данная виртуальная машина. |
| ram | int | :heavy_check_mark: | Объём оперативной памяти в МБ.<br/> |
| image_id | int | :heavy_check_mark: | Идентификатор образа, на базе которого создаётся загрузочный диск виртуальной машины.<br/> |
| boot_disk_size | int | :heavy_check_mark: | Размер загрузочного диска виртуальной машины в ГБ. |
| extra_disks | []int | :x: | Список идентификаторов дополнительных дисков, которые требуется подключить к данной виртуальной машине помимо загрузочного диска. |
| cloud_init | string | :x: | Используется на этапе создания вм.<br/>Параметры для утилиты _cloud_init_, которая используется в платформе DECORT для первичного конфигурирования виртуальной машины после её создания. |
| network | dict | :x: | Параметры сетевого подключения. Структура словаря:<br/> * (string) `net_type` - тип сети, соответствующей данному подключению. "EXTNET" в случае прямого подключения во внешнюю сеть, "VINS" в случае подключения к Virtual Network Segment.<br/>* (int) `net_id` - идентификатор соответствующего сетевого сегмента: внешней сети в случае `net_type = "EXTNET"` и ViNS в случае `net_type = "VINS"`<br/>* (string) `ip_address` - IP адрес, выделенный данному подключению.<br/>* (string) `mac` - MAC адрес, назначенный соответствующему сетевому интерфейсу виртуальной машины.<br/>Если нужно сконфигурировать несколько сетевых подключений, данный блок можно задавать многократно - по одному на каждое подключение. |
| description | string | :x: | Текстовое описание виртуальной машины. |
| started | bool | :x: | Флаг запуска машины,<br/>по-умолчанию - true.<br/>Если true - машина включена,<br/>если false - выключена. |
## Возвращаемые значения
В случае успешного выполнения _resource_ функция **decort_kvmvm** возвращает в указанную при вызове переменную следующие значения:
| Параметр | Тип | Описание |
| --- | --- | --- |
| account_id | int | Уникальный идентификатор подписчика-владельца ("account") данной виртуальной машины. |
| account_name | string | Имя подписчика, которому принадлежит данная виртуальная машина. |
| driver | string | Аппаратная архитектура данной виртуальной машины. |
| boot_disk_id | int | Идентификатор загрузочного диска виртуальной машины. |
| boot_disk_size | int | Размер загрузочного диска в ГБ. |
| compute_id | int | Идентификатор экземпляра _compute_, соответствующего данной виртуальной машине. |
| cpu | int | Количество виртуальных CPU, выделенных данному серверу. |
| description | string | Текстовое описание виртуальной машины. |
| extra_disks | list of ints | Список идентификаторов дополнительных дисков, которые подключены к данной виртуальной машине помимо загрузочного диска. Если такие диски отсутствуют, то список будет пустым. |
| id | int | Уникальный идентификатор этой виртуальной машины в облачной платформе. Всегда совпадает с `compute_id`. |
| image_id | int | Идентификатор образа ОС, на базе которого создан загрузочный диск этой виртуальной машины. |
| image_name | string | Имя образа ОС, на базе которого создан загрузочный диск этой виртуальной машины. |
| name | string | Имя виртуального сервера.<br>Возвращаемое значение `name` совпадает со значением соответствующего аргумента, переданного при вызове функции. |
| network | list of dicts | Характеристики сетевых сегментов, к которым подключен данный сервер. Формат структуры:<br/>* (string) `net_type` - тип сети, соответствующей данному подключению. "EXTNET" в случае прямого подключения во внешнюю сеть, "VINS" в случае подключения к Virtual Network Segment.<br/>* (int) `net_id` - идентификатор соответствующего сетевого сегмента: внешней сети в случае `net_type = "EXTNET"` и ViNS в случае `net_type = "VINS"`<br/>* (string) `ip_address` - IP адрес, выделенный данному подключению.<br/>* (string) `mac` - MAC адрес, назначенный соответствующему сетевому интерфейсу виртуальной машины. |
| os_users | list of dicts | Имена и пароли пользователей гостевой ОС, установленные платформой при создании виртуального сервера. Формат структуры:<br/>* (string) `login` - учётная запись в гостевой ОС.<br/>* (string) `password` - пароль к этой учётной записи. |
| ram | int | Объём оперативной памяти в МБ, выделенной этой виртуальной машине. |
| rg_id | int| Идентификатор ресурсной группы, к которой принадлежит виртуальная машина. |
| rg_name | string | Имя ресурсной группы, к которой принадлежит виртуальная машина. |
| started | bool | Опциональный параметр, флаг запуска машины,<br/>по-умолчанию - true.<br/>Если true - машина включена,<br/>если false - выключена. |
## Пример использования
В нижеприведённом примере с помощью _resource_ функции **decort_kvmvm** создаётся виртуальная машина (экземпляр _compute_ в терминологии платформы DECORT) следующими характеристиками:
* Имя виртуальной машины - "tf-managed-vm"
* Характеристики виртуальной машины - 1 CPU, 1024Мб RAM, размер загрузочного диска 10Гб
* К виртуальной машине будет подключён один дополнительный диск с идентификатором 56789
* Идентификатор ресурсной группы, в которой создаётся виртуальная машина - поступает из переменной _decort_resgroup.my_rg.id_
* Идентификатор образа ОС, который будет установлен на загрузочный диск - поступает из переменной _data.decort_image.os_image.id_
* Виртуальная машина будет иметь одно сетевое подключение - во внешнюю сеть с идентификатором 12, IP адрес этого подключения платформа установит автоматически
```terraform
resource "decort_kvmvm" "my_new_vm" {
name = "tf-managed-vm"
rg_id = decort_resgroup.my_rg.id
driver = "KVM_X86" # "KVM_PPC" for IBM Power or "KVM_X86" for Intel
cpu = 1 # CPU count
ram = 1024 # RAM size in MB, must be even number, ideally a power of 2
boot_disk_size = 10 # Boot disk size in GB
extra_disks = [ 56789 ]
image_id = data.decort_image.os_image.id
description = "Test KVM VM Compute managed by Terraform"
network {
net_type = "EXTNET"
net_id = 12
}
#started = true
}
```
Данный пример подразумевает, что ранее по тексту tf-файла :
* выполнена корректная инициализация провайдера (подробнее об инициализации Terraform провайдера DECORT см. соответствующий [раздел](https://github.com/rudecs/terraform-provider-decort/wiki/05.-%D0%98%D0%BD%D0%B8%D1%86%D0%B8%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F-Terraform-%D0%BF%D1%80%D0%BE%D0%B2%D0%B0%D0%B9%D0%B4%D0%B5%D1%80%D0%B0-DECORT.)).
* создан ресурс типа decort_resgroup (см. _resource_ функцию [decort_resgroup](https://github.com/rudecs/terraform-provider-decort/wiki/07.1-Resource-%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D1%8F-decort_resgroup:-%D1%83%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5-%D1%80%D0%B5%D1%81%D1%83%D1%80%D1%81%D0%BD%D1%8B%D0%BC%D0%B8-%D0%B3%D1%80%D1%83%D0%BF%D0%BF%D0%B0%D0%BC%D0%B8.)) и результат записан в переменную _decort_resgroup.my_rg_
* считана информация об образе ОС(см. _data_ функцию [decort_image](https://github.com/rudecs/terraform-provider-decort/wiki/06.6-Data-%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D1%8F-decort_image:-%D0%BF%D0%BE%D0%BB%D1%83%D1%87%D0%B5%D0%BD%D0%B8%D0%B5-%D0%B8%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D0%B8%D0%B8-%D0%BE%D0%B1-%D0%BE%D0%B1%D1%80%D0%B0%D0%B7%D0%B0%D1%85.)) и результат записан в переменную _decort_resgroup.os_image_
После успешного завершения такого вызова _resource_ функции **decort_kvmvm** в переменной `decort_kvmvm.my_new_vm` будут сохранены возвращаемые значения. В частности, для получения идентификатора виртуальной машины следует использовать конструкцию `decort_kvmvm.my_new_vm.id`.

@@ -0,0 +1,52 @@
_Resource_ функция **decort_vins** служит для управления виртуальными сетевыми сегментами (Virtual Network Segment) в платформе DECORT.
## Аргументы
_Resource_ функция **decort_vins** принимает следующие аргументы:
| Аргумент | Тип | Обязательный | Описание |
| --- | --- | --- | --- |
| name | string | :heavy_check_mark: | Имя виртуального сетевого сегмента (ViNS), по которому требуется получить информацию. Имя не может быть пустым.<br/>ViNS идентифицируется по комбинации имени и идентификатора ресурсной группы (`rg_id`) или подписчика (`account_id`).<br>Обратите внимание, что имя ViNS является уникальным в рамках "account" и ресурсной группы. |
| account_id | int | :heavy_check_mark: | Данный параметр является обязательным независимо от того, создаётся ли ViNS на уровне подписчика или на уровне ресурсной группы.<br/> Идентификатор подписчика ("account"), в котором должен находиться данный ViNS.<br/>Обратите внимание, что попытка изменить `account_id` у существующего ресурса приведёт к его пересозданию. |
| ext_net_id | int | :heavy_check_mark: | Идентификатор внешней сети, в которую должен быть подключён ViNS. Если подключение во внешнюю сеть не требуется, то необходимо задать `ext_net_id = 0`.<br/>Обратите внимание, что из всех ViNS, созданных на уровне одной и той же ресурсной группы, только один может иметь подключение к внешней сети. ViNS, созданные на уровне "account", не могут иметь подключений к внешним сетям. |
| description | string | :x: | Текстовое описание данного ViNS.<br/>Данный параметр не является обязательным, значение по умолчанию - пустая строка. |
| ipcidr | string | :x: | IP CIDR, который требуется присвоить внутреннему сегменту данного ViNS. <br/>Данный параметр не является обязательным и принимается во внимание только на стадии создания нового ViNS. Если он не задан, то платформа установит значение самостоятельно. |
| rg_id | int | :x: | Идентификатор ресурсной группы, в которой должен находиться данный ViNS.<br>Если требуется создать ViNS на уровне подписчика ("account"), то необходимо указать `rg_id = 0`.<br/>Обратите внимание, что попытка изменить `rg_id` у существующего ресурса приведёт к его пересозданию.|
Пользователь облачной платформы, от лица которого происходит обращение к данной функции, должен иметь доступ к указанной учётной записи ("account") и/или ресурсной группе. В противном случае возникнет ошибка доступа.
Пользователь облачной платформы задается на стадии инициализации Terraform провайдера DECORT (см. [подробности](https://github.com/rudecs/terraform-provider-decort/wiki/03.-%D0%9E%D0%B1%D0%B7%D0%BE%D1%80-%D0%BE%D0%B1%D0%BB%D0%B0%D1%87%D0%BD%D0%BE%D0%B9-%D0%BF%D0%BB%D0%B0%D1%82%D1%84%D0%BE%D1%80%D0%BC%D1%8B-DECORT.)).
## Возвращаемые значения
В случае успешного выполнения _data source_ функция **decort_vins** возвращает в указанную при вызове переменную следующие значения:
| Параметр | Тип | Описание |
| --- | --- | --- |
| account_id | int | Уникальный идентификатор подписчика-владельца ViNS. |
| account_name | string | Имя подписчика ("account"), которому принадлежит ViNS. |
| description | string | Текстовое описание ViNS. |
| ext_ip_addr | string | IP адрес подключения ViNS к внешней сети. Если ViNS не подключен к внешней сети, то данный параметр содержит пустую строку.<br/>Обратите внимание, что из всех ViNS, созданных на уровне одной и той же ресурсной группы, только один может иметь подключение к внешней сети. ViNS, созданные на уровне "account", не могут иметь подключений к внешним сетям. |
| ext_net_id | int | Идентификатор внешней сети, к которой подключен данный ViNS. Признаком подключения ViNS ко внешней сети является ненулевое значение этого параметра.<br/>Обратите внимание, что из всех ViNS, созданных на уровне одной и той же ресурсной группы, только один может иметь подключение к внешней сети. ViNS, созданные на уровне "account", не могут иметь подключений к внешним сетям. |
| id | int | Идентификатор ViNS. |
| ipcidr | string | IP CIDR, присвоенный внутреннему сегменту данного ViNS. |
| name | string | Имя ViNS. |
| rg_id | int | Идентификатор ресурсной группы, на уровне которой создан ViNS. Для ViNS, существующих на уровне "account", данный параметр будет равен 0. |
## Пример использования
Пример вызова _data source_ функции **decort_vins**:
```terraform
resource "decort_vins "my_vins" {
name = "Vins01" # this is the name of the ViNS to create
rg_id = 500 # this is the ID of the resource group, where ViNS is created
account_id = 100 # this is the ID of the account, where the resource group is located and ViNS is created
ext_net_id = 0 # no connection to external network for this ViNS
}
# Once the above directive completes, ViNS ID will be accessible as
# decort_vins.my_vins.id
```
Данный пример подразумевает, что ранее по тексту tf-файла выполнена корректная инициализация провайдера (подробнее об инициализации Terraform провайдера DECORT см. соответствующий [раздел](https://github.com/rudecs/terraform-provider-decort/wiki/05.-%D0%98%D0%BD%D0%B8%D1%86%D0%B8%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F-Terraform-%D0%BF%D1%80%D0%BE%D0%B2%D0%B0%D0%B9%D0%B4%D0%B5%D1%80%D0%B0-DECORT.) и [пример](https://github.com/rudecs/terraform-provider-decort/wiki/02.-%D0%9A%D0%BE%D1%80%D0%BE%D1%87%D0%B5,-%D0%A1%D0%BA%D0%BB%D0%B8%D1%84%D0%BE%D1%81%D0%BE%D1%84%D1%81%D0%BA%D0%B8%D0%B9!)).
После успешного завершения такого вызова **decort_vins** в переменной `data.decort_vins.my_vins` будут сохранены возвращаемые значения. В частности, для получения идентификатора ViNS следует использовать конструкцию `data.decort_vins.my_vins.id`

@@ -0,0 +1,57 @@
_Resource_ функция **decort_disk** служит для управления дисковыми ресурсами ("disk") в облачной платформе DECORT.
## Аргументы
_Resource_ функция **decort_disk** принимает следующие аргументы:
| Аргумент | Тип | Обязательный | Описание |
| --- | --- | --- | --- |
| pool | string | :heavy_check_mark: | Имя пула в системе хранения, на ресурсах которой должен быть размещён данный диск. |
| sep_id | int | :heavy_check_mark: | Идентификатор Storage Endpoint Provider (SEP). SEP это способ идентифицировать конкретную систему хранения, на ресурсах которой должен быть размещён данный диск. |
| size | int | :heavy_check_mark: | Размер диска в ГБ. |
| account_id | int | :x: | Идентификатор подписчика (aka "account"), которому принадлежит данная ресурсная группа.<br/>Этот параметр является обязательным при идентификации уже имеющегося диска по его имени (`name`) или при создании нового диска. |
| description | string | :x: | Текстовое описание диска.<br/>Данный параметр не является обязательным. |
| disk_id | int | :x: | Идентификатор диска. Данный параметр может использоваться только при управлении уже существующим диском.<br/>Если этот параметр явно задан, то `name` и `account_id` игнорируются, а плагин считает, что диск с указанным `disk_id` уже существует. |
| name | string | :x: | Имя диска. Обратите внимание, что имя диска НЕ является уникальным в рамках одного и того же подписчика ("account").<br/>При создании нового диска этот параметр является обязательным и не может быть пустым. |
Для создания диска пользователь облачной платформы, от лица которого происходит обращение к данной функции, должен иметь как минимум доступ на запись к указанному подписчику. В противном случае возникнет ошибка доступа.
Пользователь облачной платформы задается на стадии инициализации Terraform провайдера DECORT (см. [подробности](https://github.com/rudecs/terraform-provider-decort/wiki/05.-%D0%98%D0%BD%D0%B8%D1%86%D0%B8%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F-Terraform-%D0%BF%D1%80%D0%BE%D0%B2%D0%B0%D0%B9%D0%B4%D0%B5%D1%80%D0%B0-DECORT.)).
## Возвращаемые значения
В случае успешного выполнения _data source_ функция **decort_disk** возвращает в указанную при вызове переменную следующие значения:
| Параметр | Тип | Описание |
| --- | --- | --- |
| account_id | int | Уникальный идентификатор подписчика-владельца диска. |
| account_name | string | Имя подписчика ("account"), которому принадлежит данный диск. |
| description | string | Текстовое описание диска. |
| disk_id | int | Идентификатор диска. Дублирует значение параметра `id`. |
| id | int | Идентификатор диска. |
| image_id | int | Идентификатор образа, содержимое которого было склонировано/скопировано в данный диск при его создании. 0 означает, что данный диск не создавался как клон/копия какого-либо образа. |
| name | string | Имя диска. Обратите внимание, что имя диска НЕ является уникальным, и если в рамках одного и того же подписчика ("account") есть несколько дисков с одним и тем же названием, то используется первый из них. |
| pool | string | Имя пула в системе хранения, на ресурсах которой размещён данный диск. |
| sep_id | int | Идентификатор Storage Endpoint Provider (SEP). SEP это способ идентифицировать конкретную систему хранения, на ресурсах которой размещён данный диск. |
| sep_type | string | Тип SEP. Определяет тип системы хранения и содержит одно из заданных в облачной платформе значений. |
| size | int | Размер диска в ГБ. |
| type | string | Тип диска с точки зрения его роли в составе _compute_. Может принимать одно из фиксированных значений:<br/>"B" - признак загрузочного диска ("boot").<br/>"D" - признак дополнительного диска ("data"). |
## Пример использования
В нижеприведённом примере с помощью _resource_ функции **decort_disk** создаётся новый диск со следующими характеристиками:
* Имя диска- "MyDisk01"
* Идентификатор подпичсика-владельца ("account") - 100
* Размер диска - 10 ГБ.
* Система хранения, на которой будет размещён ноый диск, идентифицируется как SEP ID = 5
* Пул на указанной системе хранения, где будет размещён диск, называется "data"
```terraform
resource "decort_disk" "my_disk01" {
name = "MyDisk01"
account_id = 100
sep_id = 5
pool = "data"
}
```
Данный пример подразумевает, что ранее по тексту tf-файла выполнена корректная инициализация провайдера (подробнее об инициализации Terraform провайдера DECORT см. соответствующий [раздел](https://github.com/rudecs/terraform-provider-decort/wiki/05.-%D0%98%D0%BD%D0%B8%D1%86%D0%B8%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F-Terraform-%D0%BF%D1%80%D0%BE%D0%B2%D0%B0%D0%B9%D0%B4%D0%B5%D1%80%D0%B0-DECORT.)).
После успешного завершения такого вызова _resource_ функции **decort_disk** в переменной `decort_disk.my_disk01` будут сохранены возвращаемые значения. В частности, для получения идентификатора диска следует использовать конструкцию `"${decort_disk.my_disk01.id}"`.

@@ -1,113 +0,0 @@
Функция доступна в провайдере версии 2.0 и выше.
**Внимание:** необходимы права администратора.
_Resource_ функция **decort_image** служит для управления образом.
## Аргументы
_Resource_ функция **decort_image** для создания образа принимает следующие аргументы:
| Аргумент | Тип | Обязательный | Описание |
| --- | --- | --- | --- |
| name | string | :heavy_check_mark: | Имя образа<br/>При изменении - изменяет название образа|
| url | string | :heavy_check_mark: | Адрес образа |
| gid | int | :heavy_check_mark: | Grid id образа |
| boot_type | string | :heavy_check_mark: | Тип загрузки образа,<br/>возможные варианты: "bios" или "uefi"|
| image_type | string | :heavy_check_mark: | Тип образа,<br />возможные варианты - "linux", "windows"|
| drivers | []string | :heavy_check_mark: | Драйвера,<br/>возможные варианты - ["KVM_X86", "SVA_KVM_X86"], ["KVM_X86"], ["SVA_KVM_X86"] |
| account_id | int | :x: |ID аккаунта владельца образа,<br/>может быть использован как при создании, так и редактировании образа |
| username | string | :x: | Имя пользователя,<br/>может быть использован как при создании, так и редактировании образа |
| password | string | :x: | Пароль пользователя,<br/>может быть использован как при создании, так и редактировании образа |
| username_dl | string | :x: | Имя пользователя для загрузки бинарных данных,<br/>может быть использован как при создании, так и редактировании образа |
| password_dl | string | :x: | Пароль пользователя для загрузки бинарных данных,<br/>может быть использован как при создании, так и редактировании образа |
| sync | bool | :x: | Синхронное создание образа, используется при создании |
| sep_id | int | :x: | ID storage endpoint |
| pool_name | string | :x: | Пул для создания образа |
| architecture | string | :x: | Используется при создании, <br/>архитектура системы образа<br/>доступные значения: "X86_64"<br/>по-умолчанию "X86_64" |
| enabled | bool | :x: | Доступность образа,<br/>используется при редактировании ресурса |
| shared_with | []int | :x: | Настройка доступа образа аккаунтам<br/>используется на уже созданном ресурсе,<br/>пустой маасив - удаление всех доступов, если они были |
| computeci_id | int | :x: | Установка computeci,<br/>используется на уже созданном ресурсе,<br/>чтобы сбросить, необходимо передать 0 |
| enabled_stacks | []string | :x: | Доступные стаки,<br/>используется на уже созданном ресурсе<br/>для удаления всех доступных стаков, необходимо передать пустой массив |
| permanently | bool | :x: | Мгновенное удаление<br/>можно использовать перед удалением |
| reason | string | :x: | Причина удаления<br/>можно использовать перед удалением |
## Возвращаемые значения
В случае успешного выполнения _resource_ функция **decort_image** возвращает в указанную при вызове переменную следующие значения:
| Параметр | Тип | Описание |
| --- | --- | --- |
| account_id | int | accountId привязки образа |
| architecture | string | Архитектура образа, возможен вариант X86_64 или PPC64_LE |
| boot_type | string | Тип запуска ОС - bios или uefi |
| bootable | bool | Является ли образ загрузочным |
| computeci_id | int | ID вычислительного ресурса |
| desc | string | Описание образа |
| drivers | []string | Список используемых драйверов |
| enabled | bool | Доступность образа |
| gid | int | ID платформы, где образ будет создан |
| guid | int | Внутренний id образа, совпадает с image_id |
| history | object{id: int, guid: int, timestamp: int} | История обновлений образа |
| hot_resize | bool | Использует ли машина горячее изменение размера образа |
| image_type | string | Тип образа: linux, windows или другой |
| last_modified | int | Дата последнего изменения |
| link_to | int | Привязка к образу, используется в виртуальных образах |
| meta | []string | Мета информация об образе |
| milestones | int | Вехи |
| name | string | Название образа |
| password | string | Пароль для образа |
| password_dl | string | Пароль для загрузки двоичных файлов |
| permanently | bool | Удаление образа: мгновенное или нет |
| pool_name | string | Пул, в котором был создан образ |
| provider_name | string | Наименование провайдера |
| purge_attempts | int | Попытки |
| reference_id | string | ID ссылки |
| res_id | string | ID ресурса |
| res_name | string | Наименование ресурса |
| rescuecd | bool | cd или нет |
| sep_id | int | storage endpoint provider ID |
| size | int | Размер образа |
| status | string | Статус образа |
| tech_status | string | Технический статус |
| unc_path | string | unc path |
| url | string | Адрес, которого осуществлялась загрузка образа |
| username | string | Имя пользователя образа |
| username_dl | string | Имя пользователя для загрузки двоичных файлов |
| version | string | Версия |
## Пример использования
Пример вызова _resource_ функции **decort_image**:
```terraform
resource "decort_image" "my_image" {
name = "test_image_rename"
url = <IMAGE_URL>
gid = 212
boot_type = "bios"
image_type = "linux"
drivers = ["KVM_X86", "SVA_KVM_X86"]
#account_id = 5725
#username = "Valera"
#password = "123"
#username_dl = "Valera1"
#password_dl = "1231"
#sep_id = 1206
#pool_name = "vmstor"
#architecture = "X86_64"
#enabled = true
#shared_with = [28096, 57121]
#computeci_id = 1
#enabled_stacks = ["9"]
#permanently = true
#reason = "test"
}
# once the above directive completes, will be accessible
# as decort_image.my_image
```
Данный пример подразумевает, что ранее по тексту tf-файла выполнена корректная инициализация провайдера (подробнее об инициализации Terraform провайдера DECORT см. соответствующий [раздел](https://github.com/rudecs/terraform-provider-decort/wiki/05.-%D0%98%D0%BD%D0%B8%D1%86%D0%B8%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F-Terraform-%D0%BF%D1%80%D0%BE%D0%B2%D0%B0%D0%B9%D0%B4%D0%B5%D1%80%D0%B0-DECORT.)).
После успешного завершения такого вызова **decort_image** в переменной `decort_image.my_image` будут сохранены возвращаемые значения.

@@ -1,415 +0,0 @@
Функция доступна в провайдере версии 2.2 и выше.
**Внимание:** необходимы права администратора.
_Resource_ функция **decort_sep_config** служит для управления конфигурацией storage endpoint. Storage endpoint (sep) - точка доступа к хранилищу данных. Sep бывает четырех типов:
- des
- hitachi
- dorado
- tatlin
Каждый тип отличается возможной конфигурацией.
_Resource_ функция **decort_sep_config** позволяет добавлять, редактировать конфигурацию sep. Обо всех доступных полях конфигурации для каждого типа storage endpoint см. ниже.
## Аргументы
_Resource_ функция **decort_sep_config** принимает следующие аргументы:
| Аргумент | Тип | Обязательный | Описание |
| --- | --- | --- | --- |
| sep_id | int | :heavy_check_mark: | sep id |
| config | json string | :x: | Конфигурация sep. Не использовать вместе с field_edit |
| field_edit | Struct{<br/>field_name string<br/>field_value string<br/>field_type string<br/>} | :x: | Редактирование/добавление поля, используется при редактировании sep<br/>&nbsp;<br/>Наименование поля<br/>&nbsp;<br/>Значение поля<br/>&nbsp;<br/>Тип поля. Возможные значения: str, int, dict, list, bool<br/> &nbsp;<br/> Не использовать вместе с config |
## Возвращаемые значения
В случае успешного выполнения _data source_ функция **decort_sep** возвращает в указанную при вызове переменную элемент, который состоит из следующих параметров:
| Параметр | Тип | Описание |
| --- | --- | --- |
| sep_id | int | id storage |
| config | json string | Конфигурация sep |
| field_edit | Struct{<br/>field_name string<br/>field_value string<br/>field_type string<br/>} | Редактирование/добавление поля, используется при редактировании sep<br/>&nbsp;<br/>Наименование поля<br/>&nbsp;<br/>Значение поля<br/>&nbsp;<br/>Тип поля. Возможные значения: str, int, dict, list, bool<br/> &nbsp;<br/> &nbsp; |
## Пример использования
Пример вызова _resource_ функции **decort_sep_config**:
```terraform
resource "decort_sep_config" "sc" {
sep_id = 1111
#config = file("./config.json")
#внимание, во избежание конфликтов не использовать с полем config
/*
field_edit {
field_name = "edgeuser_password"
field_value = "mosk"
field_type = "str"
}
*/
}
# once the above directive completes, sep will be accessible
# as decort_sep_config.sc
# and config will be accessible
# as decort_sep_config.sc.config
```
Данный пример подразумевает, что ранее по тексту tf-файла выполнена корректная инициализация провайдера (подробнее об инициализации Terraform провайдера DECORT см. соответствующий [раздел](https://github.com/rudecs/terraform-provider-decort/wiki/05.-%D0%98%D0%BD%D0%B8%D1%86%D0%B8%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F-Terraform-%D0%BF%D1%80%D0%BE%D0%B2%D0%B0%D0%B9%D0%B4%D0%B5%D1%80%D0%B0-DECORT.)).
После успешного завершения такого вызова **decort_sep_config** в переменной `decort_sep_config.sc` будут сохранены возвращаемые значения.
Чтобы получить доступ к конфигурации и сохранить ее в файл .json, необходимо:
1. определить в .tf - файле дополнительный output с любым именем, в который запишется информация о конфигурации sep и обернуть ее в вызов функции jsondecode для декодирования информации.
```terraform
output "sep_config" {
value = jsondecode(decort_sep_config.sc.config)
}
```
2. Применить изменения в терраформе.
```bash
terraform apply
```
3. Сохранить данные из output в .json - файл.
```bash
terraform output -json sep_config >> config.json
```
В общем случае это будет выглядеть как указано ниже.
```bash
terraform output -json <output-name> >> <file-name>.json
```
## Примеры возможных конфигураций для разных типов sep
Поля в разных версиях decort могут отличаться.
Конфигурация перед отправкой проходит валидацию.
### des
| Поле | Тип | Описание |
| --- | --- | --- |
| API_IPs | []string | Список ip адресов для api |
| protocol | string | Протокол сообщения с sep |
| decs3o_app_secret | string | Секретный ключ decs3o |
| format | string | Формат передачи данных
| edgeuser_password | string | Пароль пользователя |
| edgeuser_name | string | Имя пользователя |
| decs3o_app_id | string | APP ID, полученный в decs3o |
| transport | string | Транспортный протокол |
```json
{
"API_IPs": [
"11.111.1.11",
"11.111.1.12",
"11.111.1.13",
"11.111.1.14"
],
"protocol": "des",
"decs3o_app_secret": "",
"format": "raw",
"edgeuser_password": "somepassword",
"housekeeping_settings": {
"disk_del_queue": {
"purgatory_id": 1
}
},
"edgeuser_name": "someusername",
"decs3o_app_id": "",
"ovs_settings": {},
"pools": [
{
"types": [
"D"
],
"referenceId": "somerefid",
"name": "poolname2",
"pagecache_ratio": 100,
"uris": [
{
"ip": "11.111.1.11",
"port": 11
},
{
"ip": "11.111.1.12",
"port": 11
},
{
"ip": "11.111.1.13",
"port": 11
},
{
"ip": "11.111.1.14",
"port": 11
}
]
},
{
"types": [
"D"
],
"referenceId": "somerefid2",
"name": "poolname1",
"pagecache_ratio": 100,
"uris": [
{
"ip": "11.111.1.11",
"port": 12
},
{
"ip": "11.111.1.12",
"port": 12
},
{
"ip": "11.111.1.13",
"port": 12
},
{
"ip": "11.111.1.14",
"port": 12
}
]
},
{
"types": [
"B"
],
"referenceId": "somerefid3",
"name": "myname",
"pagecache_ratio": 100,
"uris": [
{
"ip": "11.111.1.11",
"port": 13
},
{
"ip": "11.111.1.12",
"port": 13
},
{
"ip": "11.111.1.13",
"port": 13
},
{
"ip": "11.111.1.14",
"port": 13
}
]
}
],
"transport": "tcp"
}
```
### hitachi
| Поле | Тип | Описание |
| --- | --- | --- |
| API_URLs | []string | Список адресов для api |
| SN | string | Серийный номер |
| format | string | Формат передачи данных |
| disk_max_size | int | Максимальный размер диска |
| mgmt_password | string | Пароль пользователя |
| mgmt_user | string | Имя пользователя |
| model | string | Модель |
| name_prefix | string | Префикс в имени |
| protocol | string | Протокол сообщения |
| ssl_verify | bool | Проверка ssl |
```json
{
"API_URLs": [
"https://11.11.111.11:11",
"https://11.11.111.12:11"
],
"SN": 1111,
"disk_max_size": 111,
"format": "raw",
"hostGroupNumMax": 1,
"hostGroupNumMin": 1,
"hostGroupNumber": 1,
"housekeeping_settings": {
"disk_del_queue": {
"purge_attempts_threshold": 20
}
},
"mgmt_password": "pwd",
"mgmt_user": "username",
"model": "model",
"name_prefix": "my-prefix-",
"pools": [
{
"clone_technology": "snapshot",
"id": 1,
"maxLdevId": 1111,
"minLdevId": 111,
"name": "my-prefix-01",
"snapshot_pool_id": 1,
"snapshotable": true,
"types": [
"D",
"B",
"ANY"
],
"usage_limit": 999999999
},
{
"clone_technology": "snapshot",
"id": 2,
"maxLdevId": 1111,
"minLdevId": 111,
"name": "my-prefix-92-snap",
"snapshot_pool_id": 1,
"snapshotable": true,
"types": [],
"usage_limit": 111
}
],
"ports": [
"port-name-1",
"port-name-2"
],
"protocol": "scsi",
"ssl_verify": false
}
```
### dorado
| Поле | Тип | Описание |
| --- | --- | --- |
| API_URLs | []string | Список адресов для api |
| edgeuser_password | string | Пароль пользователя |
| edgeuser_name | string | Имя пользователя |
| format | string | Формат передачи данных |
| disk_max_size | int | Максимальный размер диска |
| mgmt_password | string | Пароль пользователя |
| mgmt_user | string | Имя пользователя |
| model | string | Модель |
| name_prefix | string | Префикс в имени |
| protocol | string | Протокол сообщения |
```json
{
"API_URLs": [
"https://111.11.111.111:11/"
],
"disk_max_size": 111,
"edgeuser_name": "username",
"edgeuser_password": "pwd",
"format": "raw",
"groups": {
"hostgroup": [
"hostname",
"1"
],
"lungroup": [
"hostname_lungroup",
"2"
],
"portgroup": [
"hostname_portgroup",
"3"
]
},
"hostGroupName": "hostname",
"housekeeping_settings": {
"disk_del_queue": {
"purge_attempts_threshold": 20
}
},
"mgmt_password": "pwd2",
"mgmt_user": "username2",
"model": "Dorado",
"name_prefix": "my-prefix-",
"pools": [
{
"name": "pool1",
"types": [
"D",
"B",
"ANY"
],
"usage_limit": 111111
}
],
"ports": [
{
"ip": "11.111.1.111",
"name": "port1"
},
{
"ip": "11.111.1.112",
"name": "port2"
},
{
"ip": "11.111.1.113",
"name": "myport3"
}
],
"protocol": "iscsi"
}
```
### tatlin
| Поле | Тип | Описание |
| --- | --- | --- |
| API_URLs | []string | Список адресов для api |
| edgeuser_password | string | Пароль пользователя |
| edgeuser_name | string | Имя пользователя |
| format | string | Формат передачи данных |
| disk_max_size | int | Максимальный размер диска |
| mgmt_password | string | Пароль пользователя |
| mgmt_user | string | Имя пользователя |
| model | string | Модель |
| name_prefix | string | Префикс в имени |
| protocol | string | Протокол сообщения |
```json
{
"API_URLs": [
"ssh://111.11.11.11:43"
],
"disk_max_size": 1111,
"edgeuser_name": "usrname",
"edgeuser_password": "pwd",
"format": "raw",
"hostGroupName": "mygroupname",
"housekeeping_settings": {
"disk_del_queue": {
"purge_attempts_threshold": 20
}
},
"mgmt_password": "pwd2",
"mgmt_user": "usrname",
"model": "Tatlin",
"name_prefix": "my-prefix-",
"pools": [
{
"name": "pool-name",
"types": [
"D",
"B"
],
"usage_limit": 11111
}
],
"ports": [
{
"ips": [
"111.11.111.113",
"111.11.111.114"
],
"iqn": "some_iqn_string",
"name": "myportname"
},
{
"ips": [
"111.11.111.113",
"111.11.111.114"
],
"iqn": "myiqnstring",
"name": "myportname"
}
],
"protocol": "iscsi",
"techDisk": {
"name": "mydiskname",
"pool": "pool-name",
"size": 1,
"wwid": "wwidstring"
}
}
```

@@ -1,450 +0,0 @@
Функция доступна в провайдере версии 2.2 и выше.
**Внимание:** необходимы права администратора.
_Resource_ функция **decort_sep** служит для управления storage endpoint. Storage endpoint (sep) - точка доступа к хранилищу данных. Sep бывает четырех типов:
- des
- hitachi
- dorado
- tatlin
Каждый тип отличается возможной конфигурацией.
_Resource_ функция **decort_sep** позволяет создавать, редактировать, удалять sep. Кроме этого, с помощью этой функции можно добавлять, редактировать конфигурацию sep. Обо всех доступных полях конфигурации для каждого типа storage endpoint см. ниже.
## Аргументы
_Resource_ функция **decort_sep** принимает следующие аргументы:
| Аргумент | Тип | Обязательный | Описание |
| --- | --- | --- | --- |
| gid | int | :heavy_check_mark: | Grid id |
| name | string | :heavy_check_mark: | Наименование sep |
| type | string | :heavy_check_mark: | Тип sep.<br/>Возможные значения:<br/>des<br/>hitachi<br/>tatlin<br/>dorado |
| desc | string | :x: | Описание sep, используется при создании sep |
| config | json string | :x: | Конфигурация sep. Используется при создании и редактировании sep<br/>Не использовать вместе с field_edit |
| enable | bool | :x: | Доступность sep, используется при создании и редактировании sep |
| consumed_by | []int | :x: | Используемые nodes, используется при создании и редактировании sep |
| provided_by | []int | :x: | Используемые provider nodes, используется при создании и редактировании sep |
| upd_capacity_limit | bool | :x: | Обновление предела емкости, используется при редактировании sep |
| decommission | bool | :x: | Отвязывание всех зависимостей от sep (отвязывание nodes)<br/>Используется вместе с параметром clear_physically |
| clear_physically | bool | :x: | Физическое очищение nodes |
| field_edit | Struct{<br/>field_name string<br/>field_value string<br/>field_type string<br/>} | :x: | Редактирование/добавление поля, используется при редактировании sep<br/>&nbsp;<br/>Наименование поля<br/>&nbsp;<br/>Значение поля<br/>&nbsp;<br/>Тип поля. Возможные значения: str, int, dict, list, bool<br/> &nbsp;<br/> Не использовать вместе с config |
| sep_id | int | :x: | Используется для формирования .tfstate, в случае его удаления и присутствия sep с указанным id в системе |
## Возвращаемые значения
В случае успешного выполнения _data source_ функция **decort_sep** возвращает в указанную при вызове переменную элемент, который состоит из следующих параметров:
| Параметр | Тип | Описание |
| --- | --- | --- |
| sep_id | int | id storage endpoint |
| meta | []string | Мета информация о sep |
| consumed_by | []int | Список node id, использующих sep |
| desc | string | Описание sep |
| gid | int | Grid id, к которому привязан sep |
| guid | int | Внутренний id sep |
| milestones | int | Вехи |
| name | string | Наименование sep |
| obj_status | string | Статус sep |
| provided_by | []int | Список provider id, использующих sep |
| tech_status | string | Технический статус sep |
| type | string | Тип sep |
| config | json string | Конфигурация sep |
| upd_capacity_limit | bool | :x: | Обновление предела емкости, используется при редактировании sep |
| decommission | bool | :x: | Отвязывание всех зависимостей от sep (отвязывание nodes)<br/>Используется вместе с параметром clear_physically |
| clear_physically | bool | :x: | Физическое очищение nodes |
| enable | bool | :x: | Доступность sep, используется при создании и редактировании sep |
| field_edit | Struct{<br/>field_name string<br/>field_value string<br/>field_type string<br/>} | :x: | Редактирование/добавление поля, используется при редактировании sep<br/>&nbsp;<br/>Наименование поля<br/>&nbsp;<br/>Значение поля<br/>&nbsp;<br/>Тип поля. Возможные значения: str, int, dict, list, bool<br/> &nbsp;<br/> &nbsp; |
## Пример использования
Пример вызова _resource_ функции **decort_sep**:
```terraform
resource "decort_sep" "s" {
gid = 111
name = "test sep"
type = "des"
#desc = "description"
#config = file("./config.json")
#внимание, во избежание конфликтов не использовать с полем config
/*
field_edit {
field_name = "edgeuser_password"
field_value = "mosk"
field_type = "str"
}
*/
#enable = false
#consumed_by = [23,21]
#upd_capacity_limit = true
#provided_by = [16, 14, 15]
#decommission = true
#clear_physically = false
}
# once the above directive completes, sep will be accessible
# as decort_sep.s
# and config will be accessible
# as decort_sep.s.config
```
Данный пример подразумевает, что ранее по тексту tf-файла выполнена корректная инициализация провайдера (подробнее об инициализации Terraform провайдера DECORT см. соответствующий [раздел](https://github.com/rudecs/terraform-provider-decort/wiki/05.-%D0%98%D0%BD%D0%B8%D1%86%D0%B8%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F-Terraform-%D0%BF%D1%80%D0%BE%D0%B2%D0%B0%D0%B9%D0%B4%D0%B5%D1%80%D0%B0-DECORT.)).
После успешного завершения такого вызова **decort_sep** в переменной `decort_sep.s` будут сохранены возвращаемые значения.
Чтобы получить доступ к конфигурации и сохранить ее в файл .json, необходимо:
1. определить в .tf - файле дополнительный output с любым именем, в который запишется информация о конфигурации sep и обернуть ее в вызов функции jsondecode для декодирования информации.
```terraform
output "sep_config" {
value = jsondecode(decort_sep.s.config)
}
```
2. Применить изменения в терраформе.
```bash
terraform apply
```
3. Сохранить данные из output в .json - файл.
```bash
terraform output -json sep_config >> config.json
```
В общем случае это будет выглядеть как указано ниже.
```bash
terraform output -json <output-name> >> <file-name>.json
```
## Примеры возможных конфигураций для разных типов sep
Поля в разных версиях decort могут отличаться.
Конфигурация перед отправкой проходит валидацию.
### des
| Поле | Тип | Описание |
| --- | --- | --- |
| API_IPs | []string | Список ip адресов для api |
| protocol | string | Протокол сообщения с sep |
| decs3o_app_secret | string | Секретный ключ decs3o |
| format | string | Формат передачи данных
| edgeuser_password | string | Пароль пользователя |
| edgeuser_name | string | Имя пользователя |
| decs3o_app_id | string | APP ID, полученный в decs3o |
| transport | string | Транспортный протокол |
```json
{
"API_IPs": [
"11.111.1.11",
"11.111.1.12",
"11.111.1.13",
"11.111.1.14"
],
"protocol": "des",
"decs3o_app_secret": "",
"format": "raw",
"edgeuser_password": "somepassword",
"housekeeping_settings": {
"disk_del_queue": {
"purgatory_id": 1
}
},
"edgeuser_name": "someusername",
"decs3o_app_id": "",
"ovs_settings": {},
"pools": [
{
"types": [
"D"
],
"referenceId": "somerefid",
"name": "poolname2",
"pagecache_ratio": 100,
"uris": [
{
"ip": "11.111.1.11",
"port": 11
},
{
"ip": "11.111.1.12",
"port": 11
},
{
"ip": "11.111.1.13",
"port": 11
},
{
"ip": "11.111.1.14",
"port": 11
}
]
},
{
"types": [
"D"
],
"referenceId": "somerefid2",
"name": "poolname1",
"pagecache_ratio": 100,
"uris": [
{
"ip": "11.111.1.11",
"port": 12
},
{
"ip": "11.111.1.12",
"port": 12
},
{
"ip": "11.111.1.13",
"port": 12
},
{
"ip": "11.111.1.14",
"port": 12
}
]
},
{
"types": [
"B"
],
"referenceId": "somerefid3",
"name": "myname",
"pagecache_ratio": 100,
"uris": [
{
"ip": "11.111.1.11",
"port": 13
},
{
"ip": "11.111.1.12",
"port": 13
},
{
"ip": "11.111.1.13",
"port": 13
},
{
"ip": "11.111.1.14",
"port": 13
}
]
}
],
"transport": "tcp"
}
```
### hitachi
| Поле | Тип | Описание |
| --- | --- | --- |
| API_URLs | []string | Список адресов для api |
| SN | string | Серийный номер |
| format | string | Формат передачи данных |
| disk_max_size | int | Максимальный размер диска |
| mgmt_password | string | Пароль пользователя |
| mgmt_user | string | Имя пользователя |
| model | string | Модель |
| name_prefix | string | Префикс в имени |
| protocol | string | Протокол сообщения |
| ssl_verify | bool | Проверка ssl |
```json
{
"API_URLs": [
"https://11.11.111.11:11",
"https://11.11.111.12:11"
],
"SN": 1111,
"disk_max_size": 111,
"format": "raw",
"hostGroupNumMax": 1,
"hostGroupNumMin": 1,
"hostGroupNumber": 1,
"housekeeping_settings": {
"disk_del_queue": {
"purge_attempts_threshold": 20
}
},
"mgmt_password": "pwd",
"mgmt_user": "username",
"model": "model",
"name_prefix": "my-prefix-",
"pools": [
{
"clone_technology": "snapshot",
"id": 1,
"maxLdevId": 1111,
"minLdevId": 111,
"name": "my-prefix-01",
"snapshot_pool_id": 1,
"snapshotable": true,
"types": [
"D",
"B",
"ANY"
],
"usage_limit": 999999999
},
{
"clone_technology": "snapshot",
"id": 2,
"maxLdevId": 1111,
"minLdevId": 111,
"name": "my-prefix-92-snap",
"snapshot_pool_id": 1,
"snapshotable": true,
"types": [],
"usage_limit": 111
}
],
"ports": [
"port-name-1",
"port-name-2"
],
"protocol": "scsi",
"ssl_verify": false
}
```
### dorado
| Поле | Тип | Описание |
| --- | --- | --- |
| API_URLs | []string | Список адресов для api |
| edgeuser_password | string | Пароль пользователя |
| edgeuser_name | string | Имя пользователя |
| format | string | Формат передачи данных |
| disk_max_size | int | Максимальный размер диска |
| mgmt_password | string | Пароль пользователя |
| mgmt_user | string | Имя пользователя |
| model | string | Модель |
| name_prefix | string | Префикс в имени |
| protocol | string | Протокол сообщения |
```json
{
"API_URLs": [
"https://111.11.111.111:11/"
],
"disk_max_size": 111,
"edgeuser_name": "username",
"edgeuser_password": "pwd",
"format": "raw",
"groups": {
"hostgroup": [
"hostname",
"1"
],
"lungroup": [
"hostname_lungroup",
"2"
],
"portgroup": [
"hostname_portgroup",
"3"
]
},
"hostGroupName": "hostname",
"housekeeping_settings": {
"disk_del_queue": {
"purge_attempts_threshold": 20
}
},
"mgmt_password": "pwd2",
"mgmt_user": "username2",
"model": "Dorado",
"name_prefix": "my-prefix-",
"pools": [
{
"name": "pool1",
"types": [
"D",
"B",
"ANY"
],
"usage_limit": 111111
}
],
"ports": [
{
"ip": "11.111.1.111",
"name": "port1"
},
{
"ip": "11.111.1.112",
"name": "port2"
},
{
"ip": "11.111.1.113",
"name": "myport3"
}
],
"protocol": "iscsi"
}
```
### tatlin
| Поле | Тип | Описание |
| --- | --- | --- |
| API_URLs | []string | Список адресов для api |
| edgeuser_password | string | Пароль пользователя |
| edgeuser_name | string | Имя пользователя |
| format | string | Формат передачи данных |
| disk_max_size | int | Максимальный размер диска |
| mgmt_password | string | Пароль пользователя |
| mgmt_user | string | Имя пользователя |
| model | string | Модель |
| name_prefix | string | Префикс в имени |
| protocol | string | Протокол сообщения |
```json
{
"API_URLs": [
"ssh://111.11.11.11:43"
],
"disk_max_size": 1111,
"edgeuser_name": "usrname",
"edgeuser_password": "pwd",
"format": "raw",
"hostGroupName": "mygroupname",
"housekeeping_settings": {
"disk_del_queue": {
"purge_attempts_threshold": 20
}
},
"mgmt_password": "pwd2",
"mgmt_user": "usrname",
"model": "Tatlin",
"name_prefix": "my-prefix-",
"pools": [
{
"name": "pool-name",
"types": [
"D",
"B"
],
"usage_limit": 11111
}
],
"ports": [
{
"ips": [
"111.11.111.113",
"111.11.111.114"
],
"iqn": "some_iqn_string",
"name": "myportname"
},
{
"ips": [
"111.11.111.113",
"111.11.111.114"
],
"iqn": "myiqnstring",
"name": "myportname"
}
],
"protocol": "iscsi",
"techDisk": {
"name": "mydiskname",
"pool": "pool-name",
"size": 1,
"wwid": "wwidstring"
}
}
```

@@ -1,58 +0,0 @@
Функция доступна в провайдере версии 2.2 и выше.
**Внимание:** необходимы права администратора.
_Resource_ функция **decort_pcidevice** служит для управления устройств с шиной PCI.
## Аргументы
_Resource_ функция **decort_pcidevice** принимает следующие аргументы:
| Аргумент | Тип | Обязательный | Описание |
| --- | --- | --- | --- |
| name | string | :heavy_check_mark: | Имя устройства |
| hw_path | string | :heavy_check_mark: | Путь до устройства (HW Path) |
| description | string | :heavy_check_mark: | Описание устройства |
| rg_id | int | :heavy_check_mark: | id ресурсной группы устройства |
| stack_id | int | :heavy_check_mark: | id стака устройства |
| enable | bool | :x: | Доступность устройства, может использоваться на уже созданном ресурсе |
| force | bool | :x: | Принудительное удаление устройства, используется при удалении устройства |
| device_id | int | :x: | id устройства, может быть использовано для формирования .tfstate, при наличии ресурса в облаке |
## Возвращаемые значения
В случае успешного выполнения _resource_ функция **decort_pcidevice** возвращает в указанную при вызове переменную элемент, который состоит из следующих параметров:
| Параметр | Тип | Описание |
| --- | --- | --- |
| meta | []string | Мета информация |
| compute_id | int | id вычислительной площадки |
| description | string | Описание |
| guid | int | Внутренний id |
| hw_path | string | HW Путь |
| device_id | int | id устройства |
| name | string | Наименование устройства |
| rg_id | int | id ресурсной группы (resource group) |
| stack_id | int | id стэка |
| status | string | Статус устройства |
| system_name | string | Системное имя устройства |
## Пример использования
Пример вызова _resource_ функции **decort_pcidevice**:
```terraform
resource "decort_pcidevice" "pd" {
name = "test_device"
hw_path = "0000:01:00.0"
description = "test desc"
rg_id = 11111
stack_id = 11
#enable = false
#force = true
}
# once the above directive completes, pcidevice will be accessible
# as decort_pcidevice.pd
```
Данный пример подразумевает, что ранее по тексту tf-файла выполнена корректная инициализация провайдера (подробнее об инициализации Terraform провайдера DECORT см. соответствующий [раздел](https://github.com/rudecs/terraform-provider-decort/wiki/05.-%D0%98%D0%BD%D0%B8%D1%86%D0%B8%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F-Terraform-%D0%BF%D1%80%D0%BE%D0%B2%D0%B0%D0%B9%D0%B4%D0%B5%D1%80%D0%B0-DECORT.)).
После успешного завершения такого вызова **decort_pcidevice** в переменной `decort_pcidevice.pd` будут сохранены возвращаемые значения.