Add new pages
113
07.01.07-Resource-функция-decort_image-управление-образом.md
Normal file
113
07.01.07-Resource-функция-decort_image-управление-образом.md
Normal file
@@ -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/> <br/>Наименование поля<br/> <br/>Значение поля<br/> <br/>Тип поля. Возможные значения: str, int, dict, list, bool<br/> <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/> <br/>Наименование поля<br/> <br/>Значение поля<br/> <br/>Тип поля. Возможные значения: str, int, dict, list, bool<br/> <br/> |
|
||||
|
||||
## Пример использования
|
||||
|
||||
Пример вызова _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"
|
||||
}
|
||||
}
|
||||
```
|
||||
421
07.02.03-Resource-функция-decort_sep-управление-sep.md
Normal file
421
07.02.03-Resource-функция-decort_sep-управление-sep.md
Normal file
@@ -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/> <br/>Наименование поля<br/> <br/>Значение поля<br/> <br/>Тип поля. Возможные значения: str, int, dict, list, bool<br/> <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/> <br/>Наименование поля<br/> <br/>Значение поля<br/> <br/>Тип поля. Возможные значения: str, int, dict, list, bool<br/> <br/> |
|
||||
|
||||
## Пример использования
|
||||
|
||||
Пример вызова _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.
|
||||
После этого, рекомендуется повторить все с первого этапа.
|
||||
Если имеется необходимо повторить удаление, но с другими данными, рекомендуется удалить файл состояния 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 |
|
||||
| Аргумент | Тип | Обязательный | Описание |
|
||||
| ----------- | ------ | ------------------ | ------------------------------------------------ |
|
||||
| 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]
|
||||
184
07.02.06-Resource-функция-decort_account-управление-аккаунтом.md
Normal file
184
07.02.06-Resource-функция-decort_account-управление-аккаунтом.md
Normal file
@@ -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/> <br/> <br/> <br/> | :x: | Ресурсы аккаунта<br/>Кол-во ядер<br/>Размер диска, ГБ<br/>Кол-во публичных ip-адресов<br/>Размер RAM, МБ<br/>Кол-во переданных данных, в ГБ<br/>Кол-во графических процессоров<br/> <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/> <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/> <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/> <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/> <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/> <br/> |
|
||||
| machines | Struct{<br/>halted int<br/>running int <br/>} | Информация о виртуальных машинах (устаревшее)<br/>Кол-во запущенных<br/>Кол-во остановленных<br/> <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` будут сохранены возвращаемые значения.
|
||||
113
07.02.08-Resource-функция-decort_image-управление-образом.md
Normal file
113
07.02.08-Resource-функция-decort_image-управление-образом.md
Normal file
@@ -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` будут сохранены возвращаемые значения.
|
||||
81
07.02.11-Resource-функция-decort_kvmvm-управление-виртуальными-машинами-на-базе-KVM.md
Normal file
81
07.02.11-Resource-функция-decort_kvmvm-управление-виртуальными-машинами-на-базе-KVM.md
Normal file
@@ -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/> <br/>Наименование поля<br/> <br/>Значение поля<br/> <br/>Тип поля. Возможные значения: str, int, dict, list, bool<br/> <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/> <br/>Наименование поля<br/> <br/>Значение поля<br/> <br/>Тип поля. Возможные значения: str, int, dict, list, bool<br/> <br/> |
|
||||
|
||||
## Пример использования
|
||||
Пример вызова _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/> <br/>Наименование поля<br/> <br/>Значение поля<br/> <br/>Тип поля. Возможные значения: str, int, dict, list, bool<br/> <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/> <br/>Наименование поля<br/> <br/>Значение поля<br/> <br/>Тип поля. Возможные значения: str, int, dict, list, bool<br/> <br/> |
|
||||
|
||||
## Пример использования
|
||||
Пример вызова _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` будут сохранены возвращаемые значения.
|
||||
Reference in New Issue
Block a user