diff --git a/06.01.18-Data-функция-decort_pcidevice_list-получение-информации-о-всех-pcidevice.md b/06.02.18-Data-функция-decort_pcidevice_list-получение-информации-о-всех-pcidevice.md similarity index 100% rename from 06.01.18-Data-функция-decort_pcidevice_list-получение-информации-о-всех-pcidevice.md rename to 06.02.18-Data-функция-decort_pcidevice_list-получение-информации-о-всех-pcidevice.md diff --git a/06.01.19-Data-функция-decort_pcidevice-получение-информации-о-pcidevice.md b/06.02.19-Data-функция-decort_pcidevice-получение-информации-о-pcidevice.md similarity index 100% rename from 06.01.19-Data-функция-decort_pcidevice-получение-информации-о-pcidevice.md rename to 06.02.19-Data-функция-decort_pcidevice-получение-информации-о-pcidevice.md diff --git a/06.01.20-Data-функция-decort_vgpu-получение-информации-о-виртуальном-графическом-устройстве.md b/06.02.20-Data-функция-decort_vgpu-получение-информации-о-виртуальном-графическом-устройстве.md similarity index 100% rename from 06.01.20-Data-функция-decort_vgpu-получение-информации-о-виртуальном-графическом-устройстве.md rename to 06.02.20-Data-функция-decort_vgpu-получение-информации-о-виртуальном-графическом-устройстве.md diff --git a/07.02-Resource-функция-decort_kvmvm-управление-виртуальными-машинами-на-базе-KVM.md b/07.01.01-Resource-функция-decort_kvmvm-управление-виртуальными-машинами-на-базе-KVM.md similarity index 100% rename from 07.02-Resource-функция-decort_kvmvm-управление-виртуальными-машинами-на-базе-KVM.md rename to 07.01.01-Resource-функция-decort_kvmvm-управление-виртуальными-машинами-на-базе-KVM.md diff --git a/07.03-Resource-функция-decort_disk-управление-дисковыми-ресурсами.md b/07.01.02-Resource-функция-decort_disk-управление-дисковыми-ресурсами.md similarity index 100% rename from 07.03-Resource-функция-decort_disk-управление-дисковыми-ресурсами.md rename to 07.01.02-Resource-функция-decort_disk-управление-дисковыми-ресурсами.md diff --git a/07.04-Resource-функция-decort_vins-управление-виртуальными-сетевыми-сегментами.md b/07.01.03-Resource-функция-decort_vins-управление-виртуальными-сетевыми-сегментами.md similarity index 100% rename from 07.04-Resource-функция-decort_vins-управление-виртуальными-сетевыми-сегментами.md rename to 07.01.03-Resource-функция-decort_vins-управление-виртуальными-сетевыми-сегментами.md diff --git a/07.05-Resource-функция-decort_snapshot-управление-снапшотами.md b/07.01.04-Resource-функция-decort_snapshot-управление-снапшотами.md similarity index 100% rename from 07.05-Resource-функция-decort_snapshot-управление-снапшотами.md rename to 07.01.04-Resource-функция-decort_snapshot-управление-снапшотами.md diff --git a/07.06-Resource-функция-decort_k8s-управление-кластером-kubernetes.md b/07.01.05-Resource-функция-decort_k8s-управление-кластером-kubernetes.md similarity index 100% rename from 07.06-Resource-функция-decort_k8s-управление-кластером-kubernetes.md rename to 07.01.05-Resource-функция-decort_k8s-управление-кластером-kubernetes.md diff --git a/07.07-Resource-функция-decort_k8s_wg-управление-worker-groups-кластера.md b/07.01.06-Resource-функция-decort_k8s_wg-управление-worker-groups-кластера.md similarity index 100% rename from 07.07-Resource-функция-decort_k8s_wg-управление-worker-groups-кластера.md rename to 07.01.06-Resource-функция-decort_k8s_wg-управление-worker-groups-кластера.md diff --git a/07.01.07-Resource-функция-decort_image-управление-образом.md b/07.01.07-Resource-функция-decort_image-управление-образом.md new file mode 100644 index 0000000..f364ffc --- /dev/null +++ b/07.01.07-Resource-функция-decort_image-управление-образом.md @@ -0,0 +1,113 @@ +Функция доступна в провайдере версии 2.0 и выше. + +_Resource_ функция **decort_image** служит для управления образом. + +## Аргументы + +_Resource_ функция **decort_image** для создания образа принимает следующие аргументы: + +| Аргумент | Тип | Обязательный | Описание | +| -------------- | -------- | ------------------ | --------------------------------------------------------------------------------------------------------------------------------------- | +| name | string | :heavy_check_mark: | Имя образа
При изменении - изменяет название образа | +| url | string | :heavy_check_mark: | Адрес образа | +| gid | int | :heavy_check_mark: | Grid id образа | +| boot_type | string | :heavy_check_mark: | Тип загрузки образа,
возможные варианты: "bios" или "uefi" | +| image_type | string | :heavy_check_mark: | Тип образа,
возможные варианты - "linux", "windows" | +| drivers | []string | :heavy_check_mark: | Драйвера,
возможные варианты - ["KVM_X86", "SVA_KVM_X86"], ["KVM_X86"], ["SVA_KVM_X86"] | +| account_id | int | :x: | ID аккаунта владельца образа,
может быть использован как при создании, так и редактировании образа | +| username | string | :x: | Имя пользователя,
может быть использован как при создании, так и редактировании образа | +| password | string | :x: | Пароль пользователя,
может быть использован как при создании, так и редактировании образа | +| username_dl | string | :x: | Имя пользователя для загрузки бинарных данных,
может быть использован как при создании, так и редактировании образа | +| password_dl | string | :x: | Пароль пользователя для загрузки бинарных данных,
может быть использован как при создании, так и редактировании образа | +| sync | bool | :x: | Синхронное создание образа, используется при создании | +| sep_id | int | :x: | ID storage endpoint | +| pool_name | string | :x: | Пул для создания образа | +| architecture | string | :x: | Используется при создании,
архитектура системы образа
доступные значения: "X86_64"
по-умолчанию "X86_64" | +| enabled | bool | :x: | Доступность образа,
используется при редактировании ресурса | +| shared_with | []int | :x: | Настройка доступа образа аккаунтам
используется на уже созданном ресурсе,
пустой маасив - удаление всех доступов, если они были | +| computeci_id | int | :x: | Установка computeci,
используется на уже созданном ресурсе,
чтобы сбросить, необходимо передать 0 | +| enabled_stacks | []string | :x: | Доступные стаки,
используется на уже созданном ресурсе
для удаления всех доступных стаков, необходимо передать пустой массив | +| permanently | bool | :x: | Мгновенное удаление
можно использовать перед удалением | +| reason | string | :x: | Причина удаления
можно использовать перед удалением | + +## Возвращаемые значения + +В случае успешного выполнения _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 = + 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` будут сохранены возвращаемые значения. diff --git a/07.09-Resource-функция-decort_virtual_image-управление-виртуальным-образом.md b/07.01.08-Resource-функция-decort_virtual_image-управление-виртуальным-образом.md similarity index 100% rename from 07.09-Resource-функция-decort_virtual_image-управление-виртуальным-образом.md rename to 07.01.08-Resource-функция-decort_virtual_image-управление-виртуальным-образом.md diff --git a/07.12--Resource-функция-decort_pfw-управление-правилами-трансляции-сетевых-портов-для-виртуальных-серверов.md b/07.01.11--Resource-функция-decort_pfw-управление-правилами-трансляции-сетевых-портов-для-виртуальных-серверов.md similarity index 100% rename from 07.12--Resource-функция-decort_pfw-управление-правилами-трансляции-сетевых-портов-для-виртуальных-серверов.md rename to 07.01.11--Resource-функция-decort_pfw-управление-правилами-трансляции-сетевых-портов-для-виртуальных-серверов.md diff --git a/07.16-Resource-функция-decort_account-управление-аккаунтом.md b/07.01.12-Resource-функция-decort_account-управление-аккаунтом.md similarity index 100% rename from 07.16-Resource-функция-decort_account-управление-аккаунтом.md rename to 07.01.12-Resource-функция-decort_account-управление-аккаунтом.md diff --git a/07.17-Resource-функция-decort_bservice-управление-базовым-сервисом.md b/07.01.13-Resource-функция-decort_bservice-управление-базовым-сервисом.md similarity index 100% rename from 07.17-Resource-функция-decort_bservice-управление-базовым-сервисом.md rename to 07.01.13-Resource-функция-decort_bservice-управление-базовым-сервисом.md diff --git a/07.18-Resource-функция-decort_bservice_group-управление-группой-базового-сервиса.md b/07.01.14-Resource-функция-decort_bservice_group-управление-группой-базового-сервиса.md similarity index 100% rename from 07.18-Resource-функция-decort_bservice_group-управление-группой-базового-сервиса.md rename to 07.01.14-Resource-функция-decort_bservice_group-управление-группой-базового-сервиса.md diff --git a/07.02.01-Resource-функция-decort_pcidevice-управление-устройством.md b/07.02.01-Resource-функция-decort_pcidevice-управление-устройством.md new file mode 100644 index 0000000..f84a936 --- /dev/null +++ b/07.02.01-Resource-функция-decort_pcidevice-управление-устройством.md @@ -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` будут сохранены возвращаемые значения. diff --git a/07.02.02-Resource-функция-decort_sep_config-управление-конфигурацией-sep.md b/07.02.02-Resource-функция-decort_sep_config-управление-конфигурацией-sep.md new file mode 100644 index 0000000..7a0416d --- /dev/null +++ b/07.02.02-Resource-функция-decort_sep_config-управление-конфигурацией-sep.md @@ -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{
field_name string
field_value string
field_type string
} | :x: | Редактирование/добавление поля, используется при редактировании sep
 
Наименование поля
 
Значение поля
 
Тип поля. Возможные значения: str, int, dict, list, bool
 
Не использовать вместе с config | + +## Возвращаемые значения + +В случае успешного выполнения _data source_ функция **decort_sep** возвращает в указанную при вызове переменную элемент, который состоит из следующих параметров: + +| Параметр | Тип | Описание | +| ---------- | -------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| sep_id | int | id storage | +| config | json string | Конфигурация sep | +| field_edit | Struct{
field_name string
field_value string
field_type string
} | Редактирование/добавление поля, используется при редактировании sep
 
Наименование поля
 
Значение поля
 
Тип поля. Возможные значения: str, int, dict, list, bool
 
  | + +## Пример использования + +Пример вызова _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 >> .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" + } +} +``` diff --git a/07.02.03-Resource-функция-decort_sep-управление-sep.md b/07.02.03-Resource-функция-decort_sep-управление-sep.md new file mode 100644 index 0000000..a9c131d --- /dev/null +++ b/07.02.03-Resource-функция-decort_sep-управление-sep.md @@ -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.
Возможные значения:
des
hitachi
tatlin
dorado | +| desc | string | :x: | Описание sep, используется при создании sep | +| config | json string | :x: | Конфигурация sep. Используется при создании и редактировании sep
Не использовать вместе с 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)
Используется вместе с параметром clear_physically | +| clear_physically | bool | :x: | Физическое очищение nodes | +| field_edit | Struct{
field_name string
field_value string
field_type string
} | :x: | Редактирование/добавление поля, используется при редактировании sep
 
Наименование поля
 
Значение поля
 
Тип поля. Возможные значения: str, int, dict, list, bool
 
Не использовать вместе с 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)
Используется вместе с параметром clear_physically | +| clear_physically | bool | :x: | Физическое очищение nodes | +| enable | bool | :x: | Доступность sep, используется при создании и редактировании sep | +| field_edit | Struct{
field_name string
field_value string
field_type string
} | :x: | Редактирование/добавление поля, используется при редактировании sep
 
Наименование поля
 
Значение поля
 
Тип поля. Возможные значения: str, int, dict, list, bool
 
  | + +## Пример использования + +Пример вызова _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 >> .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" + } +} +``` diff --git a/07.02.04-Resource-функция-decort_cdrom_image-управление-cdrom-образом.md b/07.02.04-Resource-функция-decort_cdrom_image-управление-cdrom-образом.md new file mode 100644 index 0000000..ca201f8 --- /dev/null +++ b/07.02.04-Resource-функция-decort_cdrom_image-управление-cdrom-образом.md @@ -0,0 +1,104 @@ +Функция доступна в провайдере версии 2.0 и выше. + +_Resource_ функция **decort_cdrom_image** служит для управления cdrom - образом. + +## Аргументы + +_Resource_ функция **decort_cdrom_image** для создания cdrom - образа принимает следующие аргументы: + +| Аргумент | Тип | Обязательный | Описание | +| -------------- | -------- | ------------------ | --------------------------------------------------------------------------------------------------------------------------------------- | +| name | string | :heavy_check_mark: | Имя образа
При изменении - изменяет название образа | +| url | string | :heavy_check_mark: | Адрес образа | +| gid | int | :heavy_check_mark: | Grid id образа | +| drivers | []string | :heavy_check_mark: | Драйвера,
возможные варианты - ["KVM_X86", "SVA_KVM_X86"], ["KVM_X86"], ["SVA_KVM_X86"] | +| account_id | int | :x: | ID аккаунта владельца образа,
может быть использован как при создании, так и редактировании образа | +| username | string | :x: | Имя пользователя,
может быть использован как при создании, так и редактировании образа | +| password | string | :x: | Пароль пользователя,
может быть использован как при создании, так и редактировании образа | +| username_dl | string | :x: | Имя пользователя для загрузки бинарных данных,
может быть использован как при создании, так и редактировании образа | +| password_dl | string | :x: | Пароль пользователя для загрузки бинарных данных,
может быть использован как при создании, так и редактировании образа | +| sep_id | int | :x: | ID storage endpoint | +| pool_name | string | :x: | Пул для создания образа | +| architecture | string | :x: | Используется при создании,
архитектура системы образа
доступные значения: "X86_64"
по-умолчанию "X86_64" | +| enabled | bool | :x: | Доступность образа,
используется при редактировании ресурса | +| shared_with | []int | :x: | Настройка доступа образа аккаунтам
используется на уже созданном ресурсе,
пустой маасив - удаление всех доступов, если они были | +| computeci_id | int | :x: | Установка computeci,
используется на уже созданном ресурсе,
чтобы сбросить, необходимо передать 0 | +| enabled_stacks | []string | :x: | Доступные стаки,
используется на уже созданном ресурсе
для удаления всех доступных стаков, необходимо передать пустой массив | +| permanently | bool | :x: | Мгновенное удаление
можно использовать перед удалением | + +## Возвращаемые значения + +В случае успешного выполнения _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 = + 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` будут сохранены возвращаемые значения. diff --git a/07.11-Resource-функция-decort_delete_images-удаление-нескольких-образов.md b/07.02.05-Resource-функция-decort_delete_images-удаление-нескольких-образов.md similarity index 62% rename from 07.11-Resource-функция-decort_delete_images-удаление-нескольких-образов.md rename to 07.02.05-Resource-функция-decort_delete_images-удаление-нескольких-образов.md index 33beacf..e1fba23 100644 --- a/07.11-Resource-функция-decort_delete_images-удаление-нескольких-образов.md +++ b/07.02.05-Resource-функция-decort_delete_images-удаление-нескольких-образов.md @@ -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: | Параметр удаления
по-умолчанию - false | +| Аргумент | Тип | Обязательный | Описание | +| ----------- | ------ | ------------------ | ------------------------------------------------ | +| images_ids | []int | :heavy_check_mark: | Массив, содержащий набор id образов для удаления | +| reason | string | :heavy_check_mark: | Причина удаления | +| permanently | bool | :x: | Параметр удаления
по-умолчанию - false | ## Возвращаемые значения -Отсутствуют + +Отсутствуют ## Пример использования + Пример вызова _resource_ функции **decort_delete_images**: + ```terraform resource "decort_delete_images" "my_images" { image_ids = [1111] @@ -38,4 +43,4 @@ resource "decort_delete_images" "my_images" { ``` -Данный пример подразумевает, что ранее по тексту 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.)). +Данный пример подразумевает, что ранее по тексту 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.)). diff --git a/07.02.06-Resource-функция-decort_account-управление-аккаунтом.md b/07.02.06-Resource-функция-decort_account-управление-аккаунтом.md new file mode 100644 index 0000000..4f1c3aa --- /dev/null +++ b/07.02.06-Resource-функция-decort_account-управление-аккаунтом.md @@ -0,0 +1,184 @@ +Функция доступна в провайдере версии 2.3 и выше. + +_Resource_ функция **decort_account** служит для управления аккаунтами. Аккаунты в платформе позволяют создавать ресурсные группы, вычислительные мощности (computes), виртуальные сети, управлять ресурсами и так далее. Аккаунты создают пользователи (user). Все административное взаимодействие внутри платформы строится на аккаунтах. + +## Аргументы +_Resource_ функция **decort_account** принимает следующие аргументы: + +| Аргумент | Тип | Обязательный | Описание | +| --- | --- | :---: | --- | +| account_name | string | :heavy_check_mark: | Имя аккаунта
Используется при создании и редактировании | +| username | string | :heavy_check_mark: | Имя пользователя - владельца аккаунта
Используется при создании | +| emailaddress | string | :x: | Адрес электронной почты
Используется при создании | +| send_access_emails | bool | :x: | Флаг отправки электронного письма
Используется при создании и редактировании
По-умолчанию: true | +| resource_limits | Struct{
cu_c float
cu_d float
cu_i float
cu_m float
cu_np float
gpu_units float
}
 
 
 
| :x: | Ресурсы аккаунта
Кол-во ядер
Размер диска, ГБ
Кол-во публичных ip-адресов
Размер RAM, МБ
Кол-во переданных данных, в ГБ
Кол-во графических процессоров
 
Используется при создании и редактировании аккаунта
По-умолчанию, все ресурсы выставлены в -1, что обозначает их использование без ограничений.
Значение 0 недопустимо. Должен быть использован хотя бы минимальные экземпляр ресурса. | +| enable | bool | :x: | Флаг доступности аккаунта
Используется при редактировании | +| restore | bool | :x: | Флаг восстановления аккаунта
Используется при редактировании | +| users | []Struct{
user_id string
access_type string
recursive_delete bool
} | :x: | Добавление/удаление пользователей в аккаунт
ID пользователя(его имя)
Тип доступа пользователя. R - чтение, RCX - запись, ARCXDU - админ
Флаг рекурсивного удаления пользователя
 
| +| permanently | bool | :x: | Флаг удаления аккаунта
Если выставлен в true, то аккаунт и все с ним связанное удаляется моментально
Если false - то аккаунт попадает в "корзину", где хранится некоторое время. Из "корзины" аккаунт можно восстановить
По-умолчанию: false
Используется при удалении | +| account_id | int | :x: | ID аккаунта, используется для формирования .tfstate, если аккаунт уже был создан в платформе
Может использоваться при создании аккаунта | + +## Возвращаемые значения +В случае успешного выполнения _resource_ функция **decort_account** возвращает в указанную при вызове переменную элемент, который состоит из следующих параметров: + +| Параметр | Тип | Описание | +| --- | --- | --- | +| account_id | int | ID аккаунта | +| account_name | string | Название аккаунта | +| meta | []string | Мета информация | +| resources | Struct{
current Struct{
cpu int
disksize int
extips int
exttraffic int
gpu int
ram int
}
reserved Struct{
cpu int
disksize int
extips int
exttraffic int
gpu int
ram int
}
} | Информация о ресурсах
Задействованные
Кол-вол ядер
Размер диска, ГБ
Кол-во внешних ip-адресов
Размер внешнего траффика
Кол-во графических ядер
Размер RAM, MБ

Зарезервированные
Кол-вол ядер
Размер диска, ГБ
Кол-во внешних ip-адресов
Размер внешнего траффика
Кол-во графических ядер
Размер RAM, MБ

 
| +| acl | []Struct{
can_be_deleted bool
explicit bool
guid string
right string
status string
type string
user_group_id string
} | Более подробная информация об аккаунтах
Может ли быть удален аккаунт
Явно ли указан доступ
guid аккаунта
Права доступа
Статус аккаунта
Тип аккаунта
Идентификатор пользователя-владельца аккаунта
 
| +| 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{
cu_c float
cu_d float
cu_i float
cu_m float
cu_np float
gpu_units float
} | Ограничения ресурсов
Кол-во ядер
Размер диска, ГБ
Число публичных ip адресов
Размер RAM, МБ
Объем трафика, ГБ
Кол-вол графических ядер
 
| +| send_access_emails | bool | Флаг, отправлять ли на указанную почту письмо о доступе | +| service_account | bool | Флаг, является ли аккаунт аккаунтом-обслуживания | +| status | string | Статус аккаунта | +| updated_time | int | Время последнего обновления | +| version | int | Версия аккаунта | +| vins | []int | Список id виртуальных сетей | +| vinses | []int | Список id виртуальных сетей | +| computes | Struct{
started int
stopped int
} | Информация о вычислительных мощностях
Кол-во запущенных
Кол-во остановленных
 
| +| machines | Struct{
halted int
running int
} | Информация о виртуальных машинах (устаревшее)
Кол-во запущенных
Кол-во остановленных
 
| + + + +## Пример использования +Пример вызова _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` будут сохранены возвращаемые значения. \ No newline at end of file diff --git a/07.10-Resource-функция-decort_cdrom_image-управление-cdrom-образом.md b/07.02.07-Resource-функция-decort_virtual_image-управление-виртуальным-образом.md similarity index 59% rename from 07.10-Resource-функция-decort_cdrom_image-управление-cdrom-образом.md rename to 07.02.07-Resource-функция-decort_virtual_image-управление-виртуальным-образом.md index 0dc0340..e1b9c73 100644 --- a/07.10-Resource-функция-decort_cdrom_image-управление-cdrom-образом.md +++ b/07.02.07-Resource-функция-decort_virtual_image-управление-виртуальным-образом.md @@ -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: | Имя образа
При изменении - изменяет название образа| -| url | string | :heavy_check_mark: | Адрес образа | -| gid | int | :heavy_check_mark: | Grid id образа | -| drivers | []string | :heavy_check_mark: | Драйвера,
возможные варианты - ["KVM_X86", "SVA_KVM_X86"], ["KVM_X86"], ["SVA_KVM_X86"] | -| account_id | int | :x: | ID аккаунта владельца образа,
может быть использован как при создании, так и редактировании образа | -| username | string | :x: | Имя пользователя,
может быть использован как при создании, так и редактировании образа | -| password | string | :x: | Пароль пользователя,
может быть использован как при создании, так и редактировании образа | -| username_dl | string | :x: | Имя пользователя для загрузки бинарных данных,
может быть использован как при создании, так и редактировании образа | -| password_dl | string | :x: | Пароль пользователя для загрузки бинарных данных,
может быть использован как при создании, так и редактировании образа | -| sep_id | int | :x: |ID storage endpoint | -| pool_name | string | :x: | Пул для создания образа | -| architecture | string | :x: | Используется при создании,
архитектура системы образа
доступные значения: "X86_64"
по-умолчанию "X86_64" | +| name | string | :heavy_check_mark: | Имя виртуального образа | +| target_id | int | :heavy_check_mark: | ID образа, на основе котрого будет создан виртуальный | +| link_to | int | :x: | Используется при редактировании ресурса
изменение связи виртуального образа | +| account_id | int | :x: | ID аккаунта владельца образа
может быть использован при редактировании образа| +| username | string | :x: | Имя пользователя,
может быть использован при редактировании образа | +| password | string | :x: | Пароль пользователя,
может быть использован при редактировании образа | | enabled | bool | :x: | Доступность образа,
используется при редактировании ресурса | | shared_with | []int | :x: | Настройка доступа образа аккаунтам
используется на уже созданном ресурсе,
пустой маасив - удаление всех доступов, если они были | | computeci_id | int | :x: | Установка computeci,
используется на уже созданном ресурсе,
чтобы сбросить, необходимо передать 0 | | enabled_stacks | []string | :x: | Доступные стаки,
используется на уже созданном ресурсе
для удаления всех доступных стаков, необходимо передать пустой массив | | permanently | bool | :x: | Мгновенное удаление
можно использовать перед удалением | +| reason | string | :x: | Причина удаления
можно использовать перед удалением | + ## Возвращаемые значения -В случае успешного выполнения _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 = - 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` будут сохранены возвращаемые значения. \ No newline at end of file +После успешного завершения такого вызова **decort_virtual_image** в переменной `decort_virtual_image.my_image` будут сохранены возвращаемые значения. \ No newline at end of file diff --git a/07.02.08-Resource-функция-decort_image-управление-образом.md b/07.02.08-Resource-функция-decort_image-управление-образом.md new file mode 100644 index 0000000..f364ffc --- /dev/null +++ b/07.02.08-Resource-функция-decort_image-управление-образом.md @@ -0,0 +1,113 @@ +Функция доступна в провайдере версии 2.0 и выше. + +_Resource_ функция **decort_image** служит для управления образом. + +## Аргументы + +_Resource_ функция **decort_image** для создания образа принимает следующие аргументы: + +| Аргумент | Тип | Обязательный | Описание | +| -------------- | -------- | ------------------ | --------------------------------------------------------------------------------------------------------------------------------------- | +| name | string | :heavy_check_mark: | Имя образа
При изменении - изменяет название образа | +| url | string | :heavy_check_mark: | Адрес образа | +| gid | int | :heavy_check_mark: | Grid id образа | +| boot_type | string | :heavy_check_mark: | Тип загрузки образа,
возможные варианты: "bios" или "uefi" | +| image_type | string | :heavy_check_mark: | Тип образа,
возможные варианты - "linux", "windows" | +| drivers | []string | :heavy_check_mark: | Драйвера,
возможные варианты - ["KVM_X86", "SVA_KVM_X86"], ["KVM_X86"], ["SVA_KVM_X86"] | +| account_id | int | :x: | ID аккаунта владельца образа,
может быть использован как при создании, так и редактировании образа | +| username | string | :x: | Имя пользователя,
может быть использован как при создании, так и редактировании образа | +| password | string | :x: | Пароль пользователя,
может быть использован как при создании, так и редактировании образа | +| username_dl | string | :x: | Имя пользователя для загрузки бинарных данных,
может быть использован как при создании, так и редактировании образа | +| password_dl | string | :x: | Пароль пользователя для загрузки бинарных данных,
может быть использован как при создании, так и редактировании образа | +| sync | bool | :x: | Синхронное создание образа, используется при создании | +| sep_id | int | :x: | ID storage endpoint | +| pool_name | string | :x: | Пул для создания образа | +| architecture | string | :x: | Используется при создании,
архитектура системы образа
доступные значения: "X86_64"
по-умолчанию "X86_64" | +| enabled | bool | :x: | Доступность образа,
используется при редактировании ресурса | +| shared_with | []int | :x: | Настройка доступа образа аккаунтам
используется на уже созданном ресурсе,
пустой маасив - удаление всех доступов, если они были | +| computeci_id | int | :x: | Установка computeci,
используется на уже созданном ресурсе,
чтобы сбросить, необходимо передать 0 | +| enabled_stacks | []string | :x: | Доступные стаки,
используется на уже созданном ресурсе
для удаления всех доступных стаков, необходимо передать пустой массив | +| permanently | bool | :x: | Мгновенное удаление
можно использовать перед удалением | +| reason | string | :x: | Причина удаления
можно использовать перед удалением | + +## Возвращаемые значения + +В случае успешного выполнения _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 = + 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` будут сохранены возвращаемые значения. diff --git a/07.02.09-Resource-функция-decort_k8s_wg-управление-worker-groups-кластера.md b/07.02.09-Resource-функция-decort_k8s_wg-управление-worker-groups-кластера.md new file mode 100644 index 0000000..b3dc405 --- /dev/null +++ b/07.02.09-Resource-функция-decort_k8s_wg-управление-worker-groups-кластера.md @@ -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
по - умолчанию - 1| +| ram | int | :x: | Количество RAM для одной worker node в Мбайтах,
по-умолчанию - 1024| +| disk | int | :x: | Размер загрузочного диска для worker node, в Гбайтах
по - умолчанию - 0
если установлен параметр 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.)). \ No newline at end of file diff --git a/07.02.10-Resource-функция-decort_k8s-управление-кластером-kubernetes.md b/07.02.10-Resource-функция-decort_k8s-управление-кластером-kubernetes.md new file mode 100644 index 0000000..e6a9b93 --- /dev/null +++ b/07.02.10-Resource-функция-decort_k8s-управление-кластером-kubernetes.md @@ -0,0 +1,69 @@ +Функция доступна в провайдере версии 2.0 и выше. + +_Resource_ функция **decort_k8s** служит для управления кластером. + +## Аргументы +_Resource_ функция **decort_k8s** для создания кластера принимает следующие аргументы: + +| Аргумент | Тип | Обязательный | Описание | +| --- | --- | --- | --- | +| name | string | :heavy_check_mark: | Наименование кластера,
при изменении - изменяет наименование кластера | +| rg_id | int | :heavy_check_mark: | ID ресурсной группы | +| k8sci_id | int | :heavy_check_mark: | ID catalogue item | +| wg_name | string | :heavy_check_mark: | Имя для первой worker group,
созданной в кластере | +| masters | object{
num: int,
cpu: int,
ram: int,
disk: int} | :x: | Настройка мастер node или nodes
Обязательный параметр, кол-во nodes
Обязательный параметр, количество cpu
Обязательный параметр, кол-во RAM в Mбайтах
Обязательный параметр, размер диска в Гбайтах | +| workers | object{
num: int,
cpu: int,
ram: int,
disk: int} | :x: | Настройка worker node или nodes
Обязательный параметр, кол-во nodes
Обязательный параметр, количество cpu
Обязательный параметр, кол-во RAM в Mбайтах
Обязательный параметр, размер диска в Гбайтах | +| extnet_id | int | :x: | ID внешней сети для соединения workers.
Если не задано,
то сеть будет выбрана платформой. | + +## Возвращаемые значения +В случае успешного выполнения _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,
созданной в кластере | +| masters | object{
num: int,
cpu: int,
ram: int,
disk: int} | Настройка мастер node или nodes
Кол-во nodes
Количество cpu
Кол-во RAM в Mбайтах
Размер диска в Гбайтах | +| workers | object{
num: int,
cpu: int,
ram: int,
disk: int} | Настройка worker node или nodes
Кол-во nodes
Количество cpu
Кол-во RAM в Mбайтах
Размер диска в Гбайтах | +| 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` будут сохранены возвращаемые значения. \ No newline at end of file diff --git a/07.02.11-Resource-функция-decort_kvmvm-управление-виртуальными-машинами-на-базе-KVM.md b/07.02.11-Resource-функция-decort_kvmvm-управление-виртуальными-машинами-на-базе-KVM.md new file mode 100644 index 0000000..62270a1 --- /dev/null +++ b/07.02.11-Resource-функция-decort_kvmvm-управление-виртуальными-машинами-на-базе-KVM.md @@ -0,0 +1,81 @@ +_Resource_ функция **decort_kvmvm** служит для управления виртуальными машинами, создаваемыми в платформе DECORT на базе технологии виртуализации KVM. + +## Аргументы +_Resource_ функция **decort_kvmvm** принимает следующие аргументы: + +| Аргумент | Тип | Обязательный | Описание | +| --- | --- | --- | --- | +| driver | string | :heavy_check_mark: | Аппаратная архитектура виртуальной машины.
Может принимать одно из следующих значений:
* "KVM_X86" - виртуальная машина KVM на аппаратной платформе x86.
* "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: | Объём оперативной памяти в МБ.
| +| image_id | int | :heavy_check_mark: | Идентификатор образа, на базе которого создаётся загрузочный диск виртуальной машины.
| +| boot_disk_size | int | :heavy_check_mark: | Размер загрузочного диска виртуальной машины в ГБ. | +| extra_disks | []int | :x: | Список идентификаторов дополнительных дисков, которые требуется подключить к данной виртуальной машине помимо загрузочного диска. | +| cloud_init | string | :x: | Используется на этапе создания вм.
Параметры для утилиты _cloud_init_, которая используется в платформе DECORT для первичного конфигурирования виртуальной машины после её создания. | +| network | dict | :x: | Параметры сетевого подключения. Структура словаря:
* (string) `net_type` - тип сети, соответствующей данному подключению. "EXTNET" в случае прямого подключения во внешнюю сеть, "VINS" в случае подключения к Virtual Network Segment.
* (int) `net_id` - идентификатор соответствующего сетевого сегмента: внешней сети в случае `net_type = "EXTNET"` и ViNS в случае `net_type = "VINS"`
* (string) `ip_address` - IP адрес, выделенный данному подключению.
* (string) `mac` - MAC адрес, назначенный соответствующему сетевому интерфейсу виртуальной машины.
Если нужно сконфигурировать несколько сетевых подключений, данный блок можно задавать многократно - по одному на каждое подключение. | +| description | string | :x: | Текстовое описание виртуальной машины. | +| started | bool | :x: | Флаг запуска машины,
по-умолчанию - true.
Если true - машина включена,
если 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 | Имя виртуального сервера.
Возвращаемое значение `name` совпадает со значением соответствующего аргумента, переданного при вызове функции. | +| network | list of dicts | Характеристики сетевых сегментов, к которым подключен данный сервер. Формат структуры:
* (string) `net_type` - тип сети, соответствующей данному подключению. "EXTNET" в случае прямого подключения во внешнюю сеть, "VINS" в случае подключения к Virtual Network Segment.
* (int) `net_id` - идентификатор соответствующего сетевого сегмента: внешней сети в случае `net_type = "EXTNET"` и ViNS в случае `net_type = "VINS"`
* (string) `ip_address` - IP адрес, выделенный данному подключению.
* (string) `mac` - MAC адрес, назначенный соответствующему сетевому интерфейсу виртуальной машины. | +| os_users | list of dicts | Имена и пароли пользователей гостевой ОС, установленные платформой при создании виртуального сервера. Формат структуры:
* (string) `login` - учётная запись в гостевой ОС.
* (string) `password` - пароль к этой учётной записи. | +| ram | int | Объём оперативной памяти в МБ, выделенной этой виртуальной машине. | +| rg_id | int| Идентификатор ресурсной группы, к которой принадлежит виртуальная машина. | +| rg_name | string | Имя ресурсной группы, к которой принадлежит виртуальная машина. | +| started | bool | Опциональный параметр, флаг запуска машины,
по-умолчанию - true.
Если true - машина включена,
если 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`. \ No newline at end of file diff --git a/07.02.12-Resource-функция-decort_vins-управление-виртуальными-сетевыми-сегментами.md b/07.02.12-Resource-функция-decort_vins-управление-виртуальными-сетевыми-сегментами.md new file mode 100644 index 0000000..89f873a --- /dev/null +++ b/07.02.12-Resource-функция-decort_vins-управление-виртуальными-сетевыми-сегментами.md @@ -0,0 +1,52 @@ +_Resource_ функция **decort_vins** служит для управления виртуальными сетевыми сегментами (Virtual Network Segment) в платформе DECORT. + +## Аргументы +_Resource_ функция **decort_vins** принимает следующие аргументы: + +| Аргумент | Тип | Обязательный | Описание | +| --- | --- | --- | --- | +| name | string | :heavy_check_mark: | Имя виртуального сетевого сегмента (ViNS), по которому требуется получить информацию. Имя не может быть пустым.
ViNS идентифицируется по комбинации имени и идентификатора ресурсной группы (`rg_id`) или подписчика (`account_id`).
Обратите внимание, что имя ViNS является уникальным в рамках "account" и ресурсной группы. | +| account_id | int | :heavy_check_mark: | Данный параметр является обязательным независимо от того, создаётся ли ViNS на уровне подписчика или на уровне ресурсной группы.
Идентификатор подписчика ("account"), в котором должен находиться данный ViNS.
Обратите внимание, что попытка изменить `account_id` у существующего ресурса приведёт к его пересозданию. | +| ext_net_id | int | :heavy_check_mark: | Идентификатор внешней сети, в которую должен быть подключён ViNS. Если подключение во внешнюю сеть не требуется, то необходимо задать `ext_net_id = 0`.
Обратите внимание, что из всех ViNS, созданных на уровне одной и той же ресурсной группы, только один может иметь подключение к внешней сети. ViNS, созданные на уровне "account", не могут иметь подключений к внешним сетям. | +| description | string | :x: | Текстовое описание данного ViNS.
Данный параметр не является обязательным, значение по умолчанию - пустая строка. | +| ipcidr | string | :x: | IP CIDR, который требуется присвоить внутреннему сегменту данного ViNS.
Данный параметр не является обязательным и принимается во внимание только на стадии создания нового ViNS. Если он не задан, то платформа установит значение самостоятельно. | +| rg_id | int | :x: | Идентификатор ресурсной группы, в которой должен находиться данный ViNS.
Если требуется создать ViNS на уровне подписчика ("account"), то необходимо указать `rg_id = 0`.
Обратите внимание, что попытка изменить `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 не подключен к внешней сети, то данный параметр содержит пустую строку.
Обратите внимание, что из всех ViNS, созданных на уровне одной и той же ресурсной группы, только один может иметь подключение к внешней сети. ViNS, созданные на уровне "account", не могут иметь подключений к внешним сетям. | +| ext_net_id | int | Идентификатор внешней сети, к которой подключен данный ViNS. Признаком подключения ViNS ко внешней сети является ненулевое значение этого параметра.
Обратите внимание, что из всех 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` \ No newline at end of file diff --git a/07.02.13-Resource-функция-decort_disk-управление-дисковыми-ресурсами.md b/07.02.13-Resource-функция-decort_disk-управление-дисковыми-ресурсами.md new file mode 100644 index 0000000..381a431 --- /dev/null +++ b/07.02.13-Resource-функция-decort_disk-управление-дисковыми-ресурсами.md @@ -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"), которому принадлежит данная ресурсная группа.
Этот параметр является обязательным при идентификации уже имеющегося диска по его имени (`name`) или при создании нового диска. | +| description | string | :x: | Текстовое описание диска.
Данный параметр не является обязательным. | +| disk_id | int | :x: | Идентификатор диска. Данный параметр может использоваться только при управлении уже существующим диском.
Если этот параметр явно задан, то `name` и `account_id` игнорируются, а плагин считает, что диск с указанным `disk_id` уже существует. | +| name | string | :x: | Имя диска. Обратите внимание, что имя диска НЕ является уникальным в рамках одного и того же подписчика ("account").
При создании нового диска этот параметр является обязательным и не может быть пустым. | + +Для создания диска пользователь облачной платформы, от лица которого происходит обращение к данной функции, должен иметь как минимум доступ на запись к указанному подписчику. В противном случае возникнет ошибка доступа. + +Пользователь облачной платформы задается на стадии инициализации 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_. Может принимать одно из фиксированных значений:
"B" - признак загрузочного диска ("boot").
"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}"`. \ No newline at end of file diff --git a/07.08-Resource-функция-decort_image-управление-образом.md b/07.08-Resource-функция-decort_image-управление-образом.md deleted file mode 100644 index ae33222..0000000 --- a/07.08-Resource-функция-decort_image-управление-образом.md +++ /dev/null @@ -1,113 +0,0 @@ -Функция доступна в провайдере версии 2.0 и выше. - -**Внимание:** необходимы права администратора. - -_Resource_ функция **decort_image** служит для управления образом. - -## Аргументы -_Resource_ функция **decort_image** для создания образа принимает следующие аргументы: - -| Аргумент | Тип | Обязательный | Описание | -| --- | --- | --- | --- | -| name | string | :heavy_check_mark: | Имя образа
При изменении - изменяет название образа| -| url | string | :heavy_check_mark: | Адрес образа | -| gid | int | :heavy_check_mark: | Grid id образа | -| boot_type | string | :heavy_check_mark: | Тип загрузки образа,
возможные варианты: "bios" или "uefi"| -| image_type | string | :heavy_check_mark: | Тип образа,
возможные варианты - "linux", "windows"| -| drivers | []string | :heavy_check_mark: | Драйвера,
возможные варианты - ["KVM_X86", "SVA_KVM_X86"], ["KVM_X86"], ["SVA_KVM_X86"] | -| account_id | int | :x: |ID аккаунта владельца образа,
может быть использован как при создании, так и редактировании образа | -| username | string | :x: | Имя пользователя,
может быть использован как при создании, так и редактировании образа | -| password | string | :x: | Пароль пользователя,
может быть использован как при создании, так и редактировании образа | -| username_dl | string | :x: | Имя пользователя для загрузки бинарных данных,
может быть использован как при создании, так и редактировании образа | -| password_dl | string | :x: | Пароль пользователя для загрузки бинарных данных,
может быть использован как при создании, так и редактировании образа | -| sync | bool | :x: | Синхронное создание образа, используется при создании | -| sep_id | int | :x: | ID storage endpoint | -| pool_name | string | :x: | Пул для создания образа | -| architecture | string | :x: | Используется при создании,
архитектура системы образа
доступные значения: "X86_64"
по-умолчанию "X86_64" | -| enabled | bool | :x: | Доступность образа,
используется при редактировании ресурса | -| shared_with | []int | :x: | Настройка доступа образа аккаунтам
используется на уже созданном ресурсе,
пустой маасив - удаление всех доступов, если они были | -| computeci_id | int | :x: | Установка computeci,
используется на уже созданном ресурсе,
чтобы сбросить, необходимо передать 0 | -| enabled_stacks | []string | :x: | Доступные стаки,
используется на уже созданном ресурсе
для удаления всех доступных стаков, необходимо передать пустой массив | -| permanently | bool | :x: | Мгновенное удаление
можно использовать перед удалением | -| reason | string | :x: | Причина удаления
можно использовать перед удалением | - -## Возвращаемые значения -В случае успешного выполнения _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 = - 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` будут сохранены возвращаемые значения. \ No newline at end of file diff --git a/07.13-Resource-функция-decort_sep_config-управление-конфигурацией-sep.md b/07.13-Resource-функция-decort_sep_config-управление-конфигурацией-sep.md deleted file mode 100644 index db8d6ed..0000000 --- a/07.13-Resource-функция-decort_sep_config-управление-конфигурацией-sep.md +++ /dev/null @@ -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{
field_name string
field_value string
field_type string
} | :x: | Редактирование/добавление поля, используется при редактировании sep
 
Наименование поля
 
Значение поля
 
Тип поля. Возможные значения: str, int, dict, list, bool
 
Не использовать вместе с config | - - - -## Возвращаемые значения -В случае успешного выполнения _data source_ функция **decort_sep** возвращает в указанную при вызове переменную элемент, который состоит из следующих параметров: - -| Параметр | Тип | Описание | -| --- | --- | --- | -| sep_id | int | id storage | -| config | json string | Конфигурация sep | -| field_edit | Struct{
field_name string
field_value string
field_type string
} | Редактирование/добавление поля, используется при редактировании sep
 
Наименование поля
 
Значение поля
 
Тип поля. Возможные значения: str, int, dict, list, bool
 
  | - -## Пример использования -Пример вызова _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 >> .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" - } -} -``` diff --git a/07.14-Resource-функция-decort_sep-управление-sep.md b/07.14-Resource-функция-decort_sep-управление-sep.md deleted file mode 100644 index 0103efd..0000000 --- a/07.14-Resource-функция-decort_sep-управление-sep.md +++ /dev/null @@ -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.
Возможные значения:
des
hitachi
tatlin
dorado | -| desc | string | :x: | Описание sep, используется при создании sep | -| config | json string | :x: | Конфигурация sep. Используется при создании и редактировании sep
Не использовать вместе с 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)
Используется вместе с параметром clear_physically | -| clear_physically | bool | :x: | Физическое очищение nodes | -| field_edit | Struct{
field_name string
field_value string
field_type string
} | :x: | Редактирование/добавление поля, используется при редактировании sep
 
Наименование поля
 
Значение поля
 
Тип поля. Возможные значения: str, int, dict, list, bool
 
Не использовать вместе с 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)
Используется вместе с параметром clear_physically | -| clear_physically | bool | :x: | Физическое очищение nodes | -| enable | bool | :x: | Доступность sep, используется при создании и редактировании sep | -| field_edit | Struct{
field_name string
field_value string
field_type string
} | :x: | Редактирование/добавление поля, используется при редактировании sep
 
Наименование поля
 
Значение поля
 
Тип поля. Возможные значения: str, int, dict, list, bool
 
  | - -## Пример использования -Пример вызова _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 >> .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" - } -} -``` diff --git a/07.15-Resource-функция-decort_pcidevice-управление-устройством.md b/07.15-Resource-функция-decort_pcidevice-управление-устройством.md deleted file mode 100644 index 9d546a8..0000000 --- a/07.15-Resource-функция-decort_pcidevice-управление-устройством.md +++ /dev/null @@ -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` будут сохранены возвращаемые значения. \ No newline at end of file