diff --git a/samples b/samples deleted file mode 160000 index 7522e6a..0000000 --- a/samples +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 7522e6ab919879c2688cc2167fd8f96d722f8f92 diff --git a/samples/README.md b/samples/README.md new file mode 100644 index 0000000..230e860 --- /dev/null +++ b/samples/README.md @@ -0,0 +1,27 @@ +# Примеры применения ресурсов terraform-provider-decort +Каждый файл снабжен комментариями, которые кратко описывают возможности и параметры ресурса. +Для успешной работы необходим установленный terraform. +## Ресурсы в примерах +- data: + - grid + - grid_list + - image + - image_list + - image_list_stacks +- resources: + - image + - virtual_image + - cdrom_image + - delete_images + +## Как пользоваться примерами +1. Установить terraform +2. Установить terraform-provider-decort с помощью команды `terraform init` (выполняется автоматически), либо вручную. +3. Заменить параметр *controller_url* на ваш. +4. Заменить параметр *oauth2* на ваш. +5. Добавить ключи +*DECORT_APP_SECRET* и *DECORT_APP_ID* +в качестве переменных окружения, либо +можно добавить `app_id` и `app_secret` +в блок `provider`,что небезопасно, т.к. данные +могут быть похищены при передачи файла. diff --git a/samples/data_grid/main.tf b/samples/data_grid/main.tf new file mode 100644 index 0000000..e2f0407 --- /dev/null +++ b/samples/data_grid/main.tf @@ -0,0 +1,38 @@ +/* +Пример использования +Получение data source grid по id +*/ + +#Расскомментируйте этот код, +#и внесите необходимые правки в версию и путь, +#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером +/* +terraform { + required_providers { + decort = { + version = "1.1" + source = "digitalenergy.online/decort/decort" + } + } +} +*/ + +provider "decort" { + authenticator = "oauth2" + #controller_url = + controller_url = "https://ds1.digitalenergy.online" + #oauth2_url = + oauth2_url = "https://sso.digitalenergy.online" + allow_unverified_ssl = true +} + +data "decort_grid" "image" { + #id grid для получения информации + #обязательный параметр + #тип - число + grid_id = 1 +} + +output "test" { + value = data.decort_grid.image +} diff --git a/samples/data_grid_list/main.tf b/samples/data_grid_list/main.tf new file mode 100644 index 0000000..d32a191 --- /dev/null +++ b/samples/data_grid_list/main.tf @@ -0,0 +1,45 @@ +/* +Пример использования +Получение списка grid + +*/ + +#Расскомментируйте этот код, +#и внесите необходимые правки в версию и путь, +#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером +/* +terraform { + required_providers { + decort = { + version = "1.1" + source = "digitalenergy.online/decort/decort" + } + } +} +*/ + +provider "decort" { + authenticator = "oauth2" + #controller_url = + controller_url = "https://ds1.digitalenergy.online" + #oauth2_url = + oauth2_url = "https://sso.digitalenergy.online" + allow_unverified_ssl = true +} + + +data "decort_grid_list" "gl" { + #номер страницы для отображения + #опциональный параметр, тип - число + #если не задан - выводятся все доступные данные + #page = 2 + + #размер страницы + #опциональный параметр, тип - число + #если не задан - выводятся все доступные данные + #size = 3 +} + +output "test" { + value = data.decort_grid_list.gl +} diff --git a/samples/data_image/main.tf b/samples/data_image/main.tf new file mode 100644 index 0000000..45b3ae8 --- /dev/null +++ b/samples/data_image/main.tf @@ -0,0 +1,38 @@ +/* +Пример использования +Получение образа по id +*/ + +#Расскомментируйте этот код, +#и внесите необходимые правки в версию и путь, +#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером +/* +terraform { + required_providers { + decort = { + version = "1.1" + source = "digitalenergy.online/decort/decort" + } + } +} +*/ + +provider "decort" { + authenticator = "oauth2" + #controller_url = + controller_url = "https://ds1.digitalenergy.online" + #oauth2_url = + oauth2_url = "https://sso.digitalenergy.online" + allow_unverified_ssl = true +} + +data "decort_image" "image" { + #id образа + #обязательный параметр + #тип - число + image_id = 5912 +} + +output "test" { + value = data.decort_image.image +} diff --git a/samples/data_image_list/main.tf b/samples/data_image_list/main.tf new file mode 100644 index 0000000..6eff38e --- /dev/null +++ b/samples/data_image_list/main.tf @@ -0,0 +1,58 @@ +/* +Пример использования +Получение списка образов +*/ + + +#Расскомментируйте этот код, +#и внесите необходимые правки в версию и путь, +#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером +/* +terraform { + required_providers { + decort = { + version = "1.1" + source = "digitalenergy.online/decort/decort" + } + } +} +*/ + +provider "decort" { + authenticator = "oauth2" + #controller_url = + controller_url = "https://ds1.digitalenergy.online" + #oauth2_url = + oauth2_url = "https://sso.digitalenergy.online" + allow_unverified_ssl = true +} + +data "decort_image_list" "il" { + #номер страницы для отображения + #опциональный параметр + #тип - число + #если не задан - выводятся все доступные данные + #page = 2 + + #размер страницы + #опциональный параметр + #тип - число + #если не задан - выводятся все доступные данные + #size = 3 + + #фильтрация образов по id хранилища + #опциональный параметр + #тип - число + #если не задан - выволятся все доступные элементы + #sep_id = 123 + + #фильтрация образов по id доступных аккаунтов + #опциональный параметр + #тип - число + #если не задан - выволятся все доступные элементы + #shared_with = 123 +} + +output "test" { + value = data.decort_image_list.il +} diff --git a/samples/data_image_list_stacks/main.tf b/samples/data_image_list_stacks/main.tf new file mode 100644 index 0000000..85ce856 --- /dev/null +++ b/samples/data_image_list_stacks/main.tf @@ -0,0 +1,49 @@ +/* +Пример использования +Получение списка stack по id образа +*/ +#Расскомментируйте этот код, +#и внесите необходимые правки в версию и путь, +#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером +/* +terraform { + required_providers { + decort = { + version = "1.1" + source = "digitalenergy.online/decort/decort" + } + } +} +*/ + +provider "decort" { + authenticator = "oauth2" + #controller_url = + controller_url = "https://ds1.digitalenergy.online" + #oauth2_url = + oauth2_url = "https://sso.digitalenergy.online" + allow_unverified_ssl = true +} + +data "decort_image_list_stacks" "im" { + #id образа + #обязательный параметр + #тип - число + image_id = 6040 + + #номер страницы для отображения информации + #опциональный параметр + #тип - число + #если не задан - отображается вся доступная информация + #page = 2 + + #количество отображаемых объектов на странице + #опциональный параметр + #тип - число + #если не задан - отображается вся доступная информация + #size = 3 +} + +output "test" { + value = data.decort_image_list_stacks.im +} diff --git a/samples/resource_delete_images/main.tf b/samples/resource_delete_images/main.tf new file mode 100644 index 0000000..f7a0eaf --- /dev/null +++ b/samples/resource_delete_images/main.tf @@ -0,0 +1,63 @@ +/* +Пример использования +Ресурса delete images +Ресурс является служебным +Его можно использоваться для быстрого удаления нескольких образов +*/ + +#Расскомментируйте этот код, +#и внесите необходимые правки в версию и путь, +#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером +/* +terraform { + required_providers { + decort = { + version = "1.1" + source = "digitalenergy.online/decort/decort" + } + } +} +*/ + +provider "decort" { + authenticator = "oauth2" + #controller_url = + controller_url = "https://ds1.digitalenergy.online" + #oauth2_url = + oauth2_url = "https://sso.digitalenergy.online" + allow_unverified_ssl = true +} + +resource "decort_delete_images" "my_images" { + #массив, содержащий набор id образов для удаления + #обязательный параметр + #тип - массив чисел + image_ids = [6125] + + #параметр удаления + #опциональный тип + #по-умолчанию - false + #тип - булев тип + permanently = true + + #причина удаления + #обязательный параметр + #тип - строка + reason = "test delete" +} + +output "test" { + value = decort_delete_images.my_images +} + +/* +Применение: +1. terraform plan +2. terraform apply +3. terraform destroy + + +Примечание: +Данный ресурс не поддерживает обновления параметров, поэтому, для переиспользования +необходимо удалить старое состояние и повторить шаги выше. +*/ diff --git a/samples/resource_image/main.tf b/samples/resource_image/main.tf new file mode 100644 index 0000000..f6a78cf --- /dev/null +++ b/samples/resource_image/main.tf @@ -0,0 +1,145 @@ +/* +Пример использования +Ресурса image +Ресурс позволяет: +1. Создавать образ +2. Редактировать образ +3. Удалять образ + +*/ + +#Расскомментируйте этот код, +#и внесите необходимые правки в версию и путь, +#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером +/* +terraform { + required_providers { + decort = { + version = "1.1" + source = "digitalenergy.online/decort/decort" + } + } +} +*/ + +provider "decort" { + authenticator = "oauth2" + #controller_url = + controller_url = "https://ds1.digitalenergy.online" + #oauth2_url = + oauth2_url = "https://sso.digitalenergy.online" + allow_unverified_ssl = true +} + +resource "decort_image" "my_image" { + #имя образа + #обязательный параметр + #тип - строка + #при изменении - изменяет название созданного образа + name = "test_image_rename" + + #адрес образа + #обязательный параметр + #тип - строка + url = "https://colba.decs.online/index.php/s/G3H7AREngzeKGw2/download" + + #grid id образа + #обязательный параметр + #тип - число + gid = 212 + + #тип загрузки образа + #обязательный параметр + #тип - строка + #возможные варианты: "bios" или "uefi" + boot_type = "bios" + + #тип образа + #обязательный параметр + #тип - строка + #возможные варианты - "linux", "windows" + image_type = "linux" + + #драйвера + #обязательный параметр + #тип - массив строк + #возможные варианты - ["KVM_X86", "SVA_KVM_X86"], ["KVM_X86"], ["SVA_KVM_X86"] + drivers = ["KVM_X86", "SVA_KVM_X86"] + + #id аккаунта владельца образа + #опциональный параметр + #может быть использован как при создании, + #так и при редактировании образа + #тип данных - число + #account_id = 57252 + + #имя пользователя и пароль + #опциаональные параметры, + #могут быть использованы как при создании образа, + #так и при его редактировании + #тип - строка + #username = "Valera" + #password = "123" + + #имя пользователя и пароль для загрузки бинарных данных + #опциаональные параметры, + #могут быть использованы как при создании образа, + #так и при его редактировании + #тип - строка + #username_dl = "Valera1" + #password_dl = "1231" + + #id storage endpoint + #опциональный параметр, используется при создании + #тип - число + #sep_id = 1206 + + #пул для создания образа + #опциональный тип, используется при создании образа + #тип - строка + #pool_name = "vmstor" + + #архитектура системы образа + #опциаональный параметр, используется при создании + #тип - строка + #доступные значения: "X86_64" + #architecture = "X86_64" + + #доступность образа + #опциональный параметр, используется на уже созданном ресурсе + #тип - булево значение + #enabled = true + + #настройка доступа образа аккаунтам + #опциональный параметр, используется на уже созданном ресурсе + #тип - массив чисел + #пустой маасив - удаление всех доступов, если они были + #shared_with = [28096, 57121] + + #установка computeci + #опциональный параметр, используется на уже созданном ресурсе + #тип - число + #чтобы сбросить, необходимо передать 0 + #computeci_id = 1 + + #доступные стаки + #опциональный параметр, используется на уже созданном ресурсе + #тип - массив строк + #для удаления всех доступных стаков, необходимо передать пустой массив + #enabled_stacks = ["9"] + + #мгновенное удаление + #опциональный параметр, можно использовать перед удалением + #тип - булев тип + #permanently = true + + #причина удаления + #опциональный параметр, можно использовать перед удалением + #тип - строка + #reason = "test" + +} + +output "test" { + value = decort_image.my_image +} diff --git a/samples/resource_image_cdrom/main.tf b/samples/resource_image_cdrom/main.tf new file mode 100644 index 0000000..51793b8 --- /dev/null +++ b/samples/resource_image_cdrom/main.tf @@ -0,0 +1,127 @@ +/* +Пример использования +Ресурса cdrom image +Ресурс позволяет: +1. Создавать образ +2. Редактировать образ +3. Удалять образ + +*/ +#Расскомментируйте этот код, +#и внесите необходимые правки в версию и путь, +#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером +/* +terraform { + required_providers { + decort = { + version = "1.1" + source = "digitalenergy.online/decort/decort" + } + } +} +*/ + +provider "decort" { + authenticator = "oauth2" + #controller_url = + controller_url = "https://ds1.digitalenergy.online" + #oauth2_url = + oauth2_url = "https://sso.digitalenergy.online" + allow_unverified_ssl = true +} + +resource "decort_cdrom_image" "my_image" { + #имя образа + #обязательный параметр + #тип - строка + #при изменении - изменяет название созданного образа + name = "test_image_rename" + + #адрес образа + #обязательный параметр + #тип - строка + url = "https://colba.decs.online/index.php/s/G3H7AREngzeKGw2/download" + + #grid id образа + #обязательный параметр + #тип - число + gid = 212 + + #драйвера + #обязательный параметр + #тип - массив строк + #возможные варианты - ["KVM_X86", "SVA_KVM_X86"], ["KVM_X86"], ["SVA_KVM_X86"] + drivers = ["KVM_X86", "SVA_KVM_X86"] + + #id аккаунта владельца образа + #опциональный параметр + #может быть использован как при создании, + #так и при редактировании образа + #тип данных - число + account_id = 57252 + + #имя пользователя и пароль + #опциаональные параметры, + #могут быть использованы как при создании образа, + #так и при его редактировании + #тип - строка + username = "Valera" + password = "123" + + #имя пользователя и пароль для загрузки бинарных данных + #опциаональные параметры, + #могут быть использованы как при создании образа, + #так и при его редактировании + #тип - строка + #username_dl = "Valera1" + #password_dl = "1231" + + #id storage endpoint + #опциональный параметр, используется при создании + #тип - число + #sep_id = 1206 + + #пул для создания образа + #опциональный тип, используется при создании образа + #тип - строка + #pool_name = "vmstor" + + #архитектура системы образа + #опциаональный параметр, используется при создании + #тип - строка + #доступные значения: "X86_64" + architecture = "X86_64" + + #доступность образа + #опциональный параметр, используется на уже созданном ресурсе + #тип - булево значение + #enabled = true + + #настройка доступа образа аккаунтам + #опциональный параметр, используется на уже созданном ресурсе + #тип - массив чисел + #пустой маасив - удаление всех доступов, если они были + #shared_with = [28096, 57121] + + #установка computeci + #опциональный параметр, используется на уже созданном ресурсе + #тип - число + #чтобы сбросить, необходимо передать 0 + #computeci_id = 1 + + #доступные стаки + #опциональный параметр, используется на уже созданном ресурсе + #тип - массив строк + #для удаления всех доступных стаков, необходимо передать пустой массив + #enabled_stacks = ["9"] + + #мгновенное удаление + #опциональный параметр, можно использовать перед удалением + #тип - булев тип + #permanently = true + +} + +output "test" { + value = decort_cdrom_image.my_image +} diff --git a/samples/resource_virtual_image/main.tf b/samples/resource_virtual_image/main.tf new file mode 100644 index 0000000..913d010 --- /dev/null +++ b/samples/resource_virtual_image/main.tf @@ -0,0 +1,98 @@ +/* +Пример использования +Ресурса virtual image +Ресурс позволяет: +1. Создавать образ +2. Редактировать образ +3. Удалять образ + +*/ +#Расскомментируйте этот код, +#и внесите необходимые правки в версию и путь, +#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером +/* +terraform { + required_providers { + decort = { + version = "1.1" + source = "digitalenergy.online/decort/decort" + } + } +} +*/ + +provider "decort" { + authenticator = "oauth2" + #controller_url = + controller_url = "https://ds1.digitalenergy.online" + #oauth2_url = + oauth2_url = "https://sso.digitalenergy.online" + allow_unverified_ssl = true +} + +resource "decort_virtual_image" "my_image" { + #имя виртуального образа + #обязательный параметр + #тип - строка + name = "test_vi_im_new_rename" + + #id образа, на основе котрого будет создан виртуальный + #обязательный параметр + #тип - число + target_id = 6125 + + #изменение связи виртуального образа + #опциональный параметр, используется при редактировании ресурса + #тип - число + #link_to = 6062 + + #id аккаунта владельца образа + #опциональный параметр + #может быть использован при редактировании образа + #тип данных - число + #account_id = 57252 + + #имя пользователя и пароль + #опциаональные параметры, + #могут быть использованы при редактировании образа + #тип - строка + #username = "Valera" + #password = "123" + + #доступность образа + #опциональный параметр, используется на уже созданном ресурсе + #тип - булево значение + #enabled = false + + #настройка доступа образа аккаунтам + #опциональный параметр, используется на уже созданном ресурсе + #тип - массив чисел + #пустой маасив - удаление всех доступов, если они были + #shared_with = [28096, 57121] + + #установка computeci + #опциональный параметр, используется на уже созданном ресурсе + #тип - число + #чтобы сбросить, необходимо передать 0 + #computeci_id = 1 + + #доступные стаки + #опциональный параметр, используется на уже созданном ресурсе + #тип - массив строк + #для удаления всех доступных стаков, необходимо передать пустой массив + #enabled_stacks = ["9"] + + #мгновенное удаление + #опциональный параметр, можно использовать перед удалением + #тип - булев тип + #permanently = true + + #причина удаления + #опциональный параметр, можно использовать перед удалением + #тип - строка + #reason = "test" +} + +output "test" { + value = decort_virtual_image.my_image +}