diff --git a/CHANGELOG.md b/CHANGELOG.md
index 20b06bd..bb3c6cf 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,8 +1,128 @@
-## Version 4.8.3
+## Version 4.9.0
+
+### Добавлено
+
+#### account
+| Идентификатор
задачи | Описание |
+| --- | --- |
+| BATF-823 | Опциональное поле `desc` в resource `decort_account` в cloudapi/account, в resource `decort_cb_account` в cloudbroker/account |
+| BATF-823 | Вычисляемое поле `desc` в datasources `decort_cb_account_list` , `decort_cb_account_list_deleted`, `decort_cb_account`, `decort_cb_account_rg_list` в cloudbroker/account, в datasources `decort_account`, `decort_account_list`, `decort_account_deleted_list`, `decort_account_rg_list` в cloudapi/account |
+| BATF-832 | Опциональное поле `reason` в resource `decort_cb_account` в cloudbroker/account и в resource `decort_account` в cloudapi/account|
+
+#### audit
+| Идентификатор
задачи | Описание |
+| --- | --- |
+| BATF-826 | Опциональное поле `request_id` в datasource `decort_cb_audit_list` в cloudbroker/audit |
+| BATF-836 | Вычисляемое поле `physical_node` в datasource `decort_cb_audit_linked_jobs` в cloudbroker/audit |
+| BATF-870 | Вычисляемое поле `ttl` в datasource `decort_cb_audit` и вычисляемые поля `ttl`, `args`, `kwargs`, `result`, `timestamp_end`, `remote_addr` и `tags` в datasource `decort_cb_audit_list` в cloudbroker/audit |
+
+#### bservice
+| Идентификатор
задачи | Описание |
+| --- | --- |
+| BATF-833 | Опциональное поле `chipset` в resource `decort_bservice_group` в cloudapi/bservice |
+
+#### disks
+| Идентификатор
задачи | Описание |
+| --- | --- |
+| BATF-873 | Вычисляемые поля `size_available`, `updated_by`, `deleted_by`, `created_by`, `updated_time` и `milestones` в datasource `decort_disk_list` и `decort_disk_list_deleted` в cloudapi/disks |
+| BATF-873 | Вычисляемые поля `size_available`, `updated_by`, `deleted_by`, `created_by`, `updated_time`, `machine_id`, `machine_name` и `milestones` в datasource `decort_disk` в cloudapi/disks и в datasource `decort_cb_disk` в cloudbroker/disks |
+| BATF-873 | Вычисляемые поля `size_available`, `updated_by`, `deleted_by`, `created_by` и `updated_time` в datasource `decort_cb_disk_list` в cloudbroker/disks |
+| BATF-873 | Вычисляемые поля `machine_id`, `machine_name`, `updated_by`, `deleted_by`, `created_by` и `updated_time` в resource `decort_disk` в cloudapi/disks и в resource `decort_cb_disk` в cloudbroker/disks |
+
+#### extnet
+| Идентификатор
задачи | Описание |
+| --- | --- |
+| BATF-861 | Опциональное поле `ovs_bridge` в datasource `decort_extnet_list` в cloudapi/extnet |
+| BATF-856 | Вычисляемое поле `ntp` в datasource `decort_extnet` в cloudapi/extnet и в datasource `decort_cb_extnet` в cloudbroker/extnet |
+
+#### image
+| Идентификатор
задачи | Описание |
+| --- | --- |
+| BATF-831 | Вычисляемое поле `snapshot_id` в datasource `decort_image` и resource `decort_image`, `decort_image_from_blank_compute`, `decort_image_from_platform_disk`, `decort_image_virtual` в cloudapi/image |
+
+#### k8s
+| Идентификатор
задачи | Описание |
+| --- | --- |
+| BATF-823 | Вычисляемое поле `desc` в datasources `decort_k8s`, `decort_k8s_list` в cloudapi/k8s|
+
+#### kvmvm
+| Идентификатор
задачи | Описание |
+| --- | --- |
+| BATF-828 | Опциональное поле `stack_name` в datasource `decort_cb_kvmvm_list` в cloudbroker/kvmvm |
+| BATF-828 | Вычисляемое поле `stack_name` в datasource `decort_cb_kvmvm_list_deleted` в cloudbroker/kvmvm |
+| BATF-829 | Опциональные поля `loader_type`, `boot_type`, `hot_resize`, `network_interface_naming` в resource `decort_kvmvm` в cloudapi/kvmvm и resource `decort_cb_kvmvm` в cloudbroker/kvmvm|
+| BATF-829 | Вычисляемые поля `loader_type`, `boot_type`, `hot_resize`, `network_interface_naming` в datasources `decort_kvmvm`, `decort_kvmvm_list`, `decort_kvmvm_list_deleted` в cloudapi/kvmvm и datasources `decort_cb_kvmvm`, `decort_cb_kvmvm_list`, `decort_cb_kvmvm_list_deleted` в cloudbroker/kvmvm|
+| BATF-830 | Вычисляемое поле `present_to` в resources `decort_cb_kvmvm` в cloudbroker/kvmvm и `decort_kvmvm` в cloudapi/kvmvm |
+| BATF-837 | Вычисляемое поле `nid` в datasource `decort_cb_kvmvm_list` в cloudbroker/kvmvm |
+| BATF-866 | Вычисляемое поле `size_available` в datasources `decort_cb_kvmvm` в cloudbroker/kvmvm и `decort_kvmvm` в cloudapi/kvmvm |
+
+#### location
+| Идентификатор
задачи | Описание |
+| --- | --- |
+| BATF-896 | Опциональное поле `sdn_support` в datasource `decort_locations_list` в cloudapi/location |
+
+#### sep
+| Идентификатор
задачи | Описание |
+| --- | --- |
+| BATF-822 | Datasources `decort_sep_and_pools_available_list` в cloudapi/sep и datasource `decort_cb_sep_and_pools_available_list` в cloudbroker/sep |
+| BATF-839 | Datasource `decort_cb_sep_template` в cloudbroker/sep |
+
+#### vins
+| Идентификатор
задачи | Описание |
+| --- | --- |
+| BATF-821 | Опциональное поле `status` в datasource `decort_vins_list` в cloudapi/vins и datasource `decort_cb_vins_list` в cloudbroker/vins |
### Исправлено
+#### disks
+| Идентификатор
задачи | Описание |
+| --- | --- |
+| BATF-819 | Изменен тип поля `type` с Optional на Computed в resource `decort_disk` в cloudapi/disks и resource `decort_cb_disk` в cloudbroker/disks |
+| BATF-830 | Изменен тип поля `present_to` с []int на map[string]int в datasources `decort_disk`, `decort_disk_list`, `decort_disk_replication`, в resources `decort_disk`, `decort_disk_replication` в cloudapi/disks, в datasources `decort_cb_disk`, `decort_cb_disk_replication`, `decort_cb_disk_list`, `decort_cb_disk_list_deleted`, `decort_cb_disk_list_unattached` и resources `decort_cb_disk`, `decort_cb_disk_replication` в cloudbroker/disks |
+| BATF-835 | Изменен тип поля `gid` с Required на Computed в resource `decort_disk` в cloudapi/disks и resource `decort_cb_disk` в cloudbroker/disks |
+
+#### image
+| Идентификатор
задачи | Описание |
+| --- | --- |
+| BATF-830 | Изменен тип поля `present_to` с []int на map[string]int в datasource `decort_image`, resource `decort_virtual_image`, `decort_image_from_platform_disk`, `decort_image`, `decort_image_from_blank_compute` в cloudapi/image, в datasource `decort_cb_image` и resources `decort_cb_cdrom_image`, `decort_cb_virtual_image`, `decort_cb_image`, `decort_cb_image_from_blank_compute`, `decort_cb_image_from_platform_disk` в cloudbroker/image |
+| BATF-835 | Изменен тип поля `gid` с Required на Computed в resource `decort_cb_image` и `decort_cb_image_cdrom` в cloudbroker/image |
+| BATF-874 | Изменено возможное для ввода значение с `other` на `unknown` для поля `type` в resources `decort_image_from_blank_compute`, `decort_image_from_platform_disk`, `decort_image` в cloudapi/image и для поля `image_type` в resources `decort_cb_image_from_blank_compute`, `decort_cb_image_from_platform_disk` в cloudbroker/image|
+| BATF-917 | Изменен тип поля `sep_id` с Optional на Computed в resource `decort_image_from_blank_compute`, `decort_image_from_platform_disk` в cloudapi/image и resources `decort_cb_image_from_blank_compute`, `decort_cb_image_from_platform_disk` в cloudbroker/image|
+
+#### kvmvm
+| Идентификатор
задачи | Описание |
+| --- | --- |
+| BATF-830 | Изменен тип поля `present_to` с []int на map[string]int в datasources `decort_kvmvm` в cloudapi/kvmvm и `decort_cb_kvmvm` в cloudbroker/kvmvm|
+| BATF-859 | Изменен тип поля `pinned` с bool на int в resource `decort_cb_kvmvm` и data sources `decort_cb_kvmvm`, `decort_cb_kvmvm_list` и `decort_cb_kvmvm_list_deleted` в cloudbroker/kvmvm |
+| BATF-868 | Изменен тип поля `mac` с computed на optional/computed в resources `decort_kvmvm`, `decort_cb_kvmvm` в cloudapi/kvmvm и cloudbroker/kvmvm|
+| BATF-897 | Убраны ограничения по количеству сетей и дисков в resources `decort_kvmvm`, `decort_cb_kvmvm` в cloudapi/kvmvm и cloudbroker/kvmvm|
+| BATF-919 | Изменено поведение ВМ при удалении дисков из поля `extra_disks`, теперь ВМ не останавливатся при отключении дисков |
+| BATF-928 | Изменен тип поля `vgpus` c []int на []struct в resource `decort_kvmvm`, datasource `decort_kvmvm` в cloudapi/kvmvm и resource `decort_cb_kvmvm`, datasource `decort_cb_kvmvm` в cloudbroker/kvmvm |
+
#### vins
| Идентификатор
задачи | Описание |
| --- | --- |
-| BATF-880 | Исправлена ошибка создания resource `decort_vins` с указанным блоком `ext_net` в cloudapi/vins |
\ No newline at end of file
+| BATF-881 | Исправлена ошибка создания resource `decort_vins` с указанным блоком `ext_net` в cloudapi/vins |
+
+### Удалено
+
+#### account
+| Идентификатор
задачи | Описание |
+| --- | --- |
+| BATF-922 | Обязательное поле `username` в resource `decort_account` в cloudapi/account |
+
+#### disks
+| Идентификатор
задачи | Описание |
+| --- | --- |
+| BATF-819 | Опциональное поле `ssd_size` в resource `decort_cb_disk` в cloudbroker/disks |
+
+#### kvmvm
+| Идентификатор
задачи | Описание |
+| --- | --- |
+| BATF-857 | Опциональное поле `depresent` в resource `decort_cb_kvmvm` в cloudbroker/kvmvm |
+
+#### rg
+| Идентификатор
задачи | Описание |
+| --- | --- |
+| BATF-838 | Опциональное поле `register_computes` в resource `decort_cb_rg` в cloudbroker/rg и `decort_resgroup` в cloudapi/rg |
+| BATF-838 | Вычисляемое поле `register_computes` в datasourses `decort_cb_rg`, `decort_cb_rg_list`, `decort_cb_rg_list_deleted` в cloudbroker/rg и `decort_resgroup`, `decort_rg_list`, `decort_rg_list_deleted` в cloudapi/rg |
\ No newline at end of file
diff --git a/Makefile b/Makefile
index cd69a4e..437549a 100644
--- a/Makefile
+++ b/Makefile
@@ -7,7 +7,7 @@ ZIPDIR = ./zip
BINARY=${NAME}
WORKPATH= ./examples/terraform.d/plugins/${HOSTNAME}/${NAMESPACE}/${NAMESPACE}/${VERSION}/${OS_ARCH}
MAINPATH = ./cmd/decort/
-VERSION=4.8.3
+VERSION=4.9.0
OS_ARCH=$(shell go env GOHOSTOS)_$(shell go env GOHOSTARCH)
FILES = ${BINARY}_${VERSION}_darwin_amd64\
diff --git a/README.md b/README.md
index 55d4fb0..7f2e2ed 100644
--- a/README.md
+++ b/README.md
@@ -6,6 +6,7 @@ Terraform provider для платформы Digital Energy Cloud Orchestration
| Версия DECORT API | Версия провайдера Terraform |
| ------ | ------ |
+| 4.3.0 | 4.9.x |
| 4.2.0 | 4.8.x |
| 4.1.0 | 4.7.x |
| 4.0.0 | 4.6.x |
@@ -47,7 +48,8 @@ Terraform provider для платформы Digital Energy Cloud Orchestration
- Работа с resource groups,
- Работа с snapshots,
- Работа с stacks,
- - Работа с VINS.
+ - Работа с VINS,
+ - Работа с SEPs.
- Режим администратора:
- Работа с accounts,
diff --git a/docs/data-sources/account.md b/docs/data-sources/account.md
index f15b6aa..e2aa1f3 100644
--- a/docs/data-sources/account.md
+++ b/docs/data-sources/account.md
@@ -40,6 +40,7 @@ description: |-
- `deactivation_time` (Number)
- `deleted_by` (String)
- `deleted_time` (Number)
+- `desc` (String)
- `displayname` (String)
- `guid` (Number)
- `id` (String) The ID of this resource.
diff --git a/docs/data-sources/account_deleted_list.md b/docs/data-sources/account_deleted_list.md
index ddcb0f4..551adbd 100644
--- a/docs/data-sources/account_deleted_list.md
+++ b/docs/data-sources/account_deleted_list.md
@@ -51,6 +51,7 @@ Read-Only:
- `compute_features` (List of String)
- `created_time` (Number)
- `deleted_time` (Number)
+- `desc` (String)
- `status` (String)
- `updated_time` (Number)
diff --git a/docs/data-sources/account_list.md b/docs/data-sources/account_list.md
index c322034..f3e3952 100644
--- a/docs/data-sources/account_list.md
+++ b/docs/data-sources/account_list.md
@@ -52,6 +52,7 @@ Read-Only:
- `compute_features` (List of String)
- `created_time` (Number)
- `deleted_time` (Number)
+- `desc` (String)
- `status` (String)
- `updated_time` (Number)
diff --git a/docs/data-sources/account_rg_list.md b/docs/data-sources/account_rg_list.md
index ed9b0bd..01e73a1 100644
--- a/docs/data-sources/account_rg_list.md
+++ b/docs/data-sources/account_rg_list.md
@@ -56,6 +56,7 @@ Read-Only:
- `created_time` (Number)
- `deleted_by` (String)
- `deleted_time` (Number)
+- `desc` (String)
- `milestones` (Number)
- `resources` (List of Object) (see [below for nested schema](#nestedobjatt--items--resources))
- `rg_id` (Number)
diff --git a/docs/data-sources/bservice_group.md b/docs/data-sources/bservice_group.md
index 752175f..d7af6b5 100644
--- a/docs/data-sources/bservice_group.md
+++ b/docs/data-sources/bservice_group.md
@@ -72,6 +72,7 @@ Optional:
Read-Only:
+- `chipset` (String)
- `id` (Number)
- `ip_addresses` (List of String)
- `name` (String)
diff --git a/docs/data-sources/cb_account.md b/docs/data-sources/cb_account.md
index ce60b35..b574a41 100644
--- a/docs/data-sources/cb_account.md
+++ b/docs/data-sources/cb_account.md
@@ -39,6 +39,7 @@ description: |-
- `deactivation_time` (Number)
- `deleted_by` (String)
- `deleted_time` (Number)
+- `desc` (String)
- `displayname` (String)
- `guid` (Number)
- `id` (String) The ID of this resource.
diff --git a/docs/data-sources/cb_account_list.md b/docs/data-sources/cb_account_list.md
index 592b201..d7b06c8 100644
--- a/docs/data-sources/cb_account_list.md
+++ b/docs/data-sources/cb_account_list.md
@@ -61,6 +61,7 @@ Read-Only:
- `deactivation_time` (Number)
- `deleted_by` (String)
- `deleted_time` (Number)
+- `desc` (String)
- `displayname` (String)
- `guid` (Number)
- `meta` (List of String)
diff --git a/docs/data-sources/cb_account_list_deleted.md b/docs/data-sources/cb_account_list_deleted.md
index cdc1cf1..8ebf8ce 100644
--- a/docs/data-sources/cb_account_list_deleted.md
+++ b/docs/data-sources/cb_account_list_deleted.md
@@ -60,6 +60,7 @@ Read-Only:
- `deactivation_time` (Number)
- `deleted_by` (String)
- `deleted_time` (Number)
+- `desc` (String)
- `displayname` (String)
- `guid` (Number)
- `meta` (List of String)
diff --git a/docs/data-sources/cb_account_rg_list.md b/docs/data-sources/cb_account_rg_list.md
index 2d336d8..2a1617e 100644
--- a/docs/data-sources/cb_account_rg_list.md
+++ b/docs/data-sources/cb_account_rg_list.md
@@ -56,6 +56,7 @@ Read-Only:
- `created_time` (Number)
- `deleted_by` (String)
- `deleted_time` (Number)
+- `desc` (String)
- `milestones` (Number)
- `resources` (List of Object) (see [below for nested schema](#nestedobjatt--items--resources))
- `rg_id` (Number)
diff --git a/docs/data-sources/cb_audit.md b/docs/data-sources/cb_audit.md
index 3d93830..9d1edcc 100644
--- a/docs/data-sources/cb_audit.md
+++ b/docs/data-sources/cb_audit.md
@@ -37,6 +37,7 @@ description: |-
- `tags` (String)
- `timestamp` (Number)
- `timestamp_end` (Number)
+- `ttl` (String)
- `user` (String)
diff --git a/docs/data-sources/cb_audit_linked_jobs.md b/docs/data-sources/cb_audit_linked_jobs.md
index 4aef310..c2c4f40 100644
--- a/docs/data-sources/cb_audit_linked_jobs.md
+++ b/docs/data-sources/cb_audit_linked_jobs.md
@@ -45,6 +45,7 @@ Read-Only:
- `cmd` (String)
- `guid` (String)
- `nid` (Number)
+- `physical_node` (Boolean)
- `state` (String)
- `time_create` (Number)
- `time_start` (Number)
diff --git a/docs/data-sources/cb_audit_list.md b/docs/data-sources/cb_audit_list.md
index 0c39fcc..6467dc5 100644
--- a/docs/data-sources/cb_audit_list.md
+++ b/docs/data-sources/cb_audit_list.md
@@ -21,6 +21,7 @@ description: |-
- `max_status_code` (Number) find by HTTP max status code
- `min_status_code` (Number) find by HTTP min status code
- `page` (Number) page number
+- `request_id` (String) request id
- `size` (Number) page size
- `sort_by` (String) sort by one of supported fields, format +|-(field)
- `timeouts` (Block, Optional) (see [below for nested schema](#nestedblock--timeouts))
@@ -48,9 +49,16 @@ Optional:
Read-Only:
+- `args` (String)
- `call` (String)
- `guid` (String)
+- `kwargs` (String)
+- `remote_addr` (String)
- `responsetime` (Number)
+- `result` (String)
- `status_code` (Number)
+- `tags` (String)
- `timestamp` (Number)
+- `timestamp_end` (Number)
+- `ttl` (String)
- `user` (String)
diff --git a/docs/data-sources/cb_disk.md b/docs/data-sources/cb_disk.md
index e757214..b5d5546 100644
--- a/docs/data-sources/cb_disk.md
+++ b/docs/data-sources/cb_disk.md
@@ -30,7 +30,9 @@ description: |-
- `acl` (String)
- `boot_partition` (Number)
- `computes` (List of Object) (see [below for nested schema](#nestedatt--computes))
+- `created_by` (String)
- `created_time` (Number)
+- `deleted_by` (String)
- `deleted_time` (Number)
- `desc` (String)
- `destruction_time` (Number)
@@ -45,6 +47,8 @@ description: |-
- `iotune` (List of Object) (see [below for nested schema](#nestedatt--iotune))
- `iqn` (String)
- `login` (String)
+- `machine_id` (Number)
+- `machine_name` (String)
- `milestones` (Number)
- `order` (Number)
- `params` (String)
@@ -52,7 +56,7 @@ description: |-
- `passwd` (String)
- `pci_slot` (Number)
- `pool` (String)
-- `present_to` (List of Number)
+- `present_to` (Map of Number)
- `purge_attempts` (Number)
- `purge_time` (Number)
- `reality_device_number` (Number)
@@ -64,12 +68,15 @@ description: |-
- `sep_id` (Number)
- `sep_type` (String)
- `shareable` (Boolean)
+- `size_available` (Number)
- `size_max` (Number)
- `size_used` (Number)
- `snapshots` (List of Object) (see [below for nested schema](#nestedatt--snapshots))
- `status` (String)
- `tech_status` (String)
- `type` (String)
+- `updated_by` (String)
+- `updated_time` (Number)
- `vmid` (Number)
diff --git a/docs/data-sources/cb_disk_list.md b/docs/data-sources/cb_disk_list.md
index 44b60c9..931b348 100644
--- a/docs/data-sources/cb_disk_list.md
+++ b/docs/data-sources/cb_disk_list.md
@@ -57,7 +57,9 @@ Read-Only:
- `acl` (String)
- `boot_partition` (Number)
- `computes` (List of Object) (see [below for nested schema](#nestedobjatt--items--computes))
+- `created_by` (String)
- `created_time` (Number)
+- `deleted_by` (String)
- `deleted_time` (Number)
- `desc` (String)
- `destruction_time` (Number)
@@ -81,7 +83,7 @@ Read-Only:
- `passwd` (String)
- `pci_slot` (Number)
- `pool` (String)
-- `present_to` (List of Number)
+- `present_to` (Map of Number)
- `purge_attempts` (Number)
- `purge_time` (Number)
- `reality_device_number` (Number)
@@ -93,12 +95,15 @@ Read-Only:
- `sep_id` (Number)
- `sep_type` (String)
- `shareable` (Boolean)
+- `size_available` (Number)
- `size_max` (Number)
- `size_used` (Number)
- `snapshots` (List of Object) (see [below for nested schema](#nestedobjatt--items--snapshots))
- `status` (String)
- `tech_status` (String)
- `type` (String)
+- `updated_by` (String)
+- `updated_time` (Number)
- `vmid` (Number)
diff --git a/docs/data-sources/cb_disk_list_deleted.md b/docs/data-sources/cb_disk_list_deleted.md
index 23b7431..aba2377 100644
--- a/docs/data-sources/cb_disk_list_deleted.md
+++ b/docs/data-sources/cb_disk_list_deleted.md
@@ -54,7 +54,9 @@ Read-Only:
- `acl` (String)
- `boot_partition` (Number)
- `computes` (List of Object) (see [below for nested schema](#nestedobjatt--items--computes))
+- `created_by` (String)
- `created_time` (Number)
+- `deleted_by` (String)
- `deleted_time` (Number)
- `desc` (String)
- `destruction_time` (Number)
@@ -78,7 +80,7 @@ Read-Only:
- `passwd` (String)
- `pci_slot` (Number)
- `pool` (String)
-- `present_to` (List of Number)
+- `present_to` (Map of Number)
- `purge_attempts` (Number)
- `purge_time` (Number)
- `reality_device_number` (Number)
@@ -90,12 +92,15 @@ Read-Only:
- `sep_id` (Number)
- `sep_type` (String)
- `shareable` (Boolean)
+- `size_available` (Number)
- `size_max` (Number)
- `size_used` (Number)
- `snapshots` (List of Object) (see [below for nested schema](#nestedobjatt--items--snapshots))
- `status` (String)
- `tech_status` (String)
- `type` (String)
+- `updated_by` (String)
+- `updated_time` (Number)
- `vmid` (Number)
diff --git a/docs/data-sources/cb_disk_list_unattached.md b/docs/data-sources/cb_disk_list_unattached.md
index d4b9869..8f37d86 100644
--- a/docs/data-sources/cb_disk_list_unattached.md
+++ b/docs/data-sources/cb_disk_list_unattached.md
@@ -77,7 +77,7 @@ Read-Only:
- `passwd` (String)
- `pci_slot` (Number)
- `pool` (String)
-- `present_to` (List of Number)
+- `present_to` (Map of Number)
- `purge_attempts` (Number)
- `purge_time` (Number)
- `reality_device_number` (Number)
diff --git a/docs/data-sources/cb_disk_replication.md b/docs/data-sources/cb_disk_replication.md
index c230f43..e9f8843 100644
--- a/docs/data-sources/cb_disk_replication.md
+++ b/docs/data-sources/cb_disk_replication.md
@@ -53,7 +53,7 @@ description: |-
- `passwd` (String)
- `pci_slot` (Number)
- `pool` (String)
-- `present_to` (List of Number)
+- `present_to` (Map of Number)
- `purge_attempts` (Number)
- `purge_time` (Number)
- `reality_device_number` (Number)
diff --git a/docs/data-sources/cb_extnet.md b/docs/data-sources/cb_extnet.md
index 06e2048..7e33852 100644
--- a/docs/data-sources/cb_extnet.md
+++ b/docs/data-sources/cb_extnet.md
@@ -43,6 +43,7 @@ description: |-
- `name` (String)
- `network` (String)
- `network_id` (Number)
+- `ntp` (List of String)
- `ovs_bridge` (String)
- `pre_reservations_num` (Number)
- `prefix` (Number)
diff --git a/docs/data-sources/cb_image.md b/docs/data-sources/cb_image.md
index 6f33485..f5a9b6c 100644
--- a/docs/data-sources/cb_image.md
+++ b/docs/data-sources/cb_image.md
@@ -50,7 +50,7 @@ description: |-
- `network_interface_naming` (String)
- `password` (String) Optional password for the image
- `pool_name` (String) pool for image create
-- `present_to` (List of Number)
+- `present_to` (Map of Number)
- `provider_name` (String)
- `purge_attempts` (Number)
- `reference_id` (String)
diff --git a/docs/data-sources/cb_image_list.md b/docs/data-sources/cb_image_list.md
index 826baa1..4477dda 100644
--- a/docs/data-sources/cb_image_list.md
+++ b/docs/data-sources/cb_image_list.md
@@ -79,7 +79,7 @@ Read-Only:
- `network_interface_naming` (String)
- `password` (String)
- `pool_name` (String)
-- `present_to` (List of Number)
+- `present_to` (Map of Number)
- `provider_name` (String)
- `purge_attempts` (Number)
- `reference_id` (String)
diff --git a/docs/data-sources/cb_kvmvm.md b/docs/data-sources/cb_kvmvm.md
index 792ebae..da2b433 100644
--- a/docs/data-sources/cb_kvmvm.md
+++ b/docs/data-sources/cb_kvmvm.md
@@ -37,6 +37,7 @@ description: |-
- `boot_disk_id` (Number)
- `boot_disk_size` (Number)
- `boot_order` (List of String)
+- `boot_type` (String)
- `cd_image_id` (Number)
- `chipset` (String)
- `clone_reference` (Number)
@@ -55,11 +56,13 @@ description: |-
- `driver` (String)
- `gid` (Number)
- `guid` (Number)
+- `hot_resize` (Boolean)
- `hp_backed` (Boolean)
- `id` (String) The ID of this resource.
- `image_id` (Number)
- `image_name` (String)
- `interfaces` (List of Object) (see [below for nested schema](#nestedatt--interfaces))
+- `loader_type` (String)
- `lock_status` (String)
- `manager_id` (Number)
- `manager_type` (String)
@@ -72,11 +75,12 @@ description: |-
- `natable_vins_network` (String)
- `natable_vins_network_name` (String)
- `need_reboot` (Boolean)
+- `network_interface_naming` (String)
- `numa_affinity` (String)
- `numa_node_id` (Number)
- `os_users` (List of Object) (see [below for nested schema](#nestedatt--os_users))
- `pci_devices` (List of Number)
-- `pinned` (Boolean)
+- `pinned` (Number)
- `pool` (String)
- `preferred_cpu` (List of Number)
- `ram` (Number)
@@ -99,7 +103,7 @@ description: |-
- `updated_time` (Number)
- `user_data` (String)
- `user_managed` (Boolean)
-- `vgpus` (List of Number)
+- `vgpus` (List of Object) List of virtual GPUs (see [below for nested schema](#nestedatt--vgpus))
- `virtual_image_id` (Number)
- `virtual_image_name` (String)
- `vnc_password` (String)
@@ -183,7 +187,7 @@ Read-Only:
- `passwd` (String)
- `pci_slot` (Number)
- `pool` (String)
-- `present_to` (List of Number)
+- `present_to` (Map of Number)
- `purge_attempts` (Number)
- `purge_time` (Number)
- `reality_device_number` (Number)
@@ -194,6 +198,7 @@ Read-Only:
- `role` (String)
- `sep_id` (Number)
- `shareable` (Boolean)
+- `size_available` (Number)
- `size_max` (Number)
- `size_used` (Number)
- `snapshots` (List of Object) (see [below for nested schema](#nestedobjatt--disks--snapshots))
@@ -332,3 +337,29 @@ Read-Only:
- `key` (String)
- `val` (String)
+
+
+
+### Nested Schema for `vgpus`
+
+Read-Only:
+
+- `account_id` (Number)
+- `bus_number` (Number)
+- `created_time` (Number)
+- `deleted_time` (Number)
+- `gid` (Number)
+- `guid` (Number)
+- `id` (Number)
+- `last_claimed_by` (Number)
+- `last_update_time` (Number)
+- `mode` (String)
+- `pci_slot` (Number)
+- `pgpuid` (Number)
+- `profile_id` (Number)
+- `ram` (Number)
+- `reference_id` (String)
+- `rg_id` (Number)
+- `status` (String)
+- `type` (String)
+- `vmid` (Number)
diff --git a/docs/data-sources/cb_kvmvm_list.md b/docs/data-sources/cb_kvmvm_list.md
index 2aaec00..8ebacf9 100644
--- a/docs/data-sources/cb_kvmvm_list.md
+++ b/docs/data-sources/cb_kvmvm_list.md
@@ -33,6 +33,7 @@ description: |-
- `size` (Number)
- `sort_by` (String) sort by one of supported fields, format +|-(field)
- `stack_id` (Number) Find by stack ID
+- `stack_name` (String) Find by node name.
- `status` (String) Find by status
- `tech_status` (String) Find by tech status
- `timeouts` (Block, Optional) (see [below for nested schema](#nestedblock--timeouts))
@@ -67,6 +68,7 @@ Read-Only:
- `arch` (String)
- `auto_start_w_node` (Boolean)
- `boot_order` (List of String)
+- `boot_type` (String)
- `bootdisk_size` (Number)
- `cd_image_id` (Number)
- `chipset` (String)
@@ -87,9 +89,11 @@ Read-Only:
- `driver` (String)
- `gid` (Number)
- `guid` (Number)
+- `hot_resize` (Boolean)
- `hp_backed` (Boolean)
- `image_id` (Number)
- `interfaces` (List of Object) (see [below for nested schema](#nestedobjatt--items--interfaces))
+- `loader_type` (String)
- `lock_status` (String)
- `manager_id` (Number)
- `manager_type` (String)
@@ -97,10 +101,12 @@ Read-Only:
- `milestones` (Number)
- `name` (String)
- `need_reboot` (Boolean)
+- `network_interface_naming` (String)
+- `nid` (Number)
- `numa_affinity` (String)
- `numa_node_id` (Number)
- `os_users` (List of Object) (see [below for nested schema](#nestedobjatt--items--os_users))
-- `pinned` (Boolean)
+- `pinned` (Number)
- `preferred_cpu` (List of Number)
- `ram` (Number)
- `reference_id` (String)
@@ -111,6 +117,7 @@ Read-Only:
- `rg_name` (String)
- `snap_sets` (List of Object) (see [below for nested schema](#nestedobjatt--items--snap_sets))
- `stack_id` (Number)
+- `stack_name` (String)
- `stateless_sep_id` (Number)
- `stateless_sep_type` (String)
- `status` (String)
diff --git a/docs/data-sources/cb_kvmvm_list_deleted.md b/docs/data-sources/cb_kvmvm_list_deleted.md
index 25d2df8..a085bb8 100644
--- a/docs/data-sources/cb_kvmvm_list_deleted.md
+++ b/docs/data-sources/cb_kvmvm_list_deleted.md
@@ -62,8 +62,10 @@ Read-Only:
- `arch` (String)
- `auto_start_w_node` (Boolean)
- `boot_order` (List of String)
+- `boot_type` (String)
- `bootdisk_size` (Number)
- `cd_image_id` (Number)
+- `chipset` (String)
- `clone_reference` (Number)
- `clones` (List of Number)
- `compute_id` (Number)
@@ -81,9 +83,11 @@ Read-Only:
- `driver` (String)
- `gid` (Number)
- `guid` (Number)
+- `hot_resize` (Boolean)
- `hp_backed` (Boolean)
- `image_id` (Number)
- `interfaces` (List of Object) (see [below for nested schema](#nestedobjatt--items--interfaces))
+- `loader_type` (String)
- `lock_status` (String)
- `manager_id` (Number)
- `manager_type` (String)
@@ -91,10 +95,11 @@ Read-Only:
- `milestones` (Number)
- `name` (String)
- `need_reboot` (Boolean)
+- `network_interface_naming` (String)
- `numa_affinity` (String)
- `numa_node_id` (Number)
- `os_users` (List of Object) (see [below for nested schema](#nestedobjatt--items--os_users))
-- `pinned` (Boolean)
+- `pinned` (Number)
- `preferred_cpu` (List of Number)
- `ram` (Number)
- `reference_id` (String)
@@ -105,6 +110,7 @@ Read-Only:
- `rg_name` (String)
- `snap_sets` (List of Object) (see [below for nested schema](#nestedobjatt--items--snap_sets))
- `stack_id` (Number)
+- `stack_name` (String)
- `stateless_sep_id` (Number)
- `stateless_sep_type` (String)
- `status` (String)
@@ -172,6 +178,7 @@ Read-Only:
Read-Only:
+- `bus_number` (Number)
- `conn_id` (Number)
- `conn_type` (String)
- `def_gw` (String)
@@ -179,8 +186,10 @@ Read-Only:
- `flip_group_id` (Number)
- `guid` (String)
- `ip_address` (String)
+- `libvirt_settings` (List of Object) (see [below for nested schema](#nestedobjatt--items--interfaces--libvirt_settings))
- `listen_ssh` (Boolean)
- `mac` (String)
+- `mtu` (Number)
- `name` (String)
- `net_id` (Number)
- `net_type` (String)
@@ -192,6 +201,20 @@ Read-Only:
- `type` (String)
- `vnfs` (List of Number)
+
+### Nested Schema for `items.interfaces.libvirt_settings`
+
+Read-Only:
+
+- `event_idx` (String)
+- `guid` (String)
+- `ioeventfd` (String)
+- `queues` (Number)
+- `rx_queue_size` (Number)
+- `tx_queue_size` (Number)
+- `txmode` (String)
+
+
### Nested Schema for `items.interfaces.qos`
diff --git a/docs/data-sources/cb_rg.md b/docs/data-sources/cb_rg.md
index 10cc1b7..0b1e32a 100644
--- a/docs/data-sources/cb_rg.md
+++ b/docs/data-sources/cb_rg.md
@@ -46,7 +46,6 @@ description: |-
- `lock_status` (String)
- `milestones` (Number)
- `name` (String)
-- `register_computes` (Boolean)
- `resource_limits` (List of Object) (see [below for nested schema](#nestedatt--resource_limits))
- `resource_types` (List of String)
- `secret` (String)
diff --git a/docs/data-sources/cb_rg_list.md b/docs/data-sources/cb_rg_list.md
index ce5790b..c8d4c9e 100644
--- a/docs/data-sources/cb_rg_list.md
+++ b/docs/data-sources/cb_rg_list.md
@@ -70,7 +70,6 @@ Read-Only:
- `lock_status` (String)
- `milestones` (Number)
- `name` (String)
-- `register_computes` (Boolean)
- `resource_limits` (List of Object) (see [below for nested schema](#nestedobjatt--items--resource_limits))
- `resource_types` (List of String)
- `rg_id` (Number)
diff --git a/docs/data-sources/cb_rg_list_deleted.md b/docs/data-sources/cb_rg_list_deleted.md
index 6c3a5fb..62db33b 100644
--- a/docs/data-sources/cb_rg_list_deleted.md
+++ b/docs/data-sources/cb_rg_list_deleted.md
@@ -68,7 +68,6 @@ Read-Only:
- `lock_status` (String)
- `milestones` (Number)
- `name` (String)
-- `register_computes` (Boolean)
- `resource_limits` (List of Object) (see [below for nested schema](#nestedobjatt--items--resource_limits))
- `resource_types` (List of String)
- `rg_id` (Number)
diff --git a/docs/data-sources/cb_sep_and_pools_available_list.md b/docs/data-sources/cb_sep_and_pools_available_list.md
new file mode 100644
index 0000000..b6c4f0b
--- /dev/null
+++ b/docs/data-sources/cb_sep_and_pools_available_list.md
@@ -0,0 +1,59 @@
+---
+# generated by https://github.com/hashicorp/terraform-plugin-docs
+page_title: "decort_cb_sep_and_pools_available_list Data Source - terraform-provider-decort"
+subcategory: ""
+description: |-
+
+---
+
+# decort_cb_sep_and_pools_available_list (Data Source)
+
+
+
+
+
+
+## Schema
+
+### Required
+
+- `account_id` (Number) Account ID
+
+### Optional
+
+- `rg_id` (Number) Resource group ID
+- `timeouts` (Block, Optional) (see [below for nested schema](#nestedblock--timeouts))
+
+### Read-Only
+
+- `entry_count` (Number) Number of available SEP entries
+- `id` (String) The ID of this resource.
+- `items` (List of Object) List of available SEPs (see [below for nested schema](#nestedatt--items))
+
+
+### Nested Schema for `timeouts`
+
+Optional:
+
+- `default` (String)
+- `read` (String)
+
+
+
+### Nested Schema for `items`
+
+Read-Only:
+
+- `pools` (List of Object) (see [below for nested schema](#nestedobjatt--items--pools))
+- `sep_id` (Number)
+- `sep_name` (String)
+- `sep_type` (String)
+
+
+### Nested Schema for `items.pools`
+
+Read-Only:
+
+- `name` (String)
+- `system` (Boolean)
+- `types` (List of String)
diff --git a/docs/data-sources/cb_sep_template.md b/docs/data-sources/cb_sep_template.md
new file mode 100644
index 0000000..3870ed3
--- /dev/null
+++ b/docs/data-sources/cb_sep_template.md
@@ -0,0 +1,38 @@
+---
+# generated by https://github.com/hashicorp/terraform-plugin-docs
+page_title: "decort_cb_sep_template Data Source - terraform-provider-decort"
+subcategory: ""
+description: |-
+
+---
+
+# decort_cb_sep_template (Data Source)
+
+
+
+
+
+
+## Schema
+
+### Required
+
+- `lang` (String) language
+- `sep_type` (String) type of sep
+
+### Optional
+
+- `timeouts` (Block, Optional) (see [below for nested schema](#nestedblock--timeouts))
+
+### Read-Only
+
+- `id` (String) The ID of this resource.
+- `sep_template` (String)
+
+
+### Nested Schema for `timeouts`
+
+Optional:
+
+- `default` (String)
+- `read` (String)
diff --git a/docs/data-sources/cb_vins_list.md b/docs/data-sources/cb_vins_list.md
index 345b973..2d011cc 100644
--- a/docs/data-sources/cb_vins_list.md
+++ b/docs/data-sources/cb_vins_list.md
@@ -27,6 +27,7 @@ description: |-
- `rg_id` (Number) Find by rg id
- `size` (Number) Page size
- `sort_by` (String) sort by one of supported fields, format +|-(field)
+- `status` (String) sort by status
- `timeouts` (Block, Optional) (see [below for nested schema](#nestedblock--timeouts))
- `vnfdev_id` (Number) find by VNF Device id
diff --git a/docs/data-sources/disk.md b/docs/data-sources/disk.md
index f391c2e..20ce557 100644
--- a/docs/data-sources/disk.md
+++ b/docs/data-sources/disk.md
@@ -29,7 +29,9 @@ description: |-
- `account_name` (String) The name of the subscriber '(account') to whom this disk belongs
- `acl` (String)
- `computes` (List of Object) (see [below for nested schema](#nestedatt--computes))
+- `created_by` (String)
- `created_time` (Number) Created time
+- `deleted_by` (String)
- `deleted_time` (Number) Deleted time
- `desc` (String) Description of disk
- `destruction_time` (Number) Time of final deletion
@@ -40,12 +42,15 @@ description: |-
- `image_id` (Number) Image ID
- `images` (List of String) IDs of images using the disk
- `iotune` (List of Object) (see [below for nested schema](#nestedatt--iotune))
+- `machine_id` (Number)
+- `machine_name` (String)
+- `milestones` (Number) Milestones
- `order` (Number) Disk order
- `params` (String) Disk params
- `parent_id` (Number) ID of the parent disk
- `pci_slot` (Number) ID of the pci slot to which the disk is connected
- `pool` (String) Pool for disk location
-- `present_to` (List of Number)
+- `present_to` (Map of Number)
- `purge_time` (Number) Time of the last deletion attempt
- `replication` (List of Object) Replication status (see [below for nested schema](#nestedatt--replication))
- `res_id` (String) Resource ID
@@ -54,12 +59,15 @@ description: |-
- `sep_id` (Number) Storage endpoint provider ID to create disk
- `sep_type` (String) Type SEP. Defines the type of storage system and contains one of the values set in the cloud platform
- `shareable` (Boolean)
+- `size_available` (Number)
- `size_max` (Number) Size in GB
- `size_used` (Number) Number of used space, in GB
- `snapshots` (List of Object) (see [below for nested schema](#nestedatt--snapshots))
- `status` (String) Disk status
- `tech_status` (String) Technical status of the disk
- `type` (String) The type of disk in terms of its role in compute: 'B=Boot, D=Data, T=Temp'
+- `updated_by` (String)
+- `updated_time` (Number)
- `vmid` (Number) Virtual Machine ID (Deprecated)
diff --git a/docs/data-sources/disk_list.md b/docs/data-sources/disk_list.md
index ae9ec45..52f3cb0 100644
--- a/docs/data-sources/disk_list.md
+++ b/docs/data-sources/disk_list.md
@@ -56,7 +56,9 @@ Read-Only:
- `account_name` (String)
- `acl` (String)
- `computes` (List of Object) (see [below for nested schema](#nestedobjatt--items--computes))
+- `created_by` (String)
- `created_time` (Number)
+- `deleted_by` (String)
- `deleted_time` (Number)
- `desc` (String)
- `destruction_time` (Number)
@@ -69,12 +71,13 @@ Read-Only:
- `iotune` (List of Object) (see [below for nested schema](#nestedobjatt--items--iotune))
- `machine_id` (Number)
- `machine_name` (String)
+- `milestones` (Number)
- `order` (Number)
- `params` (String)
- `parent_id` (Number)
- `pci_slot` (Number)
- `pool` (String)
-- `present_to` (List of Number)
+- `present_to` (Map of Number)
- `purge_time` (Number)
- `replication` (List of Object) (see [below for nested schema](#nestedobjatt--items--replication))
- `res_id` (String)
@@ -83,12 +86,15 @@ Read-Only:
- `sep_id` (Number)
- `sep_type` (String)
- `shareable` (Boolean)
+- `size_available` (Number)
- `size_max` (Number)
- `size_used` (Number)
- `snapshots` (List of Object) (see [below for nested schema](#nestedobjatt--items--snapshots))
- `status` (String)
- `tech_status` (String)
- `type` (String)
+- `updated_by` (String)
+- `updated_time` (Number)
- `vmid` (Number)
diff --git a/docs/data-sources/disk_list_deleted.md b/docs/data-sources/disk_list_deleted.md
index 1d0f64a..791227f 100644
--- a/docs/data-sources/disk_list_deleted.md
+++ b/docs/data-sources/disk_list_deleted.md
@@ -53,7 +53,9 @@ Read-Only:
- `account_name` (String)
- `acl` (String)
- `computes` (List of Object) (see [below for nested schema](#nestedobjatt--items--computes))
+- `created_by` (String)
- `created_time` (Number)
+- `deleted_by` (String)
- `deleted_time` (Number)
- `desc` (String)
- `destruction_time` (Number)
@@ -66,12 +68,13 @@ Read-Only:
- `iotune` (List of Object) (see [below for nested schema](#nestedobjatt--items--iotune))
- `machine_id` (Number)
- `machine_name` (String)
+- `milestones` (Number)
- `order` (Number)
- `params` (String)
- `parent_id` (Number)
- `pci_slot` (Number)
- `pool` (String)
-- `present_to` (List of Number)
+- `present_to` (Map of Number)
- `purge_time` (Number)
- `replication` (List of Object) (see [below for nested schema](#nestedobjatt--items--replication))
- `res_id` (String)
@@ -80,12 +83,15 @@ Read-Only:
- `sep_id` (Number)
- `sep_type` (String)
- `shareable` (Boolean)
+- `size_available` (Number)
- `size_max` (Number)
- `size_used` (Number)
- `snapshots` (List of Object) (see [below for nested schema](#nestedobjatt--items--snapshots))
- `status` (String)
- `tech_status` (String)
- `type` (String)
+- `updated_by` (String)
+- `updated_time` (Number)
- `vmid` (Number)
diff --git a/docs/data-sources/disk_replication.md b/docs/data-sources/disk_replication.md
index 32990f3..65ba62b 100644
--- a/docs/data-sources/disk_replication.md
+++ b/docs/data-sources/disk_replication.md
@@ -46,7 +46,7 @@ description: |-
- `parent_id` (Number) ID of the parent disk
- `pci_slot` (Number) ID of the pci slot to which the disk is connected
- `pool` (String) Pool for disk location
-- `present_to` (List of Number)
+- `present_to` (Map of Number)
- `purge_time` (Number) Time of the last deletion attempt
- `replication` (List of Object) Replication status (see [below for nested schema](#nestedatt--replication))
- `res_id` (String) Resource ID
diff --git a/docs/data-sources/extnet.md b/docs/data-sources/extnet.md
index 6e93be0..2db7449 100644
--- a/docs/data-sources/extnet.md
+++ b/docs/data-sources/extnet.md
@@ -43,6 +43,7 @@ description: |-
- `net_name` (String)
- `network` (String)
- `network_id` (Number)
+- `ntp` (List of String)
- `pre_reservations_num` (Number)
- `prefix` (Number)
- `pri_vnf_dev_id` (Number)
diff --git a/docs/data-sources/extnet_list.md b/docs/data-sources/extnet_list.md
index 718c5f6..cc62049 100644
--- a/docs/data-sources/extnet_list.md
+++ b/docs/data-sources/extnet_list.md
@@ -21,6 +21,7 @@ description: |-
- `by_id` (Number) Find by ID
- `name` (String) Find by name
- `network` (String)
+- `ovs_bridge` (String) Name of the openVswitch bridge
- `page` (Number) Page number
- `size` (Number) Page size
- `sort_by` (String) sort by one of supported fields, format +|-(field)
diff --git a/docs/data-sources/image.md b/docs/data-sources/image.md
index fb52f4c..44519f5 100644
--- a/docs/data-sources/image.md
+++ b/docs/data-sources/image.md
@@ -50,7 +50,7 @@ description: |-
- `network_interface_naming` (String)
- `password` (String)
- `pool_name` (String)
-- `present_to` (List of Number)
+- `present_to` (Map of Number)
- `provider_name` (String)
- `purge_attempts` (Number)
- `res_id` (String)
@@ -58,6 +58,7 @@ description: |-
- `sep_id` (Number)
- `shared_with` (List of Number)
- `size` (Number)
+- `snapshot_id` (String)
- `status` (String)
- `tech_status` (String)
- `type` (String)
diff --git a/docs/data-sources/k8s.md b/docs/data-sources/k8s.md
index 8f274fa..735292f 100644
--- a/docs/data-sources/k8s.md
+++ b/docs/data-sources/k8s.md
@@ -33,6 +33,7 @@ description: |-
- `created_time` (Number)
- `deleted_by` (String)
- `deleted_time` (Number)
+- `desc` (String)
- `extnet_id` (Number) ID of the external network to connect workers to. If omitted network will be chosen by the platfom.
- `id` (String) The ID of this resource.
- `k8s_ci_name` (String)
diff --git a/docs/data-sources/kvmvm.md b/docs/data-sources/kvmvm.md
index b24f858..309ab6a 100644
--- a/docs/data-sources/kvmvm.md
+++ b/docs/data-sources/kvmvm.md
@@ -35,6 +35,7 @@ description: |-
- `arch` (String)
- `auto_start_w_node` (Boolean)
- `boot_order` (List of String)
+- `boot_type` (String)
- `bootdisk_size` (Number)
- `cd_image_id` (Number)
- `chipset` (String)
@@ -54,10 +55,12 @@ description: |-
- `driver` (String)
- `gid` (Number)
- `guid` (Number)
+- `hot_resize` (Boolean)
- `hp_backed` (Boolean)
- `id` (String) The ID of this resource.
- `image_id` (Number)
- `interfaces` (List of Object) (see [below for nested schema](#nestedatt--interfaces))
+- `loader_type` (String)
- `lock_status` (String)
- `manager_id` (Number)
- `manager_type` (String)
@@ -70,6 +73,7 @@ description: |-
- `natable_vins_network` (String)
- `natable_vins_network_name` (String)
- `need_reboot` (Boolean)
+- `network_interface_naming` (String)
- `numa_affinity` (String)
- `numa_node_id` (Number)
- `os_users` (List of Object) (see [below for nested schema](#nestedatt--os_users))
@@ -93,7 +97,7 @@ description: |-
- `updated_time` (Number)
- `user_managed` (Boolean)
- `userdata` (String)
-- `vgpus` (List of Number)
+- `vgpus` (List of Object) List of virtual GPUs (see [below for nested schema](#nestedatt--vgpus))
- `virtual_image_id` (Number)
- `virtual_image_name` (String)
- `vnc_password` (String)
@@ -214,7 +218,7 @@ Read-Only:
- `passwd` (String)
- `pci_slot` (Number)
- `pool` (String)
-- `present_to` (List of Number)
+- `present_to` (Map of Number)
- `purge_time` (Number)
- `reality_device_number` (Number)
- `replication` (List of Object) (see [below for nested schema](#nestedobjatt--disks--replication))
@@ -222,6 +226,7 @@ Read-Only:
- `role` (String)
- `sep_id` (Number)
- `shareable` (Boolean)
+- `size_available` (Number)
- `size_max` (Number)
- `size_used` (Number)
- `snapshots` (List of Object) (see [below for nested schema](#nestedobjatt--disks--snapshots))
@@ -352,3 +357,29 @@ Read-Only:
- `guid` (String)
- `label` (String)
- `timestamp` (Number)
+
+
+
+### Nested Schema for `vgpus`
+
+Read-Only:
+
+- `account_id` (Number)
+- `bus_number` (Number)
+- `created_time` (Number)
+- `deleted_time` (Number)
+- `gid` (Number)
+- `guid` (Number)
+- `id` (Number)
+- `last_claimed_by` (Number)
+- `last_update_time` (Number)
+- `mode` (String)
+- `pci_slot` (Number)
+- `pgpuid` (Number)
+- `profile_id` (Number)
+- `ram` (Number)
+- `reference_id` (String)
+- `rg_id` (Number)
+- `status` (String)
+- `type` (String)
+- `vmid` (Number)
diff --git a/docs/data-sources/kvmvm_list.md b/docs/data-sources/kvmvm_list.md
index b36d655..e810035 100644
--- a/docs/data-sources/kvmvm_list.md
+++ b/docs/data-sources/kvmvm_list.md
@@ -64,6 +64,7 @@ Read-Only:
- `arch` (String)
- `auto_start_w_node` (Boolean)
- `boot_order` (List of String)
+- `boot_type` (String)
- `bootdisk_size` (Number)
- `cd_image_id` (Number)
- `chipset` (String)
@@ -84,9 +85,11 @@ Read-Only:
- `driver` (String)
- `gid` (Number)
- `guid` (Number)
+- `hot_resize` (Boolean)
- `hp_backed` (Boolean)
- `image_id` (Number)
- `interfaces` (List of Object) (see [below for nested schema](#nestedobjatt--items--interfaces))
+- `loader_type` (String)
- `lock_status` (String)
- `manager_id` (Number)
- `manager_type` (String)
@@ -94,6 +97,7 @@ Read-Only:
- `milestones` (Number)
- `name` (String)
- `need_reboot` (Boolean)
+- `network_interface_naming` (String)
- `numa_affinity` (String)
- `numa_node_id` (Number)
- `pinned` (Boolean)
diff --git a/docs/data-sources/kvmvm_list_deleted.md b/docs/data-sources/kvmvm_list_deleted.md
index ee75b76..fc63f9f 100644
--- a/docs/data-sources/kvmvm_list_deleted.md
+++ b/docs/data-sources/kvmvm_list_deleted.md
@@ -62,6 +62,7 @@ Read-Only:
- `arch` (String)
- `auto_start_w_node` (Boolean)
- `boot_order` (List of String)
+- `boot_type` (String)
- `bootdisk_size` (Number)
- `cd_image_id` (Number)
- `chipset` (String)
@@ -82,9 +83,11 @@ Read-Only:
- `driver` (String)
- `gid` (Number)
- `guid` (Number)
+- `hot_resize` (Boolean)
- `hp_backed` (Boolean)
- `image_id` (Number)
- `interfaces` (List of Object) (see [below for nested schema](#nestedobjatt--items--interfaces))
+- `loader_type` (String)
- `lock_status` (String)
- `manager_id` (Number)
- `manager_type` (String)
@@ -92,6 +95,7 @@ Read-Only:
- `milestones` (Number)
- `name` (String)
- `need_reboot` (Boolean)
+- `network_interface_naming` (String)
- `numa_affinity` (String)
- `numa_node_id` (Number)
- `pinned` (Boolean)
diff --git a/docs/data-sources/locations_list.md b/docs/data-sources/locations_list.md
index 11ef95a..e70fcdd 100644
--- a/docs/data-sources/locations_list.md
+++ b/docs/data-sources/locations_list.md
@@ -55,3 +55,4 @@ Read-Only:
- `location_code` (String)
- `meta` (List of String)
- `name` (String)
+- `sdn_support` (Boolean)
diff --git a/docs/data-sources/resgroup.md b/docs/data-sources/resgroup.md
index 8032010..3c1a75b 100644
--- a/docs/data-sources/resgroup.md
+++ b/docs/data-sources/resgroup.md
@@ -46,7 +46,6 @@ description: |-
- `lock_status` (String)
- `milestones` (Number)
- `name` (String)
-- `register_computes` (Boolean)
- `res_types` (List of String)
- `resource_limits` (List of Object) (see [below for nested schema](#nestedatt--resource_limits))
- `secret` (String)
diff --git a/docs/data-sources/rg_list.md b/docs/data-sources/rg_list.md
index 1f1df4b..f1af8db 100644
--- a/docs/data-sources/rg_list.md
+++ b/docs/data-sources/rg_list.md
@@ -70,7 +70,6 @@ Read-Only:
- `lock_status` (String)
- `milestones` (Number)
- `name` (String)
-- `register_computes` (Boolean)
- `resource_limits` (List of Object) (see [below for nested schema](#nestedobjatt--items--resource_limits))
- `resource_types` (List of String)
- `rg_id` (Number)
diff --git a/docs/data-sources/rg_list_deleted.md b/docs/data-sources/rg_list_deleted.md
index d985c97..4d5f1fe 100644
--- a/docs/data-sources/rg_list_deleted.md
+++ b/docs/data-sources/rg_list_deleted.md
@@ -68,7 +68,6 @@ Read-Only:
- `lock_status` (String)
- `milestones` (Number)
- `name` (String)
-- `register_computes` (Boolean)
- `resource_limits` (List of Object) (see [below for nested schema](#nestedobjatt--items--resource_limits))
- `resource_types` (List of String)
- `rg_id` (Number)
diff --git a/docs/data-sources/sep_and_pools_available_list.md b/docs/data-sources/sep_and_pools_available_list.md
new file mode 100644
index 0000000..e5e0779
--- /dev/null
+++ b/docs/data-sources/sep_and_pools_available_list.md
@@ -0,0 +1,59 @@
+---
+# generated by https://github.com/hashicorp/terraform-plugin-docs
+page_title: "decort_sep_and_pools_available_list Data Source - terraform-provider-decort"
+subcategory: ""
+description: |-
+
+---
+
+# decort_sep_and_pools_available_list (Data Source)
+
+
+
+
+
+
+## Schema
+
+### Required
+
+- `account_id` (Number) Account ID
+
+### Optional
+
+- `rg_id` (Number) Resource group ID
+- `timeouts` (Block, Optional) (see [below for nested schema](#nestedblock--timeouts))
+
+### Read-Only
+
+- `entry_count` (Number) Number of available SEP entries
+- `id` (String) The ID of this resource.
+- `items` (List of Object) List of available SEPs (see [below for nested schema](#nestedatt--items))
+
+
+### Nested Schema for `timeouts`
+
+Optional:
+
+- `default` (String)
+- `read` (String)
+
+
+
+### Nested Schema for `items`
+
+Read-Only:
+
+- `pools` (List of Object) (see [below for nested schema](#nestedobjatt--items--pools))
+- `sep_id` (Number)
+- `sep_name` (String)
+- `sep_type` (String)
+
+
+### Nested Schema for `items.pools`
+
+Read-Only:
+
+- `name` (String)
+- `system` (Boolean)
+- `types` (List of String)
diff --git a/docs/data-sources/vins_list.md b/docs/data-sources/vins_list.md
index 08f74b9..d1dd7bc 100644
--- a/docs/data-sources/vins_list.md
+++ b/docs/data-sources/vins_list.md
@@ -26,6 +26,7 @@ description: |-
- `rg_id` (Number) Filter by RG ID
- `size` (Number) Page size
- `sort_by` (String) sort by one of supported fields, format +|-(field)
+- `status` (String) sort by status
- `timeouts` (Block, Optional) (see [below for nested schema](#nestedblock--timeouts))
- `vnf_dev_id` (Number) Filter by VNF Device id
diff --git a/docs/resources/account.md b/docs/resources/account.md
index 8158055..74f5234 100644
--- a/docs/resources/account.md
+++ b/docs/resources/account.md
@@ -18,13 +18,14 @@ description: |-
### Required
- `account_name` (String) account name
-- `username` (String) username of owner the account
### Optional
+- `desc` (String) description
- `emailaddress` (String) email
- `enable` (Boolean) enable/disable account
- `permanently` (Boolean) whether to completely delete the account
+- `reason` (Boolean) reason for deactivation
- `resource_limits` (Block List, Max: 1) (see [below for nested schema](#nestedblock--resource_limits))
- `restore` (Boolean) restore a deleted account
- `send_access_emails` (Boolean) if true send emails when a user is granted access to resources
diff --git a/docs/resources/bservice_group.md b/docs/resources/bservice_group.md
index 6add535..f988f52 100644
--- a/docs/resources/bservice_group.md
+++ b/docs/resources/bservice_group.md
@@ -28,6 +28,7 @@ description: |-
### Optional
+- `chipset` (String)
- `cloud_init` (String) Optional cloud_init parameters. Applied when creating new compute instance only, ignored in all other cases.
- `compgroup_id` (Number)
- `extnets` (List of Number) list of external networks to connect computes to
@@ -83,6 +84,7 @@ Optional:
Read-Only:
+- `chipset` (String)
- `id` (Number)
- `ip_addresses` (List of String)
- `name` (String)
diff --git a/docs/resources/cb_account.md b/docs/resources/cb_account.md
index 6ab77d9..be97981 100644
--- a/docs/resources/cb_account.md
+++ b/docs/resources/cb_account.md
@@ -27,9 +27,11 @@ description: |-
- `compute_features` (Set of String)
- `cpu_allocation_parameter` (String) set cpu allocation parameter
- `cpu_allocation_ratio` (Number) set cpu allocation ratio
+- `desc` (String) description
- `emailaddress` (String) email
- `enable` (Boolean) enable/disable account
- `permanently` (Boolean) whether to completely delete the account
+- `reason` (Boolean) reason for restore or deactivation
- `resource_limits` (Block List, Max: 1) (see [below for nested schema](#nestedblock--resource_limits))
- `restore` (Boolean) restore a deleted account
- `send_access_emails` (Boolean) if true send emails when a user is granted access to resources
diff --git a/docs/resources/cb_cdrom_image.md b/docs/resources/cb_cdrom_image.md
index ad5bbc4..68b89b8 100644
--- a/docs/resources/cb_cdrom_image.md
+++ b/docs/resources/cb_cdrom_image.md
@@ -17,7 +17,6 @@ description: |-
### Required
-- `gid` (Number) grid (platform) ID where this template should be create in
- `name` (String) Name of the rescue disk
- `url` (String) URL where to download ISO from
@@ -45,6 +44,7 @@ description: |-
- `ckey` (String)
- `deleted_time` (Number)
- `desc` (String)
+- `gid` (Number)
- `guid` (Number)
- `history` (List of Object) (see [below for nested schema](#nestedatt--history))
- `id` (String) The ID of this resource.
@@ -54,7 +54,7 @@ description: |-
- `link_to` (Number)
- `meta` (List of String) meta
- `milestones` (Number)
-- `present_to` (List of Number)
+- `present_to` (Map of Number)
- `provider_name` (String)
- `purge_attempts` (Number)
- `reference_id` (String)
diff --git a/docs/resources/cb_disk.md b/docs/resources/cb_disk.md
index 6f1d480..92d9e64 100644
--- a/docs/resources/cb_disk.md
+++ b/docs/resources/cb_disk.md
@@ -19,9 +19,7 @@ description: |-
- `account_id` (Number)
- `disk_name` (String)
-- `gid` (Number)
- `size_max` (Number)
-- `type` (String) The type of disk in terms of its role in compute: 'B=Boot, D=Data, T=Temp'
### Optional
@@ -35,7 +33,6 @@ description: |-
- `restore` (Boolean) restore deleting disk
- `sep_id` (Number)
- `shareable` (Boolean)
-- `ssd_size` (Number)
- `timeouts` (Block, Optional) (see [below for nested schema](#nestedblock--timeouts))
### Read-Only
@@ -44,25 +41,30 @@ description: |-
- `acl` (String)
- `boot_partition` (Number)
- `computes` (List of Object) (see [below for nested schema](#nestedatt--computes))
+- `created_by` (String)
- `created_time` (Number)
+- `deleted_by` (String)
- `deleted_time` (Number)
- `destruction_time` (Number)
- `devicename` (String)
- `disk_id` (Number)
- `disk_path` (String)
+- `gid` (Number)
- `guid` (Number)
- `id` (String) The ID of this resource.
- `image_id` (Number)
- `images` (List of String)
- `iqn` (String)
- `login` (String)
+- `machine_id` (Number)
+- `machine_name` (String)
- `milestones` (Number)
- `order` (Number)
- `params` (String)
- `parent_id` (Number)
- `passwd` (String)
- `pci_slot` (Number)
-- `present_to` (List of Number)
+- `present_to` (Map of Number)
- `purge_attempts` (Number)
- `purge_time` (Number)
- `reality_device_number` (Number)
@@ -76,6 +78,9 @@ description: |-
- `snapshots` (List of Object) (see [below for nested schema](#nestedatt--snapshots))
- `status` (String)
- `tech_status` (String)
+- `type` (String) The type of disk in terms of its role in compute: 'B=Boot, D=Data, T=Temp'
+- `updated_by` (String)
+- `updated_time` (Number)
- `vmid` (Number)
diff --git a/docs/resources/cb_image.md b/docs/resources/cb_image.md
index 75d8872..dd0ed73 100644
--- a/docs/resources/cb_image.md
+++ b/docs/resources/cb_image.md
@@ -18,7 +18,6 @@ description: |-
### Required
- `boot_type` (String) Boot type of image bios or uefi
-- `gid` (Number) grid (platform) ID where this template should be create in
- `image_type` (String) Image type linux, windows or other
- `name` (String) Name of the rescue disk
@@ -52,6 +51,7 @@ description: |-
- `cd_presented_to` (String)
- `deleted_time` (Number)
- `desc` (String)
+- `gid` (Number)
- `guid` (Number)
- `history` (List of Object) (see [below for nested schema](#nestedatt--history))
- `id` (String) The ID of this resource.
@@ -59,7 +59,7 @@ description: |-
- `last_modified` (Number)
- `link_to` (Number)
- `milestones` (Number)
-- `present_to` (List of Number)
+- `present_to` (Map of Number)
- `provider_name` (String)
- `purge_attempts` (Number)
- `reference_id` (String)
diff --git a/docs/resources/cb_image_from_blank_compute.md b/docs/resources/cb_image_from_blank_compute.md
index 98851be..b1ee226 100644
--- a/docs/resources/cb_image_from_blank_compute.md
+++ b/docs/resources/cb_image_from_blank_compute.md
@@ -19,7 +19,7 @@ description: |-
- `boot_type` (String) Boot type of image BIOS or UEFI
- `compute_id` (Number) Compute Id
-- `image_type` (String) Image type linux, windows or other
+- `image_type` (String) Image type linux, windows or unknown
- `name` (String) Name of the rescue disk
### Optional
@@ -35,7 +35,6 @@ description: |-
- `network_interface_naming` (String) select a network interface naming pattern for your Linux machine. eth - onboard, ens - pci slot naming
- `password` (String) Optional password for the image
- `pool_name` (String) pool for image create
-- `sep_id` (Number) storage endpoint provider ID
- `shared_with` (List of Number)
- `timeouts` (Block, Optional) (see [below for nested schema](#nestedblock--timeouts))
- `username` (String) Optional username for the image
@@ -56,13 +55,14 @@ description: |-
- `last_modified` (Number)
- `link_to` (Number)
- `milestones` (Number)
-- `present_to` (List of Number)
+- `present_to` (Map of Number)
- `provider_name` (String)
- `purge_attempts` (Number)
- `reference_id` (String)
- `res_id` (String)
- `res_name` (String)
- `rescuecd` (Boolean)
+- `sep_id` (Number) storage endpoint provider ID
- `size` (Number)
- `snapshot_id` (String) snapshot id
- `status` (String)
diff --git a/docs/resources/cb_image_from_platform_disk.md b/docs/resources/cb_image_from_platform_disk.md
index 36a915f..6b0ea0a 100644
--- a/docs/resources/cb_image_from_platform_disk.md
+++ b/docs/resources/cb_image_from_platform_disk.md
@@ -21,7 +21,7 @@ description: |-
- `boot_type` (String) Boot type of image BIOS or UEFI
- `disk_id` (Number) Disk Id
- `drivers` (List of String) List of types of compute suitable for image. Example: [ "KVM_X86" ]
-- `image_type` (String) Image type linux, windows or other
+- `image_type` (String) Image type linux, windows or unknown
- `name` (String) Name of the rescue disk
### Optional
@@ -37,7 +37,6 @@ description: |-
- `network_interface_naming` (String) select a network interface naming pattern for your Linux machine. eth - onboard, ens - pci slot naming
- `password` (String) Optional password for the image
- `pool_name` (String) pool for image create
-- `sep_id` (Number) storage endpoint provider ID
- `shared_with` (List of Number)
- `timeouts` (Block, Optional) (see [below for nested schema](#nestedblock--timeouts))
- `username` (String) Optional username for the image
@@ -56,13 +55,14 @@ description: |-
- `last_modified` (Number)
- `link_to` (Number)
- `milestones` (Number)
-- `present_to` (List of Number)
+- `present_to` (Map of Number)
- `provider_name` (String)
- `purge_attempts` (Number)
- `reference_id` (String)
- `res_id` (String)
- `res_name` (String)
- `rescuecd` (Boolean)
+- `sep_id` (Number) storage endpoint provider ID
- `size` (Number)
- `snapshot_id` (String) snapshot id
- `status` (String)
diff --git a/docs/resources/cb_kvmvm.md b/docs/resources/cb_kvmvm.md
index 291e990..dab7495 100644
--- a/docs/resources/cb_kvmvm.md
+++ b/docs/resources/cb_kvmvm.md
@@ -31,12 +31,12 @@ description: |-
- `anti_affinity_rules` (Block List) (see [below for nested schema](#nestedblock--anti_affinity_rules))
- `auto_start_w_node` (Boolean)
- `boot_disk_size` (Number) This compute instance boot disk size in GB. Make sure it is large enough to accomodate selected OS image.
+- `boot_type` (String) Type of image upload.
- `cd` (Block Set, Max: 1) (see [below for nested schema](#nestedblock--cd))
- `chipset` (String) Type of the emulated system.
- `cloud_init` (String) Optional cloud_init parameters. Applied when creating new compute instance only, ignored in all other cases.
- `cpu_pin` (Boolean) Run VM on dedicated CPUs. To use this feature, the system must be pre-configured by allocating CPUs on the physical node.
- `custom_fields` (String)
-- `depresent` (Boolean) whether to depresent compute disks from node or not
- `description` (String) Optional text description of this compute instance.
- `detach_disks` (Boolean)
- `disks` (Block List) (see [below for nested schema](#nestedblock--disks))
@@ -45,12 +45,15 @@ description: |-
- `force_pin` (Boolean)
- `force_resize` (Boolean) Flag for resize compute
- `force_stop` (Boolean) Flag for redeploy compute
+- `hot_resize` (Boolean) Type of image vm.
- `hp_backed` (Boolean) Use Huge Pages to allocate RAM of the virtual machine. The system must be pre-configured by allocating Huge Pages on the physical node.
- `image_id` (Number) ID of the OS image to base this compute instance on.
- `ipa_type` (String) compute purpose
- `is` (String) system name
- `libvirt_settings` (Block Set) Configure libvirt virtio interface parameters. You can only delete values locally. Data on the platform cannot be deleted. (see [below for nested schema](#nestedblock--libvirt_settings))
-- `network` (Block Set, Max: 8) Optional network connection(s) for this compute. You may specify several network blocks, one for each connection. (see [below for nested schema](#nestedblock--network))
+- `loader_type` (String) Type of image vm.
+- `network` (Block Set) Optional network connection(s) for this compute. You may specify several network blocks, one for each connection. (see [below for nested schema](#nestedblock--network))
+- `network_interface_naming` (String) Name of netfowrk interface.
- `numa_affinity` (String) Rule for VM placement with NUMA affinity.
- `pause` (Boolean)
- `pci_devices` (Set of Number) ID of the connected pci devices
@@ -109,7 +112,7 @@ description: |-
- `need_reboot` (Boolean)
- `numa_node_id` (Number)
- `os_users` (List of Object) Guest OS users provisioned on this compute instance. (see [below for nested schema](#nestedatt--os_users))
-- `pinned` (Boolean)
+- `pinned` (Number)
- `reference_id` (String)
- `registered` (Boolean)
- `res_name` (String)
@@ -124,7 +127,7 @@ description: |-
- `updated_by` (String)
- `updated_time` (Number)
- `user_managed` (Boolean)
-- `vgpus` (List of Number)
+- `vgpus` (List of Object) List of virtual GPUs (see [below for nested schema](#nestedatt--vgpus))
- `virtual_image_id` (Number)
- `virtual_image_name` (String)
- `vnc_password` (String)
@@ -188,6 +191,7 @@ Optional:
Read-Only:
- `disk_id` (Number) Disk ID
+- `present_to` (Map of Number)
- `shareable` (Boolean)
- `size_max` (Number)
- `size_used` (Number)
@@ -222,13 +226,10 @@ Required:
Optional:
- `ip_address` (String) Optional IP address to assign to this connection. This IP should belong to the selected network and free for use.
+- `mac` (String) MAC address associated with this connection. MAC address is assigned automatically.
- `mtu` (Number) Maximum transmission unit, used only for DPDK type, must be 1-9216
- `weight` (Number) weight the network if you need to sort network list, the smallest attach first. zero or null weight attach last
-Read-Only:
-
-- `mac` (String) MAC address associated with this connection. MAC address is assigned automatically.
-
### Nested Schema for `port_forwarding`
@@ -381,3 +382,29 @@ Read-Only:
- `guid` (String)
- `label` (String)
- `timestamp` (Number)
+
+
+
+### Nested Schema for `vgpus`
+
+Read-Only:
+
+- `account_id` (Number)
+- `bus_number` (Number)
+- `created_time` (Number)
+- `deleted_time` (Number)
+- `gid` (Number)
+- `guid` (Number)
+- `id` (Number)
+- `last_claimed_by` (Number)
+- `last_update_time` (Number)
+- `mode` (String)
+- `pci_slot` (Number)
+- `pgpuid` (Number)
+- `profile_id` (Number)
+- `ram` (Number)
+- `reference_id` (String)
+- `rg_id` (Number)
+- `status` (String)
+- `type` (String)
+- `vmid` (Number)
diff --git a/docs/resources/cb_rg.md b/docs/resources/cb_rg.md
index 0c99ebd..5f19188 100644
--- a/docs/resources/cb_rg.md
+++ b/docs/resources/cb_rg.md
@@ -37,7 +37,6 @@ description: |-
- `ipcidr` (String) Address of the netowrk inside the private network segment (aka ViNS) if def_net_type=PRIVATE
- `owner` (String) username - owner of this RG. Leave blank to set current user as owner
- `permanently` (Boolean) flag to permanently delete resource group
-- `register_computes` (Boolean) Register computes in registration system
- `resource_limits` (Block List, Max: 1) (see [below for nested schema](#nestedblock--resource_limits))
- `restore` (Boolean) restore deleted rg
- `timeouts` (Block, Optional) (see [below for nested schema](#nestedblock--timeouts))
diff --git a/docs/resources/cb_virtual_image.md b/docs/resources/cb_virtual_image.md
index 87a34b4..8d57994 100644
--- a/docs/resources/cb_virtual_image.md
+++ b/docs/resources/cb_virtual_image.md
@@ -52,7 +52,7 @@ description: |-
- `meta` (List of String) meta
- `milestones` (Number)
- `pool_name` (String) pool for image create
-- `present_to` (List of Number)
+- `present_to` (Map of Number)
- `provider_name` (String)
- `purge_attempts` (Number)
- `reference_id` (String)
diff --git a/docs/resources/disk.md b/docs/resources/disk.md
index ea55a47..c80b4d4 100644
--- a/docs/resources/disk.md
+++ b/docs/resources/disk.md
@@ -19,7 +19,6 @@ description: |-
- `account_id` (Number) The unique ID of the subscriber-owner of the disk
- `disk_name` (String) Name of disk
-- `gid` (Number) ID of the grid (platform)
- `size_max` (Number) Size in GB
### Optional
@@ -32,26 +31,30 @@ description: |-
- `sep_id` (Number) Storage endpoint provider ID to create disk
- `shareable` (Boolean)
- `timeouts` (Block, Optional) (see [below for nested schema](#nestedblock--timeouts))
-- `type` (String) The type of disk in terms of its role in compute: 'B=Boot, D=Data, T=Temp'
### Read-Only
- `account_name` (String) The name of the subscriber '(account') to whom this disk belongs
- `acl` (String)
- `computes` (List of Object) (see [below for nested schema](#nestedatt--computes))
+- `created_by` (String)
- `created_time` (Number) Created time
+- `deleted_by` (String)
- `deleted_time` (Number) Deleted time
- `destruction_time` (Number) Time of final deletion
- `devicename` (String) Name of the device
- `disk_id` (Number) Disk ID. Duplicates the value of the ID parameter
+- `gid` (Number) ID of the grid (platform)
- `id` (String) The ID of this resource.
- `image_id` (Number) Image ID
- `images` (List of String) IDs of images using the disk
+- `machine_id` (Number)
+- `machine_name` (String)
- `order` (Number) Disk order
- `params` (String) Disk params
- `parent_id` (Number) ID of the parent disk
- `pci_slot` (Number) ID of the pci slot to which the disk is connected
-- `present_to` (List of Number)
+- `present_to` (Map of Number)
- `purge_time` (Number) Time of the last deletion attempt
- `replication` (List of Object) Replication status (see [below for nested schema](#nestedatt--replication))
- `res_id` (String) Resource ID
@@ -62,6 +65,9 @@ description: |-
- `snapshots` (List of Object) (see [below for nested schema](#nestedatt--snapshots))
- `status` (String) Disk status
- `tech_status` (String) Technical status of the disk
+- `type` (String) The type of disk in terms of its role in compute: 'B=Boot, D=Data, T=Temp'
+- `updated_by` (String)
+- `updated_time` (Number)
- `vmid` (Number) Virtual Machine ID (Deprecated)
diff --git a/docs/resources/image.md b/docs/resources/image.md
index 0c9a596..bac9ba6 100644
--- a/docs/resources/image.md
+++ b/docs/resources/image.md
@@ -21,7 +21,7 @@ description: |-
- `boot_type` (String) Boot type of image bios or uefi
- `drivers` (List of String)
- `name` (String) Name of the rescue disk
-- `type` (String) Image type linux, windows or other
+- `type` (String) Image type linux, windows or unknown
- `url` (String) URL where to download media from
### Optional
@@ -56,13 +56,14 @@ description: |-
- `last_modified` (Number)
- `link_to` (Number)
- `milestones` (Number)
-- `present_to` (List of Number)
+- `present_to` (Map of Number)
- `provider_name` (String)
- `purge_attempts` (Number)
- `res_id` (String)
- `rescuecd` (Boolean)
- `shared_with` (List of Number)
- `size` (Number)
+- `snapshot_id` (String)
- `status` (String)
- `tech_status` (String)
- `unc_path` (String)
diff --git a/docs/resources/image_from_blank_compute.md b/docs/resources/image_from_blank_compute.md
index 4f01965..7e45762 100644
--- a/docs/resources/image_from_blank_compute.md
+++ b/docs/resources/image_from_blank_compute.md
@@ -20,7 +20,7 @@ description: |-
- `boot_type` (String) Boot type of image BIOS or UEFI
- `compute_id` (Number) Compute Id
- `name` (String) Name of the rescue disk
-- `type` (String) Image type linux, windows or other
+- `type` (String) Image type linux, windows or unknown
### Optional
@@ -29,7 +29,6 @@ description: |-
- `hot_resize` (Boolean) Does this machine supports hot resize
- `password` (String) Optional password for the image
- `pool_name` (String) pool for image create
-- `sep_id` (Number) storage endpoint provider ID
- `timeouts` (Block, Optional) (see [below for nested schema](#nestedblock--timeouts))
- `username` (String) Optional username for the image
@@ -55,13 +54,15 @@ description: |-
- `link_to` (Number)
- `milestones` (Number)
- `network_interface_naming` (String)
-- `present_to` (List of Number)
+- `present_to` (Map of Number)
- `provider_name` (String)
- `purge_attempts` (Number)
- `res_id` (String)
- `rescuecd` (Boolean)
+- `sep_id` (Number) storage endpoint provider ID
- `shared_with` (List of Number)
- `size` (Number)
+- `snapshot_id` (String)
- `status` (String)
- `tech_status` (String)
- `unc_path` (String)
diff --git a/docs/resources/image_from_platform_disk.md b/docs/resources/image_from_platform_disk.md
index c6c63fa..ba87162 100644
--- a/docs/resources/image_from_platform_disk.md
+++ b/docs/resources/image_from_platform_disk.md
@@ -22,7 +22,7 @@ description: |-
- `disk_id` (Number) Disk Id
- `drivers` (List of String) List of types of compute suitable for image. Example: [ "KVM_X86" ]
- `name` (String) Name of the rescue disk
-- `type` (String) Image type linux, windows or other
+- `type` (String) Image type linux, windows or unknown
### Optional
@@ -32,7 +32,6 @@ description: |-
- `hot_resize` (Boolean) Does this machine supports hot resize
- `password` (String) Optional password for the image
- `pool_name` (String) pool for image create
-- `sep_id` (Number) storage endpoint provider ID
- `timeouts` (Block, Optional) (see [below for nested schema](#nestedblock--timeouts))
- `username` (String) Optional username for the image
@@ -55,13 +54,15 @@ description: |-
- `link_to` (Number)
- `milestones` (Number)
- `network_interface_naming` (String)
-- `present_to` (List of Number)
+- `present_to` (Map of Number)
- `provider_name` (String)
- `purge_attempts` (Number)
- `res_id` (String)
- `rescuecd` (Boolean)
+- `sep_id` (Number) storage endpoint provider ID
- `shared_with` (List of Number)
- `size` (Number)
+- `snapshot_id` (String)
- `status` (String)
- `tech_status` (String)
- `unc_path` (String)
diff --git a/docs/resources/image_virtual.md b/docs/resources/image_virtual.md
index 6aff231..d24f0ff 100644
--- a/docs/resources/image_virtual.md
+++ b/docs/resources/image_virtual.md
@@ -50,7 +50,7 @@ description: |-
- `network_interface_naming` (String)
- `password` (String)
- `pool_name` (String)
-- `present_to` (List of Number)
+- `present_to` (Map of Number)
- `provider_name` (String)
- `purge_attempts` (Number)
- `res_id` (String)
@@ -58,6 +58,7 @@ description: |-
- `sep_id` (Number)
- `shared_with` (List of Number)
- `size` (Number)
+- `snapshot_id` (String)
- `status` (String)
- `tech_status` (String)
- `type` (String)
diff --git a/docs/resources/kvmvm.md b/docs/resources/kvmvm.md
index 68834a1..3ad8c0a 100644
--- a/docs/resources/kvmvm.md
+++ b/docs/resources/kvmvm.md
@@ -30,6 +30,7 @@ description: |-
- `anti_affinity_rules` (Block List) (see [below for nested schema](#nestedblock--anti_affinity_rules))
- `auto_start_w_node` (Boolean) Flag for start compute after node exits from MAINTENANCE state
- `boot_disk_size` (Number) This compute instance boot disk size in GB. Make sure it is large enough to accomodate selected OS image.
+- `boot_type` (String) Type of image upload.
- `cd` (Block Set, Max: 1) (see [below for nested schema](#nestedblock--cd))
- `chipset` (String) Type of the emulated system.
- `cloud_init` (String) Optional cloud_init parameters. Applied when creating new compute instance only, ignored in all other cases.
@@ -42,11 +43,14 @@ description: |-
- `extra_disks` (Set of Number) Optional list of IDs of extra disks to attach to this compute. You may specify several extra disks.
- `force_resize` (Boolean) Flag for resize compute
- `force_stop` (Boolean) Flag for redeploy compute
+- `hot_resize` (Boolean) Type of image vm.
- `hp_backed` (Boolean) Use Huge Pages to allocate RAM of the virtual machine. The system must be pre-configured by allocating Huge Pages on the physical node.
- `image_id` (Number) ID of the OS image to base this compute instance on.
- `ipa_type` (String) compute purpose
- `is` (String) system name
-- `network` (Block Set, Max: 8) Optional network connection(s) for this compute. You may specify several network blocks, one for each connection. (see [below for nested schema](#nestedblock--network))
+- `loader_type` (String) Type of image vm.
+- `network` (Block Set) Optional network connection(s) for this compute. You may specify several network blocks, one for each connection. (see [below for nested schema](#nestedblock--network))
+- `network_interface_naming` (String) Name of netfowrk interface.
- `numa_affinity` (String) Rule for VM placement with NUMA affinity.
- `pause` (Boolean)
- `pci_devices` (Set of Number) ID of the connected pci devices
@@ -118,7 +122,7 @@ description: |-
- `updated_by` (String)
- `updated_time` (Number)
- `user_managed` (Boolean)
-- `vgpus` (List of Number)
+- `vgpus` (List of Object) List of virtual GPUs (see [below for nested schema](#nestedatt--vgpus))
- `virtual_image_id` (Number)
- `virtual_image_name` (String)
- `vnc_password` (String)
@@ -181,6 +185,7 @@ Optional:
Read-Only:
- `disk_id` (Number) Disk ID
+- `present_to` (Map of Number)
- `shareable` (Boolean)
- `size_max` (Number)
- `size_used` (Number)
@@ -197,13 +202,10 @@ Required:
Optional:
- `ip_address` (String) Optional IP address to assign to this connection. This IP should belong to the selected network and free for use.
+- `mac` (String) MAC address associated with this connection. MAC address is assigned automatically.
- `mtu` (Number) Maximum transmission unit, used only for DPDK type, must be 1-9216
- `weight` (Number) weight the network if you need to sort network list, the smallest attach first. zero or null weight attach last
-Read-Only:
-
-- `mac` (String) MAC address associated with this connection. MAC address is assigned automatically.
-
### Nested Schema for `port_forwarding`
@@ -277,6 +279,7 @@ Read-Only:
- `image_id` (Number)
- `permanently` (Boolean)
- `pool` (String)
+- `present_to` (Map of Number)
- `sep_id` (Number)
- `shareable` (Boolean)
- `size` (Number)
@@ -358,3 +361,29 @@ Read-Only:
- `guid` (String)
- `label` (String)
- `timestamp` (Number)
+
+
+
+### Nested Schema for `vgpus`
+
+Read-Only:
+
+- `account_id` (Number)
+- `bus_number` (Number)
+- `created_time` (Number)
+- `deleted_time` (Number)
+- `gid` (Number)
+- `guid` (Number)
+- `id` (Number)
+- `last_claimed_by` (Number)
+- `last_update_time` (Number)
+- `mode` (String)
+- `pci_slot` (Number)
+- `pgpuid` (Number)
+- `profile_id` (Number)
+- `ram` (Number)
+- `reference_id` (String)
+- `rg_id` (Number)
+- `status` (String)
+- `type` (String)
+- `vmid` (Number)
diff --git a/docs/resources/resgroup.md b/docs/resources/resgroup.md
index 4f9c4d0..4381e6a 100644
--- a/docs/resources/resgroup.md
+++ b/docs/resources/resgroup.md
@@ -35,7 +35,6 @@ description: |-
- `owner` (String)
- `permanently` (Boolean) Set to True if you want force delete non-empty RG
- `quota` (Block List, Max: 1) Quota settings for this resource group. (see [below for nested schema](#nestedblock--quota))
-- `register_computes` (Boolean) Register computes in registration system
- `restore` (Boolean)
- `timeouts` (Block, Optional) (see [below for nested schema](#nestedblock--timeouts))
- `uniq_pools` (List of String)
diff --git a/go.mod b/go.mod
index 2093d78..9dc9b01 100644
--- a/go.mod
+++ b/go.mod
@@ -8,7 +8,7 @@ require (
github.com/hashicorp/terraform-plugin-sdk/v2 v2.33.0
github.com/sirupsen/logrus v1.9.0
golang.org/x/net v0.23.0
- repository.basistech.ru/BASIS/decort-golang-sdk v1.10.2
+ repository.basistech.ru/BASIS/decort-golang-sdk v1.11.4
)
require (
diff --git a/go.sum b/go.sum
index 5c11ebb..346bc97 100644
--- a/go.sum
+++ b/go.sum
@@ -273,5 +273,5 @@ gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
-repository.basistech.ru/BASIS/decort-golang-sdk v1.10.2 h1:sA/ZngL4xvkyz8lVGkqbi2RBi4CrHJjho2WV21KX918=
-repository.basistech.ru/BASIS/decort-golang-sdk v1.10.2/go.mod h1:OaUynHHuSjWMzpfyoL4au6oLcUogqUkPPBKA15pbHWo=
+repository.basistech.ru/BASIS/decort-golang-sdk v1.11.4 h1:OEFgSEGjzut+vVMGeNgoNq3dtk63FbXB6yGLTywtAas=
+repository.basistech.ru/BASIS/decort-golang-sdk v1.11.4/go.mod h1:OaUynHHuSjWMzpfyoL4au6oLcUogqUkPPBKA15pbHWo=
diff --git a/internal/provider/data_sources_map.go b/internal/provider/data_sources_map.go
index 3c1a910..118bd66 100644
--- a/internal/provider/data_sources_map.go
+++ b/internal/provider/data_sources_map.go
@@ -55,6 +55,7 @@ import (
cb_node "repository.basistech.ru/BASIS/terraform-provider-decort/internal/service/cloudbroker/node"
cb_pcidevice "repository.basistech.ru/BASIS/terraform-provider-decort/internal/service/cloudbroker/pcidevice"
cb_rg "repository.basistech.ru/BASIS/terraform-provider-decort/internal/service/cloudbroker/rg"
+ "repository.basistech.ru/BASIS/terraform-provider-decort/internal/service/cloudbroker/sep"
cb_sep "repository.basistech.ru/BASIS/terraform-provider-decort/internal/service/cloudbroker/sep"
cb_stack "repository.basistech.ru/BASIS/terraform-provider-decort/internal/service/cloudbroker/stack"
cb_user "repository.basistech.ru/BASIS/terraform-provider-decort/internal/service/cloudbroker/user"
@@ -159,6 +160,7 @@ func newDataSourcesMap() map[string]*schema.Resource {
"decort_k8s_wg_cloud_init": k8s.DataSourceK8sWgCloudInit(),
"decort_rg_resource_consumption_list": rg.DataSourceRGResourceConsumptionList(),
"decort_rg_resource_consumption_get": rg.DataSourceRGResourceConsumptionGet(),
+ "decort_sep_and_pools_available_list": sep.DataSourceAvailableSEPAndPoolsList(),
"decort_cb_account": cb_account.DataSourceAccount(),
"decort_cb_account_list": cb_account.DataSourceAccountList(),
@@ -241,10 +243,12 @@ func newDataSourcesMap() map[string]*schema.Resource {
"decort_cb_rg_usage": cb_rg.DataSourceRgUsage(),
"decort_cb_sep_list": cb_sep.DataSourceSepList(),
"decort_cb_sep": cb_sep.DataSourceSep(),
+ "decort_cb_sep_and_pools_available_list": cb_sep.DataSourceAvailableSEPAndPoolsList(),
"decort_cb_sep_consumption": cb_sep.DataSourceSepConsumption(),
"decort_cb_sep_disk_list": cb_sep.DataSourceSepDiskList(),
"decort_cb_sep_config": cb_sep.DataSourceSepConfig(),
"decort_cb_sep_pool": cb_sep.DataSourceSepPool(),
+ "decort_cb_sep_template": cb_sep.DataSourceSepTemplate(),
"decort_cb_lb": cb_lb.DataSourceLB(),
"decort_cb_lb_list": cb_lb.DataSourceLBList(),
"decort_cb_lb_list_deleted": cb_lb.DataSourceLBListDeleted(),
diff --git a/internal/service/cloudapi/account/data_source_account.go b/internal/service/cloudapi/account/data_source_account.go
index 9968ce8..4698ed8 100644
--- a/internal/service/cloudapi/account/data_source_account.go
+++ b/internal/service/cloudapi/account/data_source_account.go
@@ -326,6 +326,10 @@ func dataSourceAccountSchemaMake() map[string]*schema.Schema {
Type: schema.TypeFloat,
Computed: true,
},
+ "desc": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
"deleted_by": {
Type: schema.TypeString,
Computed: true,
diff --git a/internal/service/cloudapi/account/data_source_account_list.go b/internal/service/cloudapi/account/data_source_account_list.go
index f07829f..6cca41a 100644
--- a/internal/service/cloudapi/account/data_source_account_list.go
+++ b/internal/service/cloudapi/account/data_source_account_list.go
@@ -49,6 +49,7 @@ func flattenAccountList(al *account.ListAccounts) []map[string]interface{} {
"acl": flattenRgAcl(acc.ACL),
"compute_features": acc.ComputeFeatures,
"created_time": acc.CreatedTime,
+ "desc": acc.Description,
"deleted_time": acc.DeletedTime,
"account_id": acc.ID,
"account_name": acc.Name,
@@ -176,6 +177,10 @@ func dataSourceAccountListSchemaMake() map[string]*schema.Schema {
Type: schema.TypeInt,
Computed: true,
},
+ "desc": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
"deleted_time": {
Type: schema.TypeInt,
Computed: true,
diff --git a/internal/service/cloudapi/account/data_source_account_rg_list.go b/internal/service/cloudapi/account/data_source_account_rg_list.go
index 6752099..5da9e97 100644
--- a/internal/service/cloudapi/account/data_source_account_rg_list.go
+++ b/internal/service/cloudapi/account/data_source_account_rg_list.go
@@ -50,6 +50,7 @@ func flattenAccountRGList(argl *account.ListRG) []map[string]interface{} {
"resources": flattenAccRGResources(arg.Resources),
"created_by": arg.CreatedBy,
"created_time": arg.CreatedTime,
+ "desc": arg.Description,
"deleted_by": arg.DeletedBy,
"deleted_time": arg.DeletedTime,
"rg_id": arg.RGID,
@@ -314,6 +315,10 @@ func dataSourceAccountRGListSchemaMake() map[string]*schema.Schema {
Type: schema.TypeInt,
Computed: true,
},
+ "desc": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
"deleted_by": {
Type: schema.TypeString,
Computed: true,
diff --git a/internal/service/cloudapi/account/flattens.go b/internal/service/cloudapi/account/flattens.go
index e09903b..2074b7f 100644
--- a/internal/service/cloudapi/account/flattens.go
+++ b/internal/service/cloudapi/account/flattens.go
@@ -7,6 +7,7 @@ import (
func flattenAccount(d *schema.ResourceData, acc account.RecordAccount) error {
d.Set("dc_location", acc.DCLocation)
+ d.Set("desc", acc.Description)
// d.Set("resources", flattenAccResources(acc.Resources))
d.Set("ckey", acc.CKey)
d.Set("acl", flattenAccAcl(acc.ACL))
@@ -16,6 +17,7 @@ func flattenAccount(d *schema.ResourceData, acc account.RecordAccount) error {
d.Set("created_by", acc.CreatedBy)
d.Set("created_time", acc.CreatedTime)
d.Set("deactivation_time", acc.DeactivationTime)
+ d.Set("desc", acc.Description)
d.Set("deleted_by", acc.DeletedBy)
d.Set("deleted_time", acc.DeletedTime)
d.Set("displayname", acc.DisplayName)
diff --git a/internal/service/cloudapi/account/resource_account.go b/internal/service/cloudapi/account/resource_account.go
index 5a4fa07..049cf49 100644
--- a/internal/service/cloudapi/account/resource_account.go
+++ b/internal/service/cloudapi/account/resource_account.go
@@ -176,6 +176,7 @@ func resourceAccountUpdate(ctx context.Context, d *schema.ResourceData, m interf
if d.HasChange("enable") {
reqSwitch := account.DisableEnableRequest{
AccountID: accountId,
+ Reason: d.Get("reason").(string),
}
enable := d.Get("enable").(bool)
@@ -207,6 +208,11 @@ func resourceAccountUpdate(ctx context.Context, d *schema.ResourceData, m interf
updated = true
}
+ if d.HasChange("desc") {
+ req.Description = d.Get("desc").(string)
+ updated = true
+ }
+
if d.HasChange("resource_limits") {
resLimit := d.Get("resource_limits").([]interface{})[0]
resLimitConv := resLimit.(map[string]interface{})
@@ -394,10 +400,10 @@ func resourceAccountSchemaMake() map[string]*schema.Schema {
Required: true,
Description: "account name",
},
- "username": {
+ "desc": {
Type: schema.TypeString,
- Required: true,
- Description: "username of owner the account",
+ Optional: true,
+ Description: "description",
},
"emailaddress": {
Type: schema.TypeString,
@@ -425,6 +431,11 @@ func resourceAccountSchemaMake() map[string]*schema.Schema {
},
},
},
+ "reason": {
+ Type: schema.TypeBool,
+ Optional: true,
+ Description: "reason for deactivation",
+ },
"restore": {
Type: schema.TypeBool,
Optional: true,
diff --git a/internal/service/cloudapi/bservice/data_source_bservice_group.go b/internal/service/cloudapi/bservice/data_source_bservice_group.go
index 1619c73..c504740 100644
--- a/internal/service/cloudapi/bservice/data_source_bservice_group.go
+++ b/internal/service/cloudapi/bservice/data_source_bservice_group.go
@@ -105,6 +105,7 @@ func flattenBSGroupComputes(bsgcs bservice.ListGroupComputes) []map[string]inter
"ip_addresses": bsgc.IPAddresses,
"name": bsgc.Name,
"os_users": flattenBSGroupOSUsers(bsgc.OSUsers),
+ "chipset": bsgc.Chipset,
}
res = append(res, temp)
}
@@ -149,6 +150,10 @@ func dataSourceBasicServiceGroupSchemaMake() map[string]*schema.Schema {
Type: schema.TypeString,
Computed: true,
},
+ "chipset": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
"os_users": {
Type: schema.TypeList,
Computed: true,
diff --git a/internal/service/cloudapi/bservice/resource_bservice_group.go b/internal/service/cloudapi/bservice/resource_bservice_group.go
index 280a8d5..11bc9f8 100644
--- a/internal/service/cloudapi/bservice/resource_bservice_group.go
+++ b/internal/service/cloudapi/bservice/resource_bservice_group.go
@@ -100,6 +100,10 @@ func resourceBasicServiceGroupCreate(ctx context.Context, d *schema.ResourceData
req.ExtNets = res
}
+ if chipset, ok := d.GetOk("chipset"); ok {
+ req.Chipset = chipset.(string)
+ }
+
compgroupId, err := c.CloudAPI().BService().GroupAdd(ctx, req)
if err != nil {
return diag.FromErr(err)
@@ -172,6 +176,7 @@ func resourceBasicServiceGroupUpdate(ctx context.Context, d *schema.ResourceData
ServiceID: uint64(d.Get("service_id").(int)),
CompGroupID: uint64(d.Get("compgroup_id").(int)),
Count: int64(d.Get("comp_count").(int)),
+ Chipset: d.Get("chipset").(string),
Mode: d.Get("mode").(string),
}
@@ -414,6 +419,12 @@ func resourceBasicServiceGroupSchemaMake() map[string]*schema.Schema {
Optional: true,
Description: "Optional cloud_init parameters. Applied when creating new compute instance only, ignored in all other cases.",
},
+ "chipset": {
+ Type: schema.TypeString,
+ Optional: true,
+ ValidateFunc: validation.StringInSlice([]string{"i440fx", "Q35"}, false),
+ Default: "i440fx",
+ },
///
"role": {
Type: schema.TypeString,
@@ -503,6 +514,10 @@ func resourceBasicServiceGroupSchemaMake() map[string]*schema.Schema {
Computed: true,
Elem: &schema.Resource{
Schema: map[string]*schema.Schema{
+ "chipset": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
"id": {
Type: schema.TypeInt,
Computed: true,
diff --git a/internal/service/cloudapi/disks/data_source_disk.go b/internal/service/cloudapi/disks/data_source_disk.go
index ead990c..9b3e8e2 100644
--- a/internal/service/cloudapi/disks/data_source_disk.go
+++ b/internal/service/cloudapi/disks/data_source_disk.go
@@ -101,11 +101,19 @@ func dataSourceDiskSchemaMake() map[string]*schema.Schema {
},
},
},
+ "created_by": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
"created_time": {
Type: schema.TypeInt,
Computed: true,
Description: "Created time",
},
+ "deleted_by": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
"deleted_time": {
Type: schema.TypeInt,
Computed: true,
@@ -237,16 +245,24 @@ func dataSourceDiskSchemaMake() map[string]*schema.Schema {
// Computed: true,
// Description: "Login to access the disk",
// },
- // "milestones": {
- // Type: schema.TypeInt,
- // Computed: true,
- // Description: "Milestones",
- // },
+ "milestones": {
+ Type: schema.TypeInt,
+ Computed: true,
+ Description: "Milestones",
+ },
"disk_name": {
Type: schema.TypeString,
Computed: true,
Description: "Name of disk",
},
+ "machine_id": {
+ Type: schema.TypeInt,
+ Computed: true,
+ },
+ "machine_name": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
"order": {
Type: schema.TypeInt,
Computed: true,
@@ -278,7 +294,7 @@ func dataSourceDiskSchemaMake() map[string]*schema.Schema {
Description: "Pool for disk location",
},
"present_to": {
- Type: schema.TypeList,
+ Type: schema.TypeMap,
Computed: true,
Elem: &schema.Schema{
Type: schema.TypeInt,
@@ -300,27 +316,27 @@ func dataSourceDiskSchemaMake() map[string]*schema.Schema {
Elem: &schema.Resource{
Schema: map[string]*schema.Schema{
"disk_id": {
- Type: schema.TypeInt,
+ Type: schema.TypeInt,
Computed: true,
},
"pool_id": {
- Type: schema.TypeString,
+ Type: schema.TypeString,
Computed: true,
},
"role": {
- Type: schema.TypeString,
+ Type: schema.TypeString,
Computed: true,
},
"self_volume_id": {
- Type: schema.TypeString,
+ Type: schema.TypeString,
Computed: true,
},
"storage_id": {
- Type: schema.TypeString,
+ Type: schema.TypeString,
Computed: true,
},
"volume_id": {
- Type: schema.TypeString,
+ Type: schema.TypeString,
Computed: true,
},
},
@@ -366,6 +382,10 @@ func dataSourceDiskSchemaMake() map[string]*schema.Schema {
Type: schema.TypeBool,
Computed: true,
},
+ "size_available": {
+ Type: schema.TypeFloat,
+ Computed: true,
+ },
"size_max": {
Type: schema.TypeInt,
Computed: true,
@@ -434,6 +454,14 @@ func dataSourceDiskSchemaMake() map[string]*schema.Schema {
Computed: true,
Description: "Virtual Machine ID (Deprecated)",
},
+ "updated_by": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
+ "updated_time": {
+ Type: schema.TypeInt,
+ Computed: true,
+ },
}
return rets
diff --git a/internal/service/cloudapi/disks/data_source_disk_list.go b/internal/service/cloudapi/disks/data_source_disk_list.go
index dc6799e..8f7f204 100644
--- a/internal/service/cloudapi/disks/data_source_disk_list.go
+++ b/internal/service/cloudapi/disks/data_source_disk_list.go
@@ -163,6 +163,10 @@ func dataSourceDiskListSchemaMake() map[string]*schema.Schema {
},
},
},
+ "created_by": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
"created_time": {
Type: schema.TypeInt,
Computed: true,
@@ -314,11 +318,15 @@ func dataSourceDiskListSchemaMake() map[string]*schema.Schema {
Computed: true,
Description: "Machine name",
},
- // "milestones": {
- // Type: schema.TypeInt,
- // Computed: true,
- // Description: "Milestones",
- // },
+ "deleted_by": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
+ "milestones": {
+ Type: schema.TypeInt,
+ Computed: true,
+ Description: "Milestones",
+ },
"disk_name": {
Type: schema.TypeString,
Computed: true,
@@ -355,7 +363,7 @@ func dataSourceDiskListSchemaMake() map[string]*schema.Schema {
Description: "Pool for disk location",
},
"present_to": {
- Type: schema.TypeList,
+ Type: schema.TypeMap,
Computed: true,
Elem: &schema.Schema{
Type: schema.TypeInt,
@@ -387,27 +395,27 @@ func dataSourceDiskListSchemaMake() map[string]*schema.Schema {
Elem: &schema.Resource{
Schema: map[string]*schema.Schema{
"disk_id": {
- Type: schema.TypeInt,
+ Type: schema.TypeInt,
Computed: true,
},
"pool_id": {
- Type: schema.TypeString,
+ Type: schema.TypeString,
Computed: true,
},
"role": {
- Type: schema.TypeString,
+ Type: schema.TypeString,
Computed: true,
},
"self_volume_id": {
- Type: schema.TypeString,
+ Type: schema.TypeString,
Computed: true,
},
"storage_id": {
- Type: schema.TypeString,
+ Type: schema.TypeString,
Computed: true,
},
"volume_id": {
- Type: schema.TypeString,
+ Type: schema.TypeString,
Computed: true,
},
},
@@ -443,6 +451,10 @@ func dataSourceDiskListSchemaMake() map[string]*schema.Schema {
Type: schema.TypeBool,
Computed: true,
},
+ "size_available": {
+ Type: schema.TypeFloat,
+ Computed: true,
+ },
"size_max": {
Type: schema.TypeInt,
Computed: true,
@@ -511,6 +523,14 @@ func dataSourceDiskListSchemaMake() map[string]*schema.Schema {
Computed: true,
Description: "Virtual Machine ID (Deprecated)",
},
+ "updated_by": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
+ "updated_time": {
+ Type: schema.TypeInt,
+ Computed: true,
+ },
},
},
},
diff --git a/internal/service/cloudapi/disks/data_source_disk_replication.go b/internal/service/cloudapi/disks/data_source_disk_replication.go
index 0488d57..e120a49 100644
--- a/internal/service/cloudapi/disks/data_source_disk_replication.go
+++ b/internal/service/cloudapi/disks/data_source_disk_replication.go
@@ -303,7 +303,7 @@ func dataSourceDiskReplicationSchemaMake() map[string]*schema.Schema {
Description: "Pool for disk location",
},
"present_to": {
- Type: schema.TypeList,
+ Type: schema.TypeMap,
Computed: true,
Elem: &schema.Schema{
Type: schema.TypeInt,
@@ -325,27 +325,27 @@ func dataSourceDiskReplicationSchemaMake() map[string]*schema.Schema {
Elem: &schema.Resource{
Schema: map[string]*schema.Schema{
"disk_id": {
- Type: schema.TypeInt,
+ Type: schema.TypeInt,
Computed: true,
},
"pool_id": {
- Type: schema.TypeString,
+ Type: schema.TypeString,
Computed: true,
},
"role": {
- Type: schema.TypeString,
+ Type: schema.TypeString,
Computed: true,
},
"self_volume_id": {
- Type: schema.TypeString,
+ Type: schema.TypeString,
Computed: true,
},
"storage_id": {
- Type: schema.TypeString,
+ Type: schema.TypeString,
Computed: true,
},
"volume_id": {
- Type: schema.TypeString,
+ Type: schema.TypeString,
Computed: true,
},
},
diff --git a/internal/service/cloudapi/disks/data_source_list_deleted.go b/internal/service/cloudapi/disks/data_source_list_deleted.go
index 7368909..89e3c92 100644
--- a/internal/service/cloudapi/disks/data_source_list_deleted.go
+++ b/internal/service/cloudapi/disks/data_source_list_deleted.go
@@ -149,11 +149,19 @@ func dataSourceDiskDeletedListSchemaMake() map[string]*schema.Schema {
},
},
},
+ "created_by": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
"created_time": {
Type: schema.TypeInt,
Computed: true,
Description: "Created time",
},
+ "deleted_by": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
"deleted_time": {
Type: schema.TypeInt,
Computed: true,
@@ -300,11 +308,11 @@ func dataSourceDiskDeletedListSchemaMake() map[string]*schema.Schema {
Computed: true,
Description: "Machine name",
},
- // "milestones": {
- // Type: schema.TypeInt,
- // Computed: true,
- // Description: "Milestones",
- // },
+ "milestones": {
+ Type: schema.TypeInt,
+ Computed: true,
+ Description: "Milestones",
+ },
"disk_name": {
Type: schema.TypeString,
Computed: true,
@@ -341,7 +349,7 @@ func dataSourceDiskDeletedListSchemaMake() map[string]*schema.Schema {
Description: "Pool for disk location",
},
"present_to": {
- Type: schema.TypeList,
+ Type: schema.TypeMap,
Computed: true,
Elem: &schema.Schema{
Type: schema.TypeInt,
@@ -363,27 +371,27 @@ func dataSourceDiskDeletedListSchemaMake() map[string]*schema.Schema {
Elem: &schema.Resource{
Schema: map[string]*schema.Schema{
"disk_id": {
- Type: schema.TypeInt,
+ Type: schema.TypeInt,
Computed: true,
},
"pool_id": {
- Type: schema.TypeString,
+ Type: schema.TypeString,
Computed: true,
},
"role": {
- Type: schema.TypeString,
+ Type: schema.TypeString,
Computed: true,
},
"self_volume_id": {
- Type: schema.TypeString,
+ Type: schema.TypeString,
Computed: true,
},
"storage_id": {
- Type: schema.TypeString,
+ Type: schema.TypeString,
Computed: true,
},
"volume_id": {
- Type: schema.TypeString,
+ Type: schema.TypeString,
Computed: true,
},
},
@@ -429,6 +437,10 @@ func dataSourceDiskDeletedListSchemaMake() map[string]*schema.Schema {
Type: schema.TypeBool,
Computed: true,
},
+ "size_available": {
+ Type: schema.TypeFloat,
+ Computed: true,
+ },
"size_max": {
Type: schema.TypeInt,
Computed: true,
@@ -497,6 +509,14 @@ func dataSourceDiskDeletedListSchemaMake() map[string]*schema.Schema {
Computed: true,
Description: "Virtual Machine ID (Deprecated)",
},
+ "updated_by": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
+ "updated_time": {
+ Type: schema.TypeInt,
+ Computed: true,
+ },
},
},
},
diff --git a/internal/service/cloudapi/disks/flattens.go b/internal/service/cloudapi/disks/flattens.go
index e045f51..522e4f7 100644
--- a/internal/service/cloudapi/disks/flattens.go
+++ b/internal/service/cloudapi/disks/flattens.go
@@ -77,7 +77,9 @@ func flattenDisk(d *schema.ResourceData, disk *disks.RecordDisk) {
d.Set("acl", string(diskAcl))
// d.Set("boot_partition", disk.BootPartition)
d.Set("computes", flattenDiskComputes(disk.Computes))
+ d.Set("created_by", disk.CreatedBy)
d.Set("created_time", disk.CreatedTime)
+ d.Set("deleted_by", disk.DeletedBy)
d.Set("deleted_time", disk.DeletedTime)
d.Set("desc", disk.Description)
d.Set("destruction_time", disk.DestructionTime)
@@ -91,7 +93,9 @@ func flattenDisk(d *schema.ResourceData, disk *disks.RecordDisk) {
d.Set("iotune", flattenIOTune(disk.IOTune))
// d.Set("iqn", disk.IQN)
// d.Set("login", disk.Login)
- // d.Set("milestones", disk.Milestones)
+ d.Set("machine_id", disk.MachineID)
+ d.Set("machine_name", disk.MachineName)
+ d.Set("milestones", disk.Milestones)
d.Set("disk_name", disk.Name)
d.Set("order", disk.Order)
d.Set("params", disk.Params)
@@ -110,6 +114,7 @@ func flattenDisk(d *schema.ResourceData, disk *disks.RecordDisk) {
d.Set("role", disk.Role)
d.Set("sep_id", disk.SepID)
d.Set("sep_type", disk.SepType)
+ d.Set("size_available", disk.SizeAvailable)
d.Set("size_max", disk.SizeMax)
d.Set("size_used", disk.SizeUsed)
d.Set("shareable", disk.Shareable)
@@ -118,6 +123,8 @@ func flattenDisk(d *schema.ResourceData, disk *disks.RecordDisk) {
d.Set("tech_status", disk.TechStatus)
d.Set("type", disk.Type)
d.Set("vmid", disk.VMID)
+ d.Set("updated_by", disk.UpdatedBy)
+ d.Set("updated_time", disk.UpdatedTime)
}
func flattenDiskReplication(rep disks.ItemReplication) []map[string]interface{} {
@@ -211,7 +218,9 @@ func flattenDiskList(dl *disks.ListDisks) []map[string]interface{} {
"account_name": disk.AccountName,
"acl": string(diskAcl),
"computes": flattenDiskComputes(disk.Computes),
+ "created_by": disk.CreatedBy,
"created_time": disk.CreatedTime,
+ "deleted_by": disk.DeletedBy,
"deleted_time": disk.DeletedTime,
"desc": disk.Description,
"destruction_time": disk.DestructionTime,
@@ -223,6 +232,7 @@ func flattenDiskList(dl *disks.ListDisks) []map[string]interface{} {
"iotune": flattenIOTune(disk.IOTune),
"machine_id": disk.MachineID,
"machine_name": disk.MachineName,
+ "milestones": disk.Milestones,
"disk_name": disk.Name,
"order": disk.Order,
"params": disk.Params,
@@ -238,6 +248,7 @@ func flattenDiskList(dl *disks.ListDisks) []map[string]interface{} {
"sep_id": disk.SepID,
"sep_type": disk.SepType,
"shareable": disk.Shareable,
+ "size_available": disk.SizeAvailable,
"size_max": disk.SizeMax,
"size_used": disk.SizeUsed,
"snapshots": flattenDiskSnapshotList(disk.Snapshots),
@@ -245,6 +256,8 @@ func flattenDiskList(dl *disks.ListDisks) []map[string]interface{} {
"tech_status": disk.TechStatus,
"type": disk.Type,
"vmid": disk.VMID,
+ "updated_by": disk.UpdatedBy,
+ "updated_time": disk.UpdatedTime,
}
res = append(res, temp)
}
diff --git a/internal/service/cloudapi/disks/resource_disk.go b/internal/service/cloudapi/disks/resource_disk.go
index a73a329..8114f88 100644
--- a/internal/service/cloudapi/disks/resource_disk.go
+++ b/internal/service/cloudapi/disks/resource_disk.go
@@ -36,7 +36,6 @@ import (
"context"
"fmt"
"strconv"
- "strings"
log "github.com/sirupsen/logrus"
"repository.basistech.ru/BASIS/decort-golang-sdk/pkg/cloudapi/disks"
@@ -47,7 +46,6 @@ import (
"github.com/hashicorp/terraform-plugin-sdk/v2/diag"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
- "github.com/hashicorp/terraform-plugin-sdk/v2/helper/validation"
)
func resourceDiskCreate(ctx context.Context, d *schema.ResourceData, m interface{}) diag.Diagnostics {
@@ -62,23 +60,9 @@ func resourceDiskCreate(ctx context.Context, d *schema.ResourceData, m interface
return diag.Errorf("resourceDiskCreate: can't create Disk because AccountID %d is not allowed or does not exist", d.Get("account_id").(int))
}
- haveGID, err := existGID(ctx, d, m)
- if err != nil {
- return diag.FromErr(err)
- }
- if !haveGID {
- return diag.Errorf("resourceDiskCreate: can't create Disk because GID %d is not allowed or does not exist", d.Get("gid").(int))
- }
-
req.AccountID = uint64(d.Get("account_id").(int))
- req.GID = uint64(d.Get("gid").(int))
req.Name = d.Get("disk_name").(string)
req.Size = uint64(d.Get("size_max").(int))
- if typeRaw, ok := d.GetOk("type"); ok {
- req.Type = strings.ToUpper(typeRaw.(string))
- } else {
- req.Type = "D"
- }
if sepId, ok := d.GetOk("sep_id"); ok {
req.SEPID = uint64(sepId.(int))
@@ -210,14 +194,6 @@ func resourceDiskUpdate(ctx context.Context, d *schema.ResourceData, m interface
return diag.Errorf("resourceDiskUpdate: can't update Disk because AccountID %d is not allowed or does not exist", d.Get("account_id").(int))
}
- haveGID, err := existGID(ctx, d, m)
- if err != nil {
- return diag.FromErr(err)
- }
- if !haveGID {
- return diag.Errorf("resourceDiskUpdate: can't update Disk because GID %d is not allowed or does not exist", d.Get("gid").(int))
- }
-
disk, err := utilityDiskCheckPresence(ctx, d, m)
if err != nil {
d.SetId("")
@@ -377,6 +353,14 @@ func resourceDiskSchemaMake() map[string]*schema.Schema {
//ForceNew: true,
Description: "The unique ID of the subscriber-owner of the disk",
},
+ "created_by": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
+ "deleted_by": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
"disk_name": {
Type: schema.TypeString,
Required: true,
@@ -387,12 +371,6 @@ func resourceDiskSchemaMake() map[string]*schema.Schema {
Required: true,
Description: "Size in GB",
},
- "gid": {
- Type: schema.TypeInt,
- Required: true,
- //ForceNew: true,
- Description: "ID of the grid (platform)",
- },
"pool": {
Type: schema.TypeString,
Optional: true,
@@ -411,13 +389,6 @@ func resourceDiskSchemaMake() map[string]*schema.Schema {
Computed: true,
Description: "Description of disk",
},
- "type": {
- Type: schema.TypeString,
- Optional: true,
- Computed: true,
- ValidateFunc: validation.StringInSlice([]string{"D", "B", "T"}, false),
- Description: "The type of disk in terms of its role in compute: 'B=Boot, D=Data, T=Temp'",
- },
"detach": {
Type: schema.TypeBool,
Optional: true,
@@ -524,7 +495,7 @@ func resourceDiskSchemaMake() map[string]*schema.Schema {
},
},
"present_to": {
- Type: schema.TypeList,
+ Type: schema.TypeMap,
Computed: true,
Elem: &schema.Schema{
Type: schema.TypeInt,
@@ -585,6 +556,11 @@ func resourceDiskSchemaMake() map[string]*schema.Schema {
Computed: true,
Description: "Name of the device",
},
+ "gid": {
+ Type: schema.TypeInt,
+ Computed: true,
+ Description: "ID of the grid (platform)",
+ },
// "disk_path": {
// Type: schema.TypeString,
// Computed: true,
@@ -623,6 +599,14 @@ func resourceDiskSchemaMake() map[string]*schema.Schema {
// Computed: true,
// Description: "Milestones",
// },
+ "machine_id": {
+ Type: schema.TypeInt,
+ Computed: true,
+ },
+ "machine_name": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
"order": {
Type: schema.TypeInt,
Computed: true,
@@ -638,6 +622,11 @@ func resourceDiskSchemaMake() map[string]*schema.Schema {
Computed: true,
Description: "ID of the parent disk",
},
+ "type": {
+ Type: schema.TypeString,
+ Computed: true,
+ Description: "The type of disk in terms of its role in compute: 'B=Boot, D=Data, T=Temp'",
+ },
// "passwd": {
// Type: schema.TypeString,
// Computed: true,
@@ -779,6 +768,14 @@ func resourceDiskSchemaMake() map[string]*schema.Schema {
Computed: true,
Description: "Virtual Machine ID (Deprecated)",
},
+ "updated_by": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
+ "updated_time": {
+ Type: schema.TypeInt,
+ Computed: true,
+ },
}
return rets
diff --git a/internal/service/cloudapi/disks/resource_disk_replication.go b/internal/service/cloudapi/disks/resource_disk_replication.go
index 5e3700a..1c28cf9 100644
--- a/internal/service/cloudapi/disks/resource_disk_replication.go
+++ b/internal/service/cloudapi/disks/resource_disk_replication.go
@@ -454,7 +454,7 @@ func resourceDiskReplicationSchemaMake() map[string]*schema.Schema {
Description: "ID of the pci slot to which the disk is connected",
},
"present_to": {
- Type: schema.TypeList,
+ Type: schema.TypeMap,
Computed: true,
Elem: &schema.Schema{
Type: schema.TypeInt,
diff --git a/internal/service/cloudapi/extnet/data_source_extnet.go b/internal/service/cloudapi/extnet/data_source_extnet.go
index 6e6174e..4ac0a37 100644
--- a/internal/service/cloudapi/extnet/data_source_extnet.go
+++ b/internal/service/cloudapi/extnet/data_source_extnet.go
@@ -270,6 +270,13 @@ func dataSourceExtnetSchemaMake() map[string]*schema.Schema {
},
},
},
+ "ntp": {
+ Type: schema.TypeList,
+ Computed: true,
+ Elem: &schema.Schema{
+ Type: schema.TypeString,
+ },
+ },
}
return res
}
diff --git a/internal/service/cloudapi/extnet/data_source_extnet_list.go b/internal/service/cloudapi/extnet/data_source_extnet_list.go
index c104000..46f3e49 100644
--- a/internal/service/cloudapi/extnet/data_source_extnet_list.go
+++ b/internal/service/cloudapi/extnet/data_source_extnet_list.go
@@ -107,6 +107,11 @@ func dataSourceExtnetListSchemaMake() map[string]*schema.Schema {
Optional: true,
Description: "Page size",
},
+ "ovs_bridge": {
+ Type: schema.TypeString,
+ Optional: true,
+ Description: "Name of the openVswitch bridge",
+ },
"items": {
Type: schema.TypeList,
Computed: true,
diff --git a/internal/service/cloudapi/extnet/flattens.go b/internal/service/cloudapi/extnet/flattens.go
index 41f43d1..2da36fd 100644
--- a/internal/service/cloudapi/extnet/flattens.go
+++ b/internal/service/cloudapi/extnet/flattens.go
@@ -24,6 +24,7 @@ func flattenExtnet(d *schema.ResourceData, e *extnet.RecordExtNet) {
d.Set("net_name", e.Name)
d.Set("network", e.Network)
d.Set("network_id", e.NetworkID)
+ d.Set("ntp", e.NTP)
d.Set("pre_reservations_num", e.PreReservationsNum)
d.Set("prefix", e.Prefix)
d.Set("pri_vnf_dev_id", e.PriVNFDevID)
diff --git a/internal/service/cloudapi/extnet/utility_extnet_list.go b/internal/service/cloudapi/extnet/utility_extnet_list.go
index 4f9b29b..c9a39bd 100644
--- a/internal/service/cloudapi/extnet/utility_extnet_list.go
+++ b/internal/service/cloudapi/extnet/utility_extnet_list.go
@@ -46,11 +46,11 @@ func utilityExtnetListCheckPresence(ctx context.Context, d *schema.ResourceData,
c := m.(*controller.ControllerCfg)
req := extnet.ListRequest{}
- if accountId, ok := d.GetOk("account_id"); ok {
- req.AccountID = uint64(accountId.(int))
+ if accountID, ok := d.GetOk("account_id"); ok {
+ req.AccountID = uint64(accountID.(int))
}
- if by_id, ok := d.GetOk("by_id"); ok {
- req.ByID = uint64(by_id.(int))
+ if byID, ok := d.GetOk("by_id"); ok {
+ req.ByID = uint64(byID.(int))
}
if name, ok := d.GetOk("name"); ok {
req.Name = name.(string)
@@ -58,11 +58,11 @@ func utilityExtnetListCheckPresence(ctx context.Context, d *schema.ResourceData,
if network, ok := d.GetOk("network"); ok {
req.Network = network.(string)
}
- if vlan_id, ok := d.GetOk("vlan_id"); ok {
- req.VLANID = uint64(vlan_id.(int))
+ if vlanID, ok := d.GetOk("vlan_id"); ok {
+ req.VLANID = uint64(vlanID.(int))
}
- if vnfdev_id, ok := d.GetOk("vnfdev_id"); ok {
- req.VNFDevID = uint64(vnfdev_id.(int))
+ if vnfDevID, ok := d.GetOk("vnfdev_id"); ok {
+ req.VNFDevID = uint64(vnfDevID.(int))
}
if status, ok := d.GetOk("status"); ok {
req.Status = status.(string)
@@ -77,6 +77,10 @@ func utilityExtnetListCheckPresence(ctx context.Context, d *schema.ResourceData,
req.Size = uint64(size.(int))
}
+ if ovsBridge, ok := d.GetOk("ovs_bridge"); ok {
+ req.OVSBridge = ovsBridge.(string)
+ }
+
log.Debugf("utilityExtnetListCheckPresence")
extnetList, err := c.CloudAPI().ExtNet().List(ctx, req)
if err != nil {
diff --git a/internal/service/cloudapi/image/flattens.go b/internal/service/cloudapi/image/flattens.go
index 916f777..376db11 100644
--- a/internal/service/cloudapi/image/flattens.go
+++ b/internal/service/cloudapi/image/flattens.go
@@ -58,6 +58,7 @@ func flattenImage(d *schema.ResourceData, img *image.RecordImage) {
d.Set("sep_id", img.SepID)
d.Set("shared_with", img.SharedWith)
d.Set("size", img.Size)
+ d.Set("snapshot_id", img.SnapshotID)
d.Set("status", img.Status)
d.Set("tech_status", img.TechStatus)
d.Set("type", img.Type)
diff --git a/internal/service/cloudapi/image/image_ds_subresource.go b/internal/service/cloudapi/image/image_ds_subresource.go
index e0fc599..26d5a4a 100644
--- a/internal/service/cloudapi/image/image_ds_subresource.go
+++ b/internal/service/cloudapi/image/image_ds_subresource.go
@@ -169,7 +169,7 @@ func dataSourceImageExtendSchemaMake() map[string]*schema.Schema {
Computed: true,
},
"present_to": {
- Type: schema.TypeList,
+ Type: schema.TypeMap,
Computed: true,
Elem: &schema.Schema{
Type: schema.TypeInt,
@@ -198,6 +198,10 @@ func dataSourceImageExtendSchemaMake() map[string]*schema.Schema {
Type: schema.TypeInt,
Computed: true,
},
+ "snapshot_id": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
"status": {
Type: schema.TypeString,
Computed: true,
diff --git a/internal/service/cloudapi/image/image_rs_subresource.go b/internal/service/cloudapi/image/image_rs_subresource.go
index 4653ac1..3a88370 100644
--- a/internal/service/cloudapi/image/image_rs_subresource.go
+++ b/internal/service/cloudapi/image/image_rs_subresource.go
@@ -68,8 +68,8 @@ func resourceImageSchemaMake(sch map[string]*schema.Schema) map[string]*schema.S
sch["type"] = &schema.Schema{
Type: schema.TypeString,
Required: true,
- ValidateFunc: validation.StringInSlice([]string{"linux", "windows", "other"}, true),
- Description: "Image type linux, windows or other",
+ ValidateFunc: validation.StringInSlice([]string{"linux", "windows", "unknown"}, true),
+ Description: "Image type linux, windows or unknown",
}
sch["hot_resize"] = &schema.Schema{
diff --git a/internal/service/cloudapi/image/resource_image_from_blank_compute.go b/internal/service/cloudapi/image/resource_image_from_blank_compute.go
index 64e242f..26d1102 100644
--- a/internal/service/cloudapi/image/resource_image_from_blank_compute.go
+++ b/internal/service/cloudapi/image/resource_image_from_blank_compute.go
@@ -90,9 +90,6 @@ func resourceImageFromBlankComputeCreate(ctx context.Context, d *schema.Resource
if accountId, ok := d.GetOk("account_id"); ok {
req.AccountID = uint64(accountId.(int))
}
- if sepId, ok := d.GetOk("sep_id"); ok {
- req.SepID = uint64(sepId.(int))
- }
if poolName, ok := d.GetOk("pool_name"); ok {
req.PoolName = poolName.(string)
}
@@ -302,8 +299,8 @@ func resourceImageFromBlankComputeSchemaMake() map[string]*schema.Schema {
"type": {
Type: schema.TypeString,
Required: true,
- ValidateFunc: validation.StringInSlice([]string{"linux", "windows", "other"}, true),
- Description: "Image type linux, windows or other",
+ ValidateFunc: validation.StringInSlice([]string{"linux", "windows", "unknown"}, true),
+ Description: "Image type linux, windows or unknown",
},
"username": {
@@ -326,7 +323,6 @@ func resourceImageFromBlankComputeSchemaMake() map[string]*schema.Schema {
},
"sep_id": {
Type: schema.TypeInt,
- Optional: true,
Computed: true,
Description: "storage endpoint provider ID",
},
@@ -457,7 +453,7 @@ func resourceImageFromBlankComputeSchemaMake() map[string]*schema.Schema {
Computed: true,
},
"present_to": {
- Type: schema.TypeList,
+ Type: schema.TypeMap,
Computed: true,
Elem: &schema.Schema{
Type: schema.TypeInt,
@@ -482,6 +478,10 @@ func resourceImageFromBlankComputeSchemaMake() map[string]*schema.Schema {
Type: schema.TypeInt,
Computed: true,
},
+ "snapshot_id": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
"status": {
Type: schema.TypeString,
Computed: true,
diff --git a/internal/service/cloudapi/image/resource_image_from_platform_disk.go b/internal/service/cloudapi/image/resource_image_from_platform_disk.go
index 594feb2..d535973 100644
--- a/internal/service/cloudapi/image/resource_image_from_platform_disk.go
+++ b/internal/service/cloudapi/image/resource_image_from_platform_disk.go
@@ -93,9 +93,6 @@ func resourceImageFromPlatformDiskCreate(ctx context.Context, d *schema.Resource
if accountId, ok := d.GetOk("account_id"); ok {
req.AccountID = uint64(accountId.(int))
}
- if sepId, ok := d.GetOk("sep_id"); ok {
- req.SepID = uint64(sepId.(int))
- }
if poolName, ok := d.GetOk("pool_name"); ok {
req.PoolName = poolName.(string)
}
@@ -292,8 +289,8 @@ func resourceImageFromPlatformDiskSchemaMake() map[string]*schema.Schema {
"type": {
Type: schema.TypeString,
Required: true,
- ValidateFunc: validation.StringInSlice([]string{"linux", "windows", "other"}, true),
- Description: "Image type linux, windows or other",
+ ValidateFunc: validation.StringInSlice([]string{"linux", "windows", "unknown"}, true),
+ Description: "Image type linux, windows or unknown",
},
"architecture": {
Type: schema.TypeString,
@@ -322,7 +319,6 @@ func resourceImageFromPlatformDiskSchemaMake() map[string]*schema.Schema {
},
"sep_id": {
Type: schema.TypeInt,
- Optional: true,
Computed: true,
Description: "storage endpoint provider ID",
},
@@ -454,7 +450,7 @@ func resourceImageFromPlatformDiskSchemaMake() map[string]*schema.Schema {
Computed: true,
},
"present_to": {
- Type: schema.TypeList,
+ Type: schema.TypeMap,
Computed: true,
Elem: &schema.Schema{
Type: schema.TypeInt,
@@ -479,6 +475,10 @@ func resourceImageFromPlatformDiskSchemaMake() map[string]*schema.Schema {
Type: schema.TypeInt,
Computed: true,
},
+ "snapshot_id": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
"status": {
Type: schema.TypeString,
Computed: true,
diff --git a/internal/service/cloudapi/k8s/data_source_k8s.go b/internal/service/cloudapi/k8s/data_source_k8s.go
index 565383b..72be400 100644
--- a/internal/service/cloudapi/k8s/data_source_k8s.go
+++ b/internal/service/cloudapi/k8s/data_source_k8s.go
@@ -357,6 +357,10 @@ func dataSourceK8sSchemaMake() map[string]*schema.Schema {
Type: schema.TypeInt,
Computed: true,
},
+ "desc": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
"deleted_by": {
Type: schema.TypeString,
Computed: true,
diff --git a/internal/service/cloudapi/k8s/flattens.go b/internal/service/cloudapi/k8s/flattens.go
index 2ab76b8..9a01ee9 100644
--- a/internal/service/cloudapi/k8s/flattens.go
+++ b/internal/service/cloudapi/k8s/flattens.go
@@ -240,6 +240,7 @@ func flattenK8sData(d *schema.ResourceData, cluster k8s.RecordK8S, masters []com
d.Set("k8sci_id", cluster.CIID)
d.Set("created_by", cluster.CreatedBy)
d.Set("created_time", cluster.CreatedTime)
+ d.Set("desc", cluster.Description)
d.Set("deleted_by", cluster.DeletedBy)
d.Set("deleted_time", cluster.DeletedTime)
d.Set("k8s_ci_name", cluster.K8CIName)
@@ -353,6 +354,7 @@ func flattenResourceK8sCP(d *schema.ResourceData, k8s k8s.RecordK8S, masters []c
d.Set("bservice_id", k8s.BServiceID)
d.Set("created_by", k8s.CreatedBy)
d.Set("created_time", k8s.CreatedTime)
+ d.Set("desc", k8s.Description)
d.Set("deleted_by", k8s.DeletedBy)
d.Set("deleted_time", k8s.DeletedTime)
d.Set("k8s_ci_name", k8s.K8CIName)
@@ -393,6 +395,7 @@ func flattenResourceK8s(d *schema.ResourceData, k8s k8s.RecordK8S, masters []com
d.Set("bservice_id", k8s.BServiceID)
d.Set("created_by", k8s.CreatedBy)
d.Set("created_time", k8s.CreatedTime)
+ d.Set("desc", k8s.Description)
d.Set("deleted_by", k8s.DeletedBy)
d.Set("deleted_time", k8s.DeletedTime)
d.Set("k8s_ci_name", k8s.K8CIName)
diff --git a/internal/service/cloudapi/kvmvm/data_source_compute.go b/internal/service/cloudapi/kvmvm/data_source_compute.go
index 453a143..fa20bfd 100644
--- a/internal/service/cloudapi/kvmvm/data_source_compute.go
+++ b/internal/service/cloudapi/kvmvm/data_source_compute.go
@@ -359,7 +359,7 @@ func computeListDisksSchemaMake() map[string]*schema.Schema {
Computed: true,
},
"present_to": {
- Type: schema.TypeList,
+ Type: schema.TypeMap,
Computed: true,
Elem: &schema.Schema{
Type: schema.TypeInt,
@@ -422,6 +422,10 @@ func computeListDisksSchemaMake() map[string]*schema.Schema {
Type: schema.TypeBool,
Computed: true,
},
+ "size_available": {
+ Type: schema.TypeFloat,
+ Computed: true,
+ },
"size_max": {
Type: schema.TypeInt,
Computed: true,
@@ -966,10 +970,88 @@ func dataSourceComputeSchemaMake() map[string]*schema.Schema {
Computed: true,
},
"vgpus": {
- Type: schema.TypeList,
- Computed: true,
- Elem: &schema.Schema{
- Type: schema.TypeInt,
+ Type: schema.TypeList,
+ Computed: true,
+ Description: "List of virtual GPUs",
+ Elem: &schema.Resource{
+ Schema: map[string]*schema.Schema{
+ "id": {
+ Type: schema.TypeInt,
+ Computed: true,
+ },
+ "gid": {
+ Type: schema.TypeInt,
+ Computed: true,
+ },
+ "type": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
+ "mode": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
+ "status": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
+ "profile_id": {
+ Type: schema.TypeInt,
+ Computed: true,
+ },
+ "ram": {
+ Type: schema.TypeInt,
+ Computed: true,
+ },
+ "last_update_time": {
+ Type: schema.TypeInt,
+ Computed: true,
+ },
+ "created_time": {
+ Type: schema.TypeInt,
+ Computed: true,
+ },
+ "deleted_time": {
+ Type: schema.TypeInt,
+ Computed: true,
+ },
+ "vmid": {
+ Type: schema.TypeInt,
+ Computed: true,
+ },
+ "pgpuid": {
+ Type: schema.TypeInt,
+ Computed: true,
+ },
+ "reference_id": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
+ "account_id": {
+ Type: schema.TypeInt,
+ Computed: true,
+ },
+ "rg_id": {
+ Type: schema.TypeInt,
+ Computed: true,
+ },
+ "last_claimed_by": {
+ Type: schema.TypeInt,
+ Computed: true,
+ },
+ "pci_slot": {
+ Type: schema.TypeInt,
+ Computed: true,
+ },
+ "bus_number": {
+ Type: schema.TypeInt,
+ Computed: true,
+ },
+ "guid": {
+ Type: schema.TypeInt,
+ Computed: true,
+ },
+ },
},
},
"virtual_image_id": {
@@ -988,6 +1070,22 @@ func dataSourceComputeSchemaMake() map[string]*schema.Schema {
Type: schema.TypeString,
Computed: true,
},
+ "loader_type": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
+ "boot_type": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
+ "hot_resize": {
+ Type: schema.TypeBool,
+ Computed: true,
+ },
+ "network_interface_naming": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
}
}
diff --git a/internal/service/cloudapi/kvmvm/data_source_compute_list.go b/internal/service/cloudapi/kvmvm/data_source_compute_list.go
index 6677ddf..1b7ed9a 100644
--- a/internal/service/cloudapi/kvmvm/data_source_compute_list.go
+++ b/internal/service/cloudapi/kvmvm/data_source_compute_list.go
@@ -381,6 +381,22 @@ func itemComputeSchemaMake() map[string]*schema.Schema {
Type: schema.TypeInt,
Computed: true,
},
+ "loader_type": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
+ "boot_type": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
+ "hot_resize": {
+ Type: schema.TypeBool,
+ Computed: true,
+ },
+ "network_interface_naming": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
}
}
diff --git a/internal/service/cloudapi/kvmvm/flattens.go b/internal/service/cloudapi/kvmvm/flattens.go
index 281313f..d634f37 100644
--- a/internal/service/cloudapi/kvmvm/flattens.go
+++ b/internal/service/cloudapi/kvmvm/flattens.go
@@ -47,9 +47,9 @@ func flattenDisks(disks []compute.InfoDisk) []map[string]interface{} {
res := make([]map[string]interface{}, 0)
for _, disk := range disks {
temp := map[string]interface{}{
- "bus_number": disk.BusNumber,
- "disk_id": disk.ID,
- "pci_slot": disk.PCISlot,
+ // "bus_number": disk.BusNumber,
+ "disk_id": disk.ID,
+ // "pci_slot": disk.PCISlot,
}
res = append(res, temp)
}
@@ -217,28 +217,32 @@ func flattenComputeList(computes *compute.ListComputes) []map[string]interface{}
"need_reboot": compute.NeedReboot,
"numa_affinity": compute.NumaAffinity,
"numa_node_id": compute.NumaNodeId,
- "pinned": compute.Pinned,
- "preferred_cpu": compute.PreferredCPU,
- "ram": compute.RAM,
- "reference_id": compute.ReferenceID,
- "registered": compute.Registered,
- "res_name": compute.ResName,
- "reserved_node_cpus": compute.ReservedNodeCpus,
- "rg_id": compute.RGID,
- "rg_name": compute.RGName,
- "snap_sets": flattenSnapSets(compute.SnapSets),
- "stateless_sep_id": compute.StatelessSepID,
- "stateless_sep_type": compute.StatelessSepType,
- "status": compute.Status,
- "tags": flattenTags(compute.Tags),
- "tech_status": compute.TechStatus,
- "total_disk_size": compute.TotalDiskSize,
- "updated_by": compute.UpdatedBy,
- "updated_time": compute.UpdatedTime,
- "user_managed": compute.UserManaged,
- "vgpus": compute.VGPUs,
- "vins_connected": compute.VINSConnected,
- "virtual_image_id": compute.VirtualImageID,
+ // "pinned": compute.Pinned,
+ "preferred_cpu": compute.PreferredCPU,
+ "ram": compute.RAM,
+ "reference_id": compute.ReferenceID,
+ "registered": compute.Registered,
+ "res_name": compute.ResName,
+ "reserved_node_cpus": compute.ReservedNodeCpus,
+ "rg_id": compute.RGID,
+ "rg_name": compute.RGName,
+ "snap_sets": flattenSnapSets(compute.SnapSets),
+ "stateless_sep_id": compute.StatelessSepID,
+ "stateless_sep_type": compute.StatelessSepType,
+ "status": compute.Status,
+ "tags": flattenTags(compute.Tags),
+ "tech_status": compute.TechStatus,
+ "total_disk_size": compute.TotalDiskSize,
+ "updated_by": compute.UpdatedBy,
+ "updated_time": compute.UpdatedTime,
+ "user_managed": compute.UserManaged,
+ "vgpus": compute.VGPUs,
+ "vins_connected": compute.VINSConnected,
+ "virtual_image_id": compute.VirtualImageID,
+ "loader_type": compute.LoaderType,
+ "boot_type": compute.BootType,
+ "hot_resize": compute.HotResize,
+ "network_interface_naming": compute.NetworkInterfaceNaming,
}
res = append(res, temp)
}
@@ -250,17 +254,18 @@ func flattenBootDisk(bootDisk *compute.ItemComputeDisk) []map[string]interface{}
res := make([]map[string]interface{}, 0)
temp := map[string]interface{}{
- "disk_name": bootDisk.Name,
- "disk_id": bootDisk.ID,
- "disk_type": bootDisk.Type,
- "sep_id": bootDisk.SepID,
- "shareable": bootDisk.Shareable,
- "size_max": bootDisk.SizeMax,
- "size_used": bootDisk.SizeUsed,
- "pool": bootDisk.Pool,
- "desc": bootDisk.Description,
- "image_id": bootDisk.ImageID,
- "size": bootDisk.SizeMax,
+ "disk_name": bootDisk.Name,
+ "disk_id": bootDisk.ID,
+ "disk_type": bootDisk.Type,
+ "sep_id": bootDisk.SepID,
+ "shareable": bootDisk.Shareable,
+ "size_max": bootDisk.SizeMax,
+ "size_used": bootDisk.SizeUsed,
+ "pool": bootDisk.Pool,
+ "desc": bootDisk.Description,
+ "image_id": bootDisk.ImageID,
+ "size": bootDisk.SizeMax,
+ "present_to": bootDisk.PresentTo,
}
res = append(res, temp)
@@ -301,6 +306,7 @@ func flattenComputeDisksDemo(disksList compute.ListComputeDisks, disksBlocks, ex
"image_id": disk.ImageID,
"size": disk.SizeMax,
"permanently": pernamentlyValue,
+ "present_to": disk.PresentTo,
}
res = append(res, temp)
indexDataDisks++
@@ -415,7 +421,7 @@ func flattenCompute(d *schema.ResourceData, computeRec compute.RecordCompute, pc
if err := d.Set("os_users", parseOsUsers(computeRec.OSUsers)); err != nil {
return err
}
- d.Set("pinned", computeRec.Pinned)
+ // d.Set("pinned", computeRec.Pinned)
d.Set("preferred_cpu", computeRec.PreferredCPU)
d.Set("ram", computeRec.RAM)
d.Set("reference_id", computeRec.ReferenceID)
@@ -434,9 +440,13 @@ func flattenCompute(d *schema.ResourceData, computeRec compute.RecordCompute, pc
d.Set("updated_time", computeRec.UpdatedTime)
d.Set("user_managed", computeRec.UserManaged)
d.Set("vnc_password", computeRec.VNCPassword)
- d.Set("vgpus", computeRec.VGPUs)
+ d.Set("vgpus", flattenVGPUs(computeRec.VGPUs))
d.Set("virtual_image_id", computeRec.VirtualImageID)
d.Set("virtual_image_name", computeRec.VirtualImageName)
+ d.Set("loader_type", computeRec.LoaderType)
+ d.Set("boot_type", computeRec.BootType)
+ d.Set("hot_resize", computeRec.HotResize)
+ d.Set("network_interface_naming", computeRec.NetworkInterfaceNaming)
d.Set("enabled", false)
if computeRec.Status == status.Enabled {
@@ -561,6 +571,7 @@ func flattenListComputeDisks(disks compute.ListComputeDisks) []map[string]interf
"role": disk.Role,
"sep_id": disk.SepID,
"shareable": disk.Shareable,
+ "size_available": disk.SizeAvailable,
"size_max": disk.SizeMax,
"size_used": disk.SizeUsed,
"snapshots": flattenSnapshots(disk.Snapshots),
@@ -660,7 +671,7 @@ func flattenDataCompute(d *schema.ResourceData, computeRec compute.RecordCompute
d.Set("natable_vins_network", computeRec.NatableVINSNetwork)
d.Set("natable_vins_network_name", computeRec.NatableVINSNetworkName)
d.Set("os_users", flattenOsUsers(computeRec.OSUsers))
- d.Set("pinned", computeRec.Pinned)
+ // d.Set("pinned", computeRec.Pinned)
d.Set("preferred_CPU", computeRec.PreferredCPU)
d.Set("ram", computeRec.RAM)
d.Set("reference_id", computeRec.ReferenceID)
@@ -680,10 +691,14 @@ func flattenDataCompute(d *schema.ResourceData, computeRec compute.RecordCompute
d.Set("user_managed", computeRec.UserManaged)
d.Set("userdata", string(userdata))
d.Set("vnc_password", computeRec.VNCPassword)
- d.Set("vgpus", computeRec.VGPUs)
+ d.Set("vgpus", flattenVGPUs(computeRec.VGPUs))
d.Set("virtual_image_id", computeRec.VirtualImageID)
d.Set("virtual_image_name", computeRec.VirtualImageName)
d.Set("pci_devices", flattenPCI(*pciList))
+ d.Set("loader_type", computeRec.LoaderType)
+ d.Set("boot_type", computeRec.BootType)
+ d.Set("hot_resize", computeRec.HotResize)
+ d.Set("network_interface_naming", computeRec.NetworkInterfaceNaming)
}
func flattenPCI(pciList compute.ListPCIDevices) []uint64 {
@@ -821,3 +836,34 @@ func flattenPCIDevice(deviceList []compute.ItemPCIDevice) []map[string]interface
}
return res
}
+
+func flattenVGPUs(vgpus []compute.VGPUItem) []map[string]interface{} {
+ res := make([]map[string]interface{}, len(vgpus))
+
+ for i, vgpu := range vgpus {
+
+ res[i] = map[string]interface{}{
+ "id": int(vgpu.ID),
+ "gid": int(vgpu.GID),
+ "type": vgpu.Type,
+ "mode": vgpu.Mode,
+ "status": vgpu.Status,
+ "profile_id": vgpu.ProfileID,
+ "ram": int(vgpu.RAM),
+ "last_update_time": int(vgpu.LastUpdateTime),
+ "created_time": int(vgpu.CreatedTime),
+ "deleted_time": int(vgpu.DeletedTime),
+ "vmid": int(vgpu.VMID),
+ "pgpuid": int(vgpu.PGPuid),
+ "reference_id": vgpu.ReferenceID,
+ "account_id": int(vgpu.AccountID),
+ "rg_id": int(vgpu.RgID),
+ "last_claimed_by": int(vgpu.LastClaimedBy),
+ "pci_slot": int(vgpu.PCISlot),
+ "bus_number": int(vgpu.BusNumber),
+ "guid": int(vgpu.GUID),
+ }
+ }
+
+ return res
+}
diff --git a/internal/service/cloudapi/kvmvm/network_subresource.go b/internal/service/cloudapi/kvmvm/network_subresource.go
index 9030f93..fea4086 100644
--- a/internal/service/cloudapi/kvmvm/network_subresource.go
+++ b/internal/service/cloudapi/kvmvm/network_subresource.go
@@ -147,9 +147,11 @@ func networkSubresourceSchemaMake() map[string]*schema.Schema {
},
"mac": {
- Type: schema.TypeString,
- Computed: true,
- Description: "MAC address associated with this connection. MAC address is assigned automatically.",
+ Type: schema.TypeString,
+ Optional: true,
+ Computed: true,
+ DiffSuppressFunc: networkSubresIPAddreDiffSupperss,
+ Description: "MAC address associated with this connection. MAC address is assigned automatically.",
},
"weight": {
diff --git a/internal/service/cloudapi/kvmvm/resource_compute.go b/internal/service/cloudapi/kvmvm/resource_compute.go
index 79240b3..b0c82cf 100644
--- a/internal/service/cloudapi/kvmvm/resource_compute.go
+++ b/internal/service/cloudapi/kvmvm/resource_compute.go
@@ -171,6 +171,11 @@ func resourceComputeCreate(ctx context.Context, d *schema.ResourceData, m interf
reqInterface.IPAddr = ipaddr.(string)
}
+ macaddr, macSet := netInterfaceVal["mac"]
+ if macSet {
+ reqInterface.MAC = macaddr.(string)
+ }
+
interfaces = append(interfaces, reqInterface)
}
@@ -288,6 +293,38 @@ func resourceComputeCreate(ctx context.Context, d *schema.ResourceData, m interf
log.Debugf("resourceComputeCreate: new simple Compute ID %d, name %s created", computeId, d.Get("name").(string))
+ updateReq := compute.UpdateRequest{}
+
+ loaderType, loaderTypeOk := d.GetOk("loader_type")
+ bootType, bootTypeOk := d.GetOk("boot_type")
+ hotResize, hotResizeOk := d.GetOk("hot_resize")
+ networkInterfaceNaming, networkInterfaceNamingOk := d.GetOk("network_interface_naming")
+
+ if loaderTypeOk {
+ updateReq.LoaderType = loaderType.(string)
+ }
+
+ if bootTypeOk {
+ updateReq.BootType = bootType.(string)
+ }
+
+ if hotResizeOk {
+ updateReq.HotResize = hotResize.(bool)
+ }
+
+ if networkInterfaceNamingOk {
+ updateReq.NetworkInterfaceNaming = networkInterfaceNaming.(string)
+ }
+
+ if loaderTypeOk || bootTypeOk || hotResizeOk || networkInterfaceNamingOk {
+ log.Debugf("resourceComputeCreate: change loaderType or bootType or hotResize or networkInterfaceNaming on ComputeID: %d", computeId)
+ updateReq.ComputeID = computeId
+ _, err := c.CloudAPI().Compute().Update(ctx, updateReq)
+ if err != nil {
+ warnings.Add(err)
+ }
+ }
+
if ars, ok := d.GetOk("pci_devices"); ok {
log.Debugf("resourceComputeCreate: add pci devices on ComputeID: %d", computeId)
addedPciDevices := ars.(*schema.Set).List()
@@ -920,7 +957,18 @@ func resourceComputeUpdate(ctx context.Context, d *schema.ResourceData, m interf
}
}
- if d.HasChanges("description", "name", "numa_affinity", "cpu_pin", "hp_backed", "chipset", "auto_start_w_node", "preferred_cpu") {
+ if d.HasChanges("description",
+ "name",
+ "numa_affinity",
+ "cpu_pin",
+ "hp_backed",
+ "chipset",
+ "auto_start_w_node",
+ "preferred_cpu",
+ "loader_type",
+ "boot_type",
+ "hot_resize",
+ "network_interface_naming") {
req := compute.UpdateRequest{
ComputeID: computeRec.ID,
}
@@ -956,6 +1004,22 @@ func resourceComputeUpdate(ctx context.Context, d *schema.ResourceData, m interf
req.HPBacked = d.Get("hp_backed").(bool)
req.AutoStart = d.Get("auto_start_w_node").(bool)
+ if d.HasChange("loader_type") {
+ req.LoaderType = d.Get("loader_type").(string)
+ }
+
+ if d.HasChange("boot_type") {
+ req.BootType = d.Get("boot_type").(string)
+ }
+
+ if d.HasChange("hot_resize") {
+ req.HotResize = d.Get("hot_resize").(bool)
+ }
+
+ if d.HasChange("network_interface_naming") {
+ req.NetworkInterfaceNaming = d.Get("network_interface_naming").(string)
+ }
+
// Note bene: numa_affinity, cpu_pin and hp_backed are not allowed to be changed for compute in STARTED tech status.
// If STARTED, we need to stop it before update
var isStopRequired bool
@@ -1824,6 +1888,13 @@ func disksSubresourceSchemaMake() map[string]*schema.Schema {
Type: schema.TypeInt,
Computed: true,
},
+ "present_to": {
+ Type: schema.TypeMap,
+ Computed: true,
+ Elem: &schema.Schema{
+ Type: schema.TypeInt,
+ },
+ },
}
return rets
}
@@ -1941,6 +2012,13 @@ func ResourceComputeSchemaMake() map[string]*schema.Schema {
),
Description: "Amount of RAM in MB to allocate to this compute instance.",
},
+ "boot_type": {
+ Type: schema.TypeString,
+ Optional: true,
+ Computed: true,
+ ValidateFunc: validation.StringInSlice([]string{"bios", "uefi"}, false),
+ Description: "Type of image upload.",
+ },
"image_id": {
Type: schema.TypeInt,
Optional: true,
@@ -2096,7 +2174,6 @@ func ResourceComputeSchemaMake() map[string]*schema.Schema {
Type: schema.TypeSet,
Optional: true,
MinItems: 1,
- MaxItems: constants.MAX_NETWORKS_PER_COMPUTE,
Elem: &schema.Resource{
Schema: networkSubresourceSchemaMake(),
},
@@ -2171,6 +2248,19 @@ func ResourceComputeSchemaMake() map[string]*schema.Schema {
Computed: true,
Description: "If true - enable compute, else - disable",
},
+ "loader_type": {
+ Type: schema.TypeString,
+ Optional: true,
+ Computed: true,
+ ValidateFunc: validation.StringInSlice([]string{"linux", "windows", "unknown"}, false),
+ Description: "Type of image vm.",
+ },
+ "hot_resize": {
+ Type: schema.TypeBool,
+ Optional: true,
+ Computed: true,
+ Description: "Type of image vm.",
+ },
"pause": {
Type: schema.TypeBool,
Optional: true,
@@ -2230,6 +2320,13 @@ func ResourceComputeSchemaMake() map[string]*schema.Schema {
Optional: true,
Description: "compute purpose",
},
+ "network_interface_naming": {
+ Type: schema.TypeString,
+ Optional: true,
+ Computed: true,
+ ValidateFunc: validation.StringInSlice([]string{"eth", "ens"}, false),
+ Description: "Name of netfowrk interface.",
+ },
"numa_affinity": {
Type: schema.TypeString,
Optional: true,
@@ -2481,10 +2578,88 @@ func ResourceComputeSchemaMake() map[string]*schema.Schema {
Computed: true,
},
"vgpus": {
- Type: schema.TypeList,
- Computed: true,
- Elem: &schema.Schema{
- Type: schema.TypeInt,
+ Type: schema.TypeList,
+ Computed: true,
+ Description: "List of virtual GPUs",
+ Elem: &schema.Resource{
+ Schema: map[string]*schema.Schema{
+ "id": {
+ Type: schema.TypeInt,
+ Computed: true,
+ },
+ "gid": {
+ Type: schema.TypeInt,
+ Computed: true,
+ },
+ "type": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
+ "mode": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
+ "status": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
+ "profile_id": {
+ Type: schema.TypeInt,
+ Computed: true,
+ },
+ "ram": {
+ Type: schema.TypeInt,
+ Computed: true,
+ },
+ "last_update_time": {
+ Type: schema.TypeInt,
+ Computed: true,
+ },
+ "created_time": {
+ Type: schema.TypeInt,
+ Computed: true,
+ },
+ "deleted_time": {
+ Type: schema.TypeInt,
+ Computed: true,
+ },
+ "vmid": {
+ Type: schema.TypeInt,
+ Computed: true,
+ },
+ "pgpuid": {
+ Type: schema.TypeInt,
+ Computed: true,
+ },
+ "reference_id": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
+ "account_id": {
+ Type: schema.TypeInt,
+ Computed: true,
+ },
+ "rg_id": {
+ Type: schema.TypeInt,
+ Computed: true,
+ },
+ "last_claimed_by": {
+ Type: schema.TypeInt,
+ Computed: true,
+ },
+ "pci_slot": {
+ Type: schema.TypeInt,
+ Computed: true,
+ },
+ "bus_number": {
+ Type: schema.TypeInt,
+ Computed: true,
+ },
+ "guid": {
+ Type: schema.TypeInt,
+ Computed: true,
+ },
+ },
},
},
"virtual_image_id": {
diff --git a/internal/service/cloudapi/kvmvm/utility_compute.go b/internal/service/cloudapi/kvmvm/utility_compute.go
index 973259e..6b20898 100644
--- a/internal/service/cloudapi/kvmvm/utility_compute.go
+++ b/internal/service/cloudapi/kvmvm/utility_compute.go
@@ -98,14 +98,6 @@ func utilityComputeExtraDisksConfigure(ctx context.Context, d *schema.ResourceDa
if detach_set.Len() > 0 {
computeId, _ := strconv.ParseUint(d.Id(), 10, 64)
- stopReq := compute.StopRequest{
- ComputeID: computeId,
- Force: false,
- }
- _, err := c.CloudAPI().Compute().Stop(ctx, stopReq)
- if err != nil {
- return err
- }
for _, diskId := range detach_set.List() {
req := compute.DiskDetachRequest{
@@ -120,14 +112,6 @@ func utilityComputeExtraDisksConfigure(ctx context.Context, d *schema.ResourceDa
}
}
- req := compute.StartRequest{
- ComputeID: computeId,
- AltBootID: 0,
- }
- _, err = c.CloudAPI().Compute().Start(ctx, req)
- if err != nil {
- return err
- }
}
attach_set := new_set.(*schema.Set).Difference(old_set.(*schema.Set))
@@ -180,7 +164,7 @@ func utilityComputeNetworksConfigure(ctx context.Context, d *schema.ResourceData
oldList := oldSet.(*schema.Set).List()
newList := newSet.(*schema.Set).List()
- detachMap, changeIpMap, attachMap := differenceNetwork(oldList, newList)
+ detachMap, changeIpMap, changeMacMap, attachMap := differenceNetwork(oldList, newList)
apiErrCount := 0
var lastSavedError error
@@ -224,7 +208,7 @@ func utilityComputeNetworksConfigure(ctx context.Context, d *schema.ResourceData
needStart := false
- if oldSet.(*schema.Set).Len() == len(detachMap) || oldSet.(*schema.Set).Len() == 0 || hasDPDKnetwork(attachMap) {
+ if oldSet.(*schema.Set).Len() == len(detachMap) || oldSet.(*schema.Set).Len() == 0 || hasDPDKnetwork(attachMap) || len(changeMacMap) != 0 {
computeId, _ := strconv.ParseUint(d.Id(), 10, 64)
if err := utilityComputeStop(ctx, computeId, m); err != nil {
apiErrCount++
@@ -235,6 +219,24 @@ func utilityComputeNetworksConfigure(ctx context.Context, d *schema.ResourceData
}
}
+ log.Debugf("utilityComputeNetworksConfigure: changeMac set has %d items for Compute ID %s", len(changeMacMap), d.Id())
+ for _, netData := range changeMacMap {
+ computeId, _ := strconv.ParseUint(d.Id(), 10, 64)
+ req := compute.ChangeMACRequest{
+ ComputeID: computeId,
+ NewMAC: netData["mac"].(string),
+ СurrentMAC: netData["old_mac"].(string),
+ }
+
+ _, err := c.CloudAPI().Compute().ChangeMAC(ctx, req)
+ if err != nil {
+ log.Errorf("utilityComputeNetworksConfigure: failed to change mac %s to %s from Compute ID %s: %s",
+ req.СurrentMAC, req.NewMAC, d.Id(), err)
+ apiErrCount++
+ lastSavedError = err
+ }
+ }
+
sort.Slice(attachMap, func(i, j int) bool {
weightI := attachMap[i]["weight"].(int)
weightJ := attachMap[j]["weight"].(int)
@@ -246,6 +248,7 @@ func utilityComputeNetworksConfigure(ctx context.Context, d *schema.ResourceData
}
return weightI < weightJ
})
+
log.Debugf("utilityComputeNetworksConfigure: attach set has %d items for Compute ID %s", len(attachMap), d.Id())
for _, netData := range attachMap {
computeId, _ := strconv.ParseUint(d.Id(), 10, 64)
@@ -259,6 +262,10 @@ func utilityComputeNetworksConfigure(ctx context.Context, d *schema.ResourceData
req.IPAddr = netData["ip_address"].(string)
}
+ if netData["mac"].(string) != "" {
+ req.MACAddr = netData["mac"].(string)
+ }
+
if req.NetType == "DPDK" {
req.MTU = uint64(netData["mtu"].(int))
}
@@ -378,9 +385,10 @@ func utilityComputeUpdatePciDevices(ctx context.Context, d *schema.ResourceData,
return nil
}
-func differenceNetwork(oldList, newList []interface{}) (detachMap, changeIpMap, attachMap []map[string]interface{}) {
+func differenceNetwork(oldList, newList []interface{}) (detachMap, changeIpMap, changeMacMap, attachMap []map[string]interface{}) {
attachMap = make([]map[string]interface{}, 0)
changeIpMap = make([]map[string]interface{}, 0)
+ changeMacMap = make([]map[string]interface{}, 0)
detachMap = make([]map[string]interface{}, 0)
for _, oldNetwork := range oldList {
oldMap := oldNetwork.(map[string]interface{})
@@ -388,15 +396,21 @@ func differenceNetwork(oldList, newList []interface{}) (detachMap, changeIpMap,
for _, newNetwork := range newList {
newMap := newNetwork.(map[string]interface{})
if newMap["net_type"] == oldMap["net_type"] && newMap["net_id"] == oldMap["net_id"] && newMap["weight"] == oldMap["weight"] && (newMap["mtu"] == oldMap["mtu"] || newMap["mtu"].(int) == 0) {
- if (newMap["net_type"].(string) == "EXTNET" || newMap["net_type"].(string) == "VINS") && (newMap["ip_address"] != oldMap["ip_address"] && newMap["ip_address"].(string) != "") {
+ found = true
+ switch {
+ case (newMap["net_type"].(string) == "EXTNET" || newMap["net_type"].(string) == "VINS") && (newMap["ip_address"] != oldMap["ip_address"] && newMap["ip_address"].(string) != ""):
changeIpMap = append(changeIpMap, newMap)
found = true
- break
- } else if newMap["ip_address"] == oldMap["ip_address"] || newMap["ip_address"].(string) == "" {
+ fallthrough
+ case newMap["mac"] != oldMap["mac"] && newMap["mac"].(string) != "":
+ newMap["old_mac"] = oldMap["mac"]
+ changeMacMap = append(changeMacMap, newMap)
found = true
- break
}
}
+ if found {
+ break
+ }
}
if found {
continue
@@ -410,12 +424,8 @@ func differenceNetwork(oldList, newList []interface{}) (detachMap, changeIpMap,
for _, oldNetwork := range oldList {
oldMap := oldNetwork.(map[string]interface{})
if newMap["net_type"] == oldMap["net_type"] && newMap["net_id"] == oldMap["net_id"] && newMap["weight"] == oldMap["weight"] && (newMap["mtu"] == oldMap["mtu"] || newMap["mtu"].(int) == 0) {
- if newMap["ip_address"] == oldMap["ip_address"] || newMap["ip_address"].(string) == "" ||
- ((newMap["net_type"].(string) == "EXTNET" || newMap["net_type"].(string) == "VINS") &&
- newMap["ip_address"] != oldMap["ip_address"] && newMap["ip_address"].(string) != "") {
- found = true
- break
- }
+ found = true
+ break
}
}
if found {
diff --git a/internal/service/cloudapi/locations/data_source_locations_list.go b/internal/service/cloudapi/locations/data_source_locations_list.go
index 04c3968..bc4097d 100644
--- a/internal/service/cloudapi/locations/data_source_locations_list.go
+++ b/internal/service/cloudapi/locations/data_source_locations_list.go
@@ -56,6 +56,7 @@ func flattenLocationsList(ll *locations.ListLocations) []map[string]interface{}
"id": l.ID,
"location_code": l.LocationCode,
"name": l.Name,
+ "sdn_support": l.SDNSupport,
}
res = append(res, temp)
}
@@ -169,6 +170,11 @@ func dataSourceLocationsListSchemaMake() map[string]*schema.Schema {
Computed: true,
Description: "Location name",
},
+ "sdn_support": {
+ Type: schema.TypeBool,
+ Computed: true,
+ Description: "support of SDN",
+ },
},
},
},
diff --git a/internal/service/cloudapi/rg/data_source_rg.go b/internal/service/cloudapi/rg/data_source_rg.go
index f42df3c..7437eab 100644
--- a/internal/service/cloudapi/rg/data_source_rg.go
+++ b/internal/service/cloudapi/rg/data_source_rg.go
@@ -355,10 +355,6 @@ func dataSourceRgSchemaMake() map[string]*schema.Schema {
Type: schema.TypeString,
Computed: true,
},
- "register_computes": {
- Type: schema.TypeBool,
- Computed: true,
- },
"resource_limits": {
Type: schema.TypeList,
Computed: true,
diff --git a/internal/service/cloudapi/rg/data_source_rg_list.go b/internal/service/cloudapi/rg/data_source_rg_list.go
index dcbecce..6e354ee 100644
--- a/internal/service/cloudapi/rg/data_source_rg_list.go
+++ b/internal/service/cloudapi/rg/data_source_rg_list.go
@@ -202,10 +202,6 @@ func dataSourceRgListSchemaMake() map[string]*schema.Schema {
Type: schema.TypeString,
Computed: true,
},
- "register_computes": {
- Type: schema.TypeBool,
- Computed: true,
- },
"resource_limits": {
Type: schema.TypeList,
Computed: true,
diff --git a/internal/service/cloudapi/rg/data_source_rg_list_deleted.go b/internal/service/cloudapi/rg/data_source_rg_list_deleted.go
index 3a207b3..b07ab7a 100644
--- a/internal/service/cloudapi/rg/data_source_rg_list_deleted.go
+++ b/internal/service/cloudapi/rg/data_source_rg_list_deleted.go
@@ -199,10 +199,6 @@ func dataSourceRgListDeletedSchemaMake() map[string]*schema.Schema {
Type: schema.TypeString,
Computed: true,
},
- "register_computes": {
- Type: schema.TypeBool,
- Computed: true,
- },
"resource_limits": {
Type: schema.TypeList,
Computed: true,
diff --git a/internal/service/cloudapi/rg/flattens.go b/internal/service/cloudapi/rg/flattens.go
index 86485d7..02c777a 100644
--- a/internal/service/cloudapi/rg/flattens.go
+++ b/internal/service/cloudapi/rg/flattens.go
@@ -106,7 +106,6 @@ func flattenResgroup(d *schema.ResourceData, details rg.RecordResourceGroup) err
d.Set("rg_id", details.ID)
d.Set("lock_status", details.LockStatus)
d.Set("milestones", details.Milestones)
- d.Set("register_computes", details.RegisterComputes)
d.Set("res_types", details.ResTypes)
d.Set("secret", details.Secret)
d.Set("status", details.Status)
@@ -193,7 +192,6 @@ func flattenRg(d *schema.ResourceData, itemRg rg.RecordResourceGroup) {
d.Set("lock_status", itemRg.LockStatus)
d.Set("milestones", itemRg.Milestones)
d.Set("name", itemRg.Name)
- d.Set("register_computes", itemRg.RegisterComputes)
d.Set("res_types", itemRg.ResTypes)
d.Set("resource_limits", flattenRgResourceLimits(itemRg.ResourceLimits))
d.Set("secret", itemRg.Secret)
@@ -245,7 +243,6 @@ func flattenRgList(rgl *rg.ListResourceGroups) []map[string]interface{} {
"lock_status": rg.LockStatus,
"milestones": rg.Milestones,
"name": rg.Name,
- "register_computes": rg.RegisterComputes,
"resource_limits": flattenRgResourceLimits(rg.ResourceLimits),
"secret": rg.Secret,
"status": rg.Status,
diff --git a/internal/service/cloudapi/rg/models.go b/internal/service/cloudapi/rg/models.go
index 92d2e33..2e0f1ae 100644
--- a/internal/service/cloudapi/rg/models.go
+++ b/internal/service/cloudapi/rg/models.go
@@ -1,749 +1,743 @@
-/*
-Copyright (c) 2019-2022 Digital Energy Cloud Solutions LLC. All Rights Reserved.
-Authors:
-Petr Krutov,
-Stanislav Solovev,
-Kasim Baybikov,
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-*/
-
-/*
-Terraform DECORT provider - manage resources provided by DECORT (Digital Energy Cloud
-Orchestration Technology) with Terraform by Hashicorp.
-
-Source code: https://repository.basistech.ru/BASIS/terraform-provider-decort
-
-Please see README.md to learn where to place source code so that it
-builds seamlessly.
-
-Documentation: https://repository.basistech.ru/BASIS/terraform-provider-decort/wiki
-*/
-
-package rg
-
-type ResourceLimits struct {
- CUC float64 `json:"CU_C"`
- CUD float64 `json:"CU_D"`
- CUI float64 `json:"CU_I"`
- CUM float64 `json:"CU_M"`
- CUNP float64 `json:"CU_NP"`
- GpuUnits float64 `json:"gpu_units"`
-}
-
-type QuotaRecord struct { // this is how quota is reported by /api/.../rg/get
- Cpu int `json:"CU_C"` // CPU count in pcs
- Ram int `json:"CU_M"` // RAM volume in MB
- Disk int `json:"CU_D"` // Disk capacity in GB
- ExtIPs int `json:"CU_I"` // Ext IPs count
- ExtTraffic int `json:"CU_NP"` // Ext network traffic
- GpuUnits int `json:"gpu_units"` // GPU count
-}
-
-// Main information about audit
-type ItemAudit struct {
- // Call
- Call string `json:"call"`
-
- // Response time
- ResponseTime float64 `json:"responsetime"`
-
- // Status code
- StatusCode uint64 `json:"statuscode"`
-
- // Timestamp
- Timestamp float64 `json:"timestamp"`
-
- // User
- User string `json:"user"`
-}
-
-// List of audits
-type ListAudits []ItemAudit
-
-// Resources used
-type Resource struct {
- // Number of cores
- CPU int64 `json:"cpu"`
-
- // Disk size
- DiskSize float64 `json:"disksize"`
-
- // Max disk size
- DiskSizeMax uint64 `json:"disksizemax"`
-
- // Number of External IPs
- ExtIPs int64 `json:"extips"`
-
- // External traffic
- ExtTraffic int64 `json:"exttraffic"`
-
- // Number of grafic cores
- GPU int64 `json:"gpu"`
-
- // Number of RAM
- RAM int64 `json:"ram"`
-
- // SEPs
- SEPs map[string]map[string]DiskUsage `json:"seps"`
-}
-
-// Disk usage
-type DiskUsage struct {
- // Disk size
- DiskSize float64 `json:"disksize"`
-
- // Disk size max
- DiskSizeMax float64 `json:"disksizemax"`
-}
-
-// Information about resources
-type Resources struct {
- // Current information about resources
- Current Resource `json:"Current"`
-
- // Reserved information about resources
- Reserved Resource `json:"Reserved"`
-}
-
-// Detailed information about resource group
-type RecordResourceGroup struct {
- // Resources
- Resources Resources `json:"Resources"`
-
- // Account ID
- AccountID uint64 `json:"accountId"`
-
- // Account name
- AccountName string `json:"accountName"`
-
- // Access Control List
- ACL ListACL `json:"acl"`
-
- // Created by
- CreatedBy string `json:"createdBy"`
-
- // Created time
- CreatedTime uint64 `json:"createdTime"`
-
- // DefNetID
- DefNetID int64 `json:"def_net_id"`
-
- // DefNetType
- DefNetType string `json:"def_net_type"`
-
- // Deleted by
- DeletedBy string `json:"deletedBy"`
-
- // Deleted time
- DeletedTime uint64 `json:"deletedTime"`
-
- // Description
- Description string `json:"desc"`
-
- // Dirty
- Dirty bool `json:"dirty"`
-
- // Grid ID
- GID uint64 `json:"gid"`
-
- // GUID
- GUID uint64 `json:"guid"`
-
- // ID
- ID uint64 `json:"id"`
-
- // Lock status
- LockStatus string `json:"lockStatus"`
-
- // Milestones
- Milestones uint64 `json:"milestones"`
-
- // Name
- Name string `json:"name"`
-
- // RegisterComputes
- RegisterComputes bool `json:"registerComputes"`
-
- // Resource limits
- ResourceLimits ResourceLimits `json:"resourceLimits"`
-
- // Secret
- Secret string `json:"secret"`
-
- // Status
- Status string `json:"status"`
-
- // Updated by
- UpdatedBy string `json:"updatedBy"`
-
- // Updated time
- UpdatedTime uint64 `json:"updatedTime"`
-
- // List of VINS IDs
- VINS []uint64 `json:"vins"`
-
- // List of compute IDs
- Computes []uint64 `json:"vms"`
-
- // List of resource types
- ResTypes []string `json:"resourceTypes"`
-
- // UniqPools
- UniqPools []string `json:"uniqPools"`
-}
-
-// Main information about Access Control List
-type ItemACL struct {
- // Explicit
- Explicit bool `json:"explicit"`
-
- // GUID
- GUID string `json:"guid"`
-
- // Right
- Right string `json:"right"`
-
- // Status
- Status string `json:"status"`
-
- // Type
- Type string `json:"type"`
-
- // User group ID
- UserGroupID string `json:"userGroupId"`
-}
-
-// List ACL
-type ListACL []ItemACL
-
-type ItemResourceGroup struct {
- //
- AccountACL ItemACL `json:"accountAcl"`
-
- // Account ID
- AccountID uint64 `json:"accountId"`
-
- // Account name
- AccountName string `json:"accountName"`
-
- // Access Control List
- ACL ListACL `json:"acl"`
-
- // Created by
- CreatedBy string `json:"createdBy"`
-
- // Created time
- CreatedTime uint64 `json:"createdTime"`
-
- // DefNetID
- DefNetID int64 `json:"def_net_id"`
-
- // DefNetType
- DefNetType string `json:"def_net_type"`
-
- // Deleted by
- DeletedBy string `json:"deletedBy"`
-
- // Deleted time
- DeletedTime uint64 `json:"deletedTime"`
-
- // Description
- Description string `json:"desc"`
-
- // Dirty
- Dirty bool `json:"dirty"`
-
- // Grid ID
- GID uint64 `json:"gid"`
-
- // GUID
- GUID uint64 `json:"guid"`
-
- // ID
- ID uint64 `json:"id"`
-
- // Lock status
- LockStatus string `json:"lockStatus"`
-
- // Milestones
- Milestones uint64 `json:"milestones"`
-
- // Name
- Name string `json:"name"`
-
- // RegisterComputes
- RegisterComputes bool `json:"registerComputes"`
-
- // Resource limits
- ResourceLimits ResourceLimits `json:"resourceLimits"`
-
- // Secret
- Secret string `json:"secret"`
-
- // Status
- Status string `json:"status"`
-
- // Updated by
- UpdatedBy string `json:"updatedBy"`
-
- // Updated time
- UpdatedTime uint64 `json:"updatedTime"`
-
- // List of VINS IDs
- VINS []uint64 `json:"vins"`
-
- // List of compute IDs
- Computes []uint64 `json:"vms"`
-
- // List of resource types
- ResTypes []string `json:"resourceTypes"`
-
- // UniqPools
- UniqPools []string `json:"uniqPools"`
-}
-
-// List of resource groups
-type ListResourceGroups []ItemResourceGroup
-
-// Main information about affinity rule
-type ItemRule struct {
- // GUID
- GUID string `json:"guid"`
-
- // Key
- Key string `json:"key"`
-
- // Mode
- Mode string `json:"mode"`
-
- // Policy
- Policy string `json:"policy"`
-
- // Topology
- Topology string `json:"topology"`
-
- // Value
- Value string `json:"value"`
-}
-
-// List rules
-type ListRules []ItemRule
-
-// Main information about compute
-type ItemCompute struct {
- // Account ID
- AccountID uint64 `json:"accountId"`
-
- // Account name
- AccountName string `json:"accountName"`
-
- // Affinity label
- AffinityLabel string `json:"affinityLabel"`
-
- // List affinity rules
- AffinityRules ListRules `json:"affinityRules"`
-
- // Affinity weight
- AffinityWeight uint64 `json:"affinityWeight"`
-
- // Anti affinity rules
- AntiAffinityRules ListRules `json:"antiAffinityRules"`
-
- // Number of CPU
- CPUs uint64 `json:"cpus"`
-
- // Created by
- CreatedBy string `json:"createdBy"`
-
- // Created time
- CreatedTime uint64 `json:"createdTime"`
-
- // Deleted by
- DeletedBy string `json:"deletedBy"`
-
- // Deleted time
- DeletedTime uint64 `json:"deletedTime"`
-
- // ID
- ID uint64 `json:"id"`
-
- // Name
- Name string `json:"name"`
-
- // Number of RAM
- RAM uint64 `json:"ram"`
-
- // Registered
- Registered bool `json:"registered"`
-
- // Resource group ID
- RGID uint64 `json:"rgId"`
-
- // Resource group name
- RGName string `json:"rgName"`
-
- // Status
- Status string `json:"status"`
-
- // Tech status
- TechStatus string `json:"techStatus"`
-
- // Total disks size
- TotalDisksSize uint64 `json:"totalDisksSize"`
-
- // Updated by
- UpdatedBy string `json:"updatedBy"`
-
- // Updated time
- UpdatedTime uint64 `json:"updatedTime"`
-
- // User managed
- UserManaged bool `json:"userManaged"`
-
- // VINS connected
- VINSConnected uint64 `json:"vinsConnected"`
-}
-
-// List computes
-type ListComputes []ItemCompute
-
-// Main information about port forward
-type ItemPFW struct {
- // Public port end
- PublicPortEnd uint64 `json:"Public Port End"`
-
- // Public port start
- PublicPortStart uint64 `json:"Public Port Start"`
-
- // Virtual machine ID
- VMID uint64 `json:"VM ID"`
-
- // Virtual machine IP
- VMIP string `json:"VM IP"`
-
- // Virtual machine name
- VMName string `json:"VM Name"`
-
- // Virtual machine port
- VMPort uint64 `json:"VM Port"`
-
- // VINS ID
- VINSID uint64 `json:"ViNS ID"`
-
- // VINS name
- VINSName string `json:"ViNS Name"`
-}
-
-// List PFWs
-type ListPFW []ItemPFW
-
-// Main information about VINS
-type ItemVINS struct {
- // Account ID
- AccountID uint64 `json:"accountId"`
-
- // Account name
- AccountName string `json:"accountName"`
-
- // Computes
- Computes uint64 `json:"computes"`
-
- // Created by
- CreatedBy string `json:"createdBy"`
-
- // Created time
- CreatedTime uint64 `json:"createdTime"`
-
- // Deleted by
- DeletedBy string `json:"deletedBy"`
-
- // Deleted time
- DeletedTime uint64 `json:"deletedTime"`
-
- // External IP
- ExternalIP string `json:"externalIP"`
-
- // ID
- ID uint64 `json:"id"`
-
- // Name
- Name string `json:"name"`
-
- // Network
- Network string `json:"network"`
-
- // PriVNFDev ID
- PriVNFDevID uint64 `json:"priVnfDevId"`
-
- // Resource group ID
- RGID uint64 `json:"rgId"`
-
- // Resource group name
- RGName string `json:"rgName"`
-
- // Status
- Status string `json:"status"`
-
- // Updated by
- UpdatedBy string `json:"updatedBy"`
-
- // Updated time
- UpdatedTime uint64 `json:"updatedTime"`
-}
-
-// List VINSes
-type ListVINS []ItemVINS
-
-// Server settings
-type ServerSettings struct {
- // Inter
- Inter uint64 `json:"inter"`
-
- // GUID
- GUID string `json:"guid"`
-
- // Down inter
- DownInter uint64 `json:"downinter"`
-
- // Rise
- Rise uint64 `json:"rise"`
-
- // Fall
- Fall uint64 `json:"fall"`
-
- // Slow start
- SlowStart uint64 `json:"slowstart"`
-
- // Max connections
- MaxConn uint64 `json:"maxconn"`
-
- // Max queue
- MaxQueue uint64 `json:"maxqueue"`
-
- // Weight
- Weight uint64 `json:"weight"`
-}
-
-// Main information about server
-type ItemServer struct {
- // Address
- Address string `json:"address"`
-
- // Check
- Check string `json:"check"`
-
- // GUID
- GUID string `json:"guid"`
-
- // Name
- Name string `json:"name"`
-
- // Port
- Port uint64 `json:"port"`
-
- // Server settings
- ServerSettings ServerSettings `json:"serverSettings"`
-}
-
-// List of servers
-type ListServers []ItemServer
-
-// Main information about backend
-type ItemBackend struct {
- // Algorithm
- Algorithm string `json:"algorithm"`
-
- // GUID
- GUID string `json:"guid"`
-
- // Name
- Name string `json:"name"`
-
- // Server settings
- ServerDefaultSettings ServerSettings `json:"serverDefaultSettings"`
-
- // List of servers
- Servers ListServers `json:"servers"`
-}
-
-// List of backends
-type ListBackends []ItemBackend
-
-// Main information of binding
-type ItemBinding struct {
- // Address
- Address string `json:"address"`
-
- // GUID
- GUID string `json:"guid"`
-
- // Name
- Name string `json:"name"`
-
- // Port
- Port uint64 `json:"port"`
-}
-
-// List of bindings
-type ListBindings []ItemBinding
-
-// Main information about frontend
-type ItemFrontend struct {
- // Backend
- Backend string `json:"backend"`
-
- // List of bindings
- Bindings ListBindings `json:"bindings"`
-
- // GUID
- GUID string `json:"guid"`
-
- // Name
- Name string `json:"name"`
-}
-
-// List of frontends
-type ListFrontends []ItemFrontend
-
-// Main information about node
-type RecordNode struct {
- // Backend IP
- BackendIP string `json:"backendIp"`
-
- // Compute ID
- ComputeID uint64 `json:"computeId"`
-
- // Frontend IP
- FrontendIP string `json:"frontendIp"`
-
- // GUID
- GUID string `json:"guid"`
-
- // MGMT IP
- MGMTIP string `json:"mgmtIp"`
-
- // Network ID
- NetworkID uint64 `json:"networkId"`
-}
-
-// Main information about load balancer
-type ItemLB struct {
- // HAMode
- HAMode bool `json:"HAmode"`
-
- // List ACL
- ACL ListACL `json:"acl"`
-
- // List backends
- Backends ListBackends `json:"backends"`
-
- // Created by
- CreatedBy string `json:"createdBy"`
-
- // Created time
- CreatedTime uint64 `json:"createdTime"`
-
- // Deleted by
- DeletedBy string `json:"deletedBy"`
-
- // Deleted time
- DeletedTime uint64 `json:"deletedTime"`
-
- // Description
- Description string `json:"desc"`
-
- // DPAPI user
- DPAPIUser string `json:"dpApiUser"`
-
- // External network ID
- ExtNetID uint64 `json:"extnetId"`
-
- // List of frontends
- Frontends ListFrontends `json:"frontends"`
-
- // Grid ID
- GID uint64 `json:"gid"`
-
- // GUID
- GUID uint64 `json:"guid"`
-
- // ID
- ID uint64 `json:"id"`
-
- // Image ID
- ImageID uint64 `json:"imageId"`
-
- // Milestones
- Milestones uint64 `json:"milestones"`
-
- // Name
- Name string `json:"name"`
-
- // Primary node
- PrimaryNode RecordNode `json:"primaryNode"`
-
- // Resource group ID
- RGID uint64 `json:"rgId"`
-
- // Resource group name
- RGName string `json:"rgName"`
-
- // Secondary node
- SecondaryNode RecordNode `json:"secondaryNode"`
-
- // Status
- Status string `json:"status"`
-
- // Tech status
- TechStatus string `json:"techStatus"`
-
- // Updated by
- UpdatedBy string `json:"updatedBy"`
-
- // Updated time
- UpdatedTime uint64 `json:"updatedTime"`
-
- // VINS ID
- VINSID uint64 `json:"vinsId"`
-}
-
-// List load balancers
-type ListLB []ItemLB
-
-// Main information about affinity group
-type ItemAffinityGroupCompute struct {
- // Compute ID
- ComputeID uint64 `json:"computeId"`
-
- // Other node
- OtherNode []uint64 `json:"otherNode"`
-
- // Other node indirect
- OtherNodeIndirect []uint64 `json:"otherNodeIndirect"`
-
- // Other node indirect soft
- OtherNodeIndirectSoft []uint64 `json:"otherNodeIndirectSoft"`
-
- // Other node soft
- OtherNodeSoft []uint64 `json:"otherNodeSoft"`
-
- // Same node
- SameNode []uint64 `json:"sameNode"`
-
- // Same node soft
- SameNodeSoft []uint64 `json:"sameNodeSoft"`
-}
-
-// List of affinity groups
-type ListAffinityGroupCompute []ItemAffinityGroupCompute
+/*
+Copyright (c) 2019-2022 Digital Energy Cloud Solutions LLC. All Rights Reserved.
+Authors:
+Petr Krutov,
+Stanislav Solovev,
+Kasim Baybikov,
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+/*
+Terraform DECORT provider - manage resources provided by DECORT (Digital Energy Cloud
+Orchestration Technology) with Terraform by Hashicorp.
+
+Source code: https://repository.basistech.ru/BASIS/terraform-provider-decort
+
+Please see README.md to learn where to place source code so that it
+builds seamlessly.
+
+Documentation: https://repository.basistech.ru/BASIS/terraform-provider-decort/wiki
+*/
+
+package rg
+
+type ResourceLimits struct {
+ CUC float64 `json:"CU_C"`
+ CUD float64 `json:"CU_D"`
+ CUI float64 `json:"CU_I"`
+ CUM float64 `json:"CU_M"`
+ CUNP float64 `json:"CU_NP"`
+ GpuUnits float64 `json:"gpu_units"`
+}
+
+type QuotaRecord struct { // this is how quota is reported by /api/.../rg/get
+ Cpu int `json:"CU_C"` // CPU count in pcs
+ Ram int `json:"CU_M"` // RAM volume in MB
+ Disk int `json:"CU_D"` // Disk capacity in GB
+ ExtIPs int `json:"CU_I"` // Ext IPs count
+ ExtTraffic int `json:"CU_NP"` // Ext network traffic
+ GpuUnits int `json:"gpu_units"` // GPU count
+}
+
+// Main information about audit
+type ItemAudit struct {
+ // Call
+ Call string `json:"call"`
+
+ // Response time
+ ResponseTime float64 `json:"responsetime"`
+
+ // Status code
+ StatusCode uint64 `json:"statuscode"`
+
+ // Timestamp
+ Timestamp float64 `json:"timestamp"`
+
+ // User
+ User string `json:"user"`
+}
+
+// List of audits
+type ListAudits []ItemAudit
+
+// Resources used
+type Resource struct {
+ // Number of cores
+ CPU int64 `json:"cpu"`
+
+ // Disk size
+ DiskSize float64 `json:"disksize"`
+
+ // Max disk size
+ DiskSizeMax uint64 `json:"disksizemax"`
+
+ // Number of External IPs
+ ExtIPs int64 `json:"extips"`
+
+ // External traffic
+ ExtTraffic int64 `json:"exttraffic"`
+
+ // Number of grafic cores
+ GPU int64 `json:"gpu"`
+
+ // Number of RAM
+ RAM int64 `json:"ram"`
+
+ // SEPs
+ SEPs map[string]map[string]DiskUsage `json:"seps"`
+}
+
+// Disk usage
+type DiskUsage struct {
+ // Disk size
+ DiskSize float64 `json:"disksize"`
+
+ // Disk size max
+ DiskSizeMax float64 `json:"disksizemax"`
+}
+
+// Information about resources
+type Resources struct {
+ // Current information about resources
+ Current Resource `json:"Current"`
+
+ // Reserved information about resources
+ Reserved Resource `json:"Reserved"`
+}
+
+// Detailed information about resource group
+type RecordResourceGroup struct {
+ // Resources
+ Resources Resources `json:"Resources"`
+
+ // Account ID
+ AccountID uint64 `json:"accountId"`
+
+ // Account name
+ AccountName string `json:"accountName"`
+
+ // Access Control List
+ ACL ListACL `json:"acl"`
+
+ // Created by
+ CreatedBy string `json:"createdBy"`
+
+ // Created time
+ CreatedTime uint64 `json:"createdTime"`
+
+ // DefNetID
+ DefNetID int64 `json:"def_net_id"`
+
+ // DefNetType
+ DefNetType string `json:"def_net_type"`
+
+ // Deleted by
+ DeletedBy string `json:"deletedBy"`
+
+ // Deleted time
+ DeletedTime uint64 `json:"deletedTime"`
+
+ // Description
+ Description string `json:"desc"`
+
+ // Dirty
+ Dirty bool `json:"dirty"`
+
+ // Grid ID
+ GID uint64 `json:"gid"`
+
+ // GUID
+ GUID uint64 `json:"guid"`
+
+ // ID
+ ID uint64 `json:"id"`
+
+ // Lock status
+ LockStatus string `json:"lockStatus"`
+
+ // Milestones
+ Milestones uint64 `json:"milestones"`
+
+ // Name
+ Name string `json:"name"`
+
+ // Resource limits
+ ResourceLimits ResourceLimits `json:"resourceLimits"`
+
+ // Secret
+ Secret string `json:"secret"`
+
+ // Status
+ Status string `json:"status"`
+
+ // Updated by
+ UpdatedBy string `json:"updatedBy"`
+
+ // Updated time
+ UpdatedTime uint64 `json:"updatedTime"`
+
+ // List of VINS IDs
+ VINS []uint64 `json:"vins"`
+
+ // List of compute IDs
+ Computes []uint64 `json:"vms"`
+
+ // List of resource types
+ ResTypes []string `json:"resourceTypes"`
+
+ // UniqPools
+ UniqPools []string `json:"uniqPools"`
+}
+
+// Main information about Access Control List
+type ItemACL struct {
+ // Explicit
+ Explicit bool `json:"explicit"`
+
+ // GUID
+ GUID string `json:"guid"`
+
+ // Right
+ Right string `json:"right"`
+
+ // Status
+ Status string `json:"status"`
+
+ // Type
+ Type string `json:"type"`
+
+ // User group ID
+ UserGroupID string `json:"userGroupId"`
+}
+
+// List ACL
+type ListACL []ItemACL
+
+type ItemResourceGroup struct {
+ //
+ AccountACL ItemACL `json:"accountAcl"`
+
+ // Account ID
+ AccountID uint64 `json:"accountId"`
+
+ // Account name
+ AccountName string `json:"accountName"`
+
+ // Access Control List
+ ACL ListACL `json:"acl"`
+
+ // Created by
+ CreatedBy string `json:"createdBy"`
+
+ // Created time
+ CreatedTime uint64 `json:"createdTime"`
+
+ // DefNetID
+ DefNetID int64 `json:"def_net_id"`
+
+ // DefNetType
+ DefNetType string `json:"def_net_type"`
+
+ // Deleted by
+ DeletedBy string `json:"deletedBy"`
+
+ // Deleted time
+ DeletedTime uint64 `json:"deletedTime"`
+
+ // Description
+ Description string `json:"desc"`
+
+ // Dirty
+ Dirty bool `json:"dirty"`
+
+ // Grid ID
+ GID uint64 `json:"gid"`
+
+ // GUID
+ GUID uint64 `json:"guid"`
+
+ // ID
+ ID uint64 `json:"id"`
+
+ // Lock status
+ LockStatus string `json:"lockStatus"`
+
+ // Milestones
+ Milestones uint64 `json:"milestones"`
+
+ // Name
+ Name string `json:"name"`
+
+ // Resource limits
+ ResourceLimits ResourceLimits `json:"resourceLimits"`
+
+ // Secret
+ Secret string `json:"secret"`
+
+ // Status
+ Status string `json:"status"`
+
+ // Updated by
+ UpdatedBy string `json:"updatedBy"`
+
+ // Updated time
+ UpdatedTime uint64 `json:"updatedTime"`
+
+ // List of VINS IDs
+ VINS []uint64 `json:"vins"`
+
+ // List of compute IDs
+ Computes []uint64 `json:"vms"`
+
+ // List of resource types
+ ResTypes []string `json:"resourceTypes"`
+
+ // UniqPools
+ UniqPools []string `json:"uniqPools"`
+}
+
+// List of resource groups
+type ListResourceGroups []ItemResourceGroup
+
+// Main information about affinity rule
+type ItemRule struct {
+ // GUID
+ GUID string `json:"guid"`
+
+ // Key
+ Key string `json:"key"`
+
+ // Mode
+ Mode string `json:"mode"`
+
+ // Policy
+ Policy string `json:"policy"`
+
+ // Topology
+ Topology string `json:"topology"`
+
+ // Value
+ Value string `json:"value"`
+}
+
+// List rules
+type ListRules []ItemRule
+
+// Main information about compute
+type ItemCompute struct {
+ // Account ID
+ AccountID uint64 `json:"accountId"`
+
+ // Account name
+ AccountName string `json:"accountName"`
+
+ // Affinity label
+ AffinityLabel string `json:"affinityLabel"`
+
+ // List affinity rules
+ AffinityRules ListRules `json:"affinityRules"`
+
+ // Affinity weight
+ AffinityWeight uint64 `json:"affinityWeight"`
+
+ // Anti affinity rules
+ AntiAffinityRules ListRules `json:"antiAffinityRules"`
+
+ // Number of CPU
+ CPUs uint64 `json:"cpus"`
+
+ // Created by
+ CreatedBy string `json:"createdBy"`
+
+ // Created time
+ CreatedTime uint64 `json:"createdTime"`
+
+ // Deleted by
+ DeletedBy string `json:"deletedBy"`
+
+ // Deleted time
+ DeletedTime uint64 `json:"deletedTime"`
+
+ // ID
+ ID uint64 `json:"id"`
+
+ // Name
+ Name string `json:"name"`
+
+ // Number of RAM
+ RAM uint64 `json:"ram"`
+
+ // Registered
+ Registered bool `json:"registered"`
+
+ // Resource group ID
+ RGID uint64 `json:"rgId"`
+
+ // Resource group name
+ RGName string `json:"rgName"`
+
+ // Status
+ Status string `json:"status"`
+
+ // Tech status
+ TechStatus string `json:"techStatus"`
+
+ // Total disks size
+ TotalDisksSize uint64 `json:"totalDisksSize"`
+
+ // Updated by
+ UpdatedBy string `json:"updatedBy"`
+
+ // Updated time
+ UpdatedTime uint64 `json:"updatedTime"`
+
+ // User managed
+ UserManaged bool `json:"userManaged"`
+
+ // VINS connected
+ VINSConnected uint64 `json:"vinsConnected"`
+}
+
+// List computes
+type ListComputes []ItemCompute
+
+// Main information about port forward
+type ItemPFW struct {
+ // Public port end
+ PublicPortEnd uint64 `json:"Public Port End"`
+
+ // Public port start
+ PublicPortStart uint64 `json:"Public Port Start"`
+
+ // Virtual machine ID
+ VMID uint64 `json:"VM ID"`
+
+ // Virtual machine IP
+ VMIP string `json:"VM IP"`
+
+ // Virtual machine name
+ VMName string `json:"VM Name"`
+
+ // Virtual machine port
+ VMPort uint64 `json:"VM Port"`
+
+ // VINS ID
+ VINSID uint64 `json:"ViNS ID"`
+
+ // VINS name
+ VINSName string `json:"ViNS Name"`
+}
+
+// List PFWs
+type ListPFW []ItemPFW
+
+// Main information about VINS
+type ItemVINS struct {
+ // Account ID
+ AccountID uint64 `json:"accountId"`
+
+ // Account name
+ AccountName string `json:"accountName"`
+
+ // Computes
+ Computes uint64 `json:"computes"`
+
+ // Created by
+ CreatedBy string `json:"createdBy"`
+
+ // Created time
+ CreatedTime uint64 `json:"createdTime"`
+
+ // Deleted by
+ DeletedBy string `json:"deletedBy"`
+
+ // Deleted time
+ DeletedTime uint64 `json:"deletedTime"`
+
+ // External IP
+ ExternalIP string `json:"externalIP"`
+
+ // ID
+ ID uint64 `json:"id"`
+
+ // Name
+ Name string `json:"name"`
+
+ // Network
+ Network string `json:"network"`
+
+ // PriVNFDev ID
+ PriVNFDevID uint64 `json:"priVnfDevId"`
+
+ // Resource group ID
+ RGID uint64 `json:"rgId"`
+
+ // Resource group name
+ RGName string `json:"rgName"`
+
+ // Status
+ Status string `json:"status"`
+
+ // Updated by
+ UpdatedBy string `json:"updatedBy"`
+
+ // Updated time
+ UpdatedTime uint64 `json:"updatedTime"`
+}
+
+// List VINSes
+type ListVINS []ItemVINS
+
+// Server settings
+type ServerSettings struct {
+ // Inter
+ Inter uint64 `json:"inter"`
+
+ // GUID
+ GUID string `json:"guid"`
+
+ // Down inter
+ DownInter uint64 `json:"downinter"`
+
+ // Rise
+ Rise uint64 `json:"rise"`
+
+ // Fall
+ Fall uint64 `json:"fall"`
+
+ // Slow start
+ SlowStart uint64 `json:"slowstart"`
+
+ // Max connections
+ MaxConn uint64 `json:"maxconn"`
+
+ // Max queue
+ MaxQueue uint64 `json:"maxqueue"`
+
+ // Weight
+ Weight uint64 `json:"weight"`
+}
+
+// Main information about server
+type ItemServer struct {
+ // Address
+ Address string `json:"address"`
+
+ // Check
+ Check string `json:"check"`
+
+ // GUID
+ GUID string `json:"guid"`
+
+ // Name
+ Name string `json:"name"`
+
+ // Port
+ Port uint64 `json:"port"`
+
+ // Server settings
+ ServerSettings ServerSettings `json:"serverSettings"`
+}
+
+// List of servers
+type ListServers []ItemServer
+
+// Main information about backend
+type ItemBackend struct {
+ // Algorithm
+ Algorithm string `json:"algorithm"`
+
+ // GUID
+ GUID string `json:"guid"`
+
+ // Name
+ Name string `json:"name"`
+
+ // Server settings
+ ServerDefaultSettings ServerSettings `json:"serverDefaultSettings"`
+
+ // List of servers
+ Servers ListServers `json:"servers"`
+}
+
+// List of backends
+type ListBackends []ItemBackend
+
+// Main information of binding
+type ItemBinding struct {
+ // Address
+ Address string `json:"address"`
+
+ // GUID
+ GUID string `json:"guid"`
+
+ // Name
+ Name string `json:"name"`
+
+ // Port
+ Port uint64 `json:"port"`
+}
+
+// List of bindings
+type ListBindings []ItemBinding
+
+// Main information about frontend
+type ItemFrontend struct {
+ // Backend
+ Backend string `json:"backend"`
+
+ // List of bindings
+ Bindings ListBindings `json:"bindings"`
+
+ // GUID
+ GUID string `json:"guid"`
+
+ // Name
+ Name string `json:"name"`
+}
+
+// List of frontends
+type ListFrontends []ItemFrontend
+
+// Main information about node
+type RecordNode struct {
+ // Backend IP
+ BackendIP string `json:"backendIp"`
+
+ // Compute ID
+ ComputeID uint64 `json:"computeId"`
+
+ // Frontend IP
+ FrontendIP string `json:"frontendIp"`
+
+ // GUID
+ GUID string `json:"guid"`
+
+ // MGMT IP
+ MGMTIP string `json:"mgmtIp"`
+
+ // Network ID
+ NetworkID uint64 `json:"networkId"`
+}
+
+// Main information about load balancer
+type ItemLB struct {
+ // HAMode
+ HAMode bool `json:"HAmode"`
+
+ // List ACL
+ ACL ListACL `json:"acl"`
+
+ // List backends
+ Backends ListBackends `json:"backends"`
+
+ // Created by
+ CreatedBy string `json:"createdBy"`
+
+ // Created time
+ CreatedTime uint64 `json:"createdTime"`
+
+ // Deleted by
+ DeletedBy string `json:"deletedBy"`
+
+ // Deleted time
+ DeletedTime uint64 `json:"deletedTime"`
+
+ // Description
+ Description string `json:"desc"`
+
+ // DPAPI user
+ DPAPIUser string `json:"dpApiUser"`
+
+ // External network ID
+ ExtNetID uint64 `json:"extnetId"`
+
+ // List of frontends
+ Frontends ListFrontends `json:"frontends"`
+
+ // Grid ID
+ GID uint64 `json:"gid"`
+
+ // GUID
+ GUID uint64 `json:"guid"`
+
+ // ID
+ ID uint64 `json:"id"`
+
+ // Image ID
+ ImageID uint64 `json:"imageId"`
+
+ // Milestones
+ Milestones uint64 `json:"milestones"`
+
+ // Name
+ Name string `json:"name"`
+
+ // Primary node
+ PrimaryNode RecordNode `json:"primaryNode"`
+
+ // Resource group ID
+ RGID uint64 `json:"rgId"`
+
+ // Resource group name
+ RGName string `json:"rgName"`
+
+ // Secondary node
+ SecondaryNode RecordNode `json:"secondaryNode"`
+
+ // Status
+ Status string `json:"status"`
+
+ // Tech status
+ TechStatus string `json:"techStatus"`
+
+ // Updated by
+ UpdatedBy string `json:"updatedBy"`
+
+ // Updated time
+ UpdatedTime uint64 `json:"updatedTime"`
+
+ // VINS ID
+ VINSID uint64 `json:"vinsId"`
+}
+
+// List load balancers
+type ListLB []ItemLB
+
+// Main information about affinity group
+type ItemAffinityGroupCompute struct {
+ // Compute ID
+ ComputeID uint64 `json:"computeId"`
+
+ // Other node
+ OtherNode []uint64 `json:"otherNode"`
+
+ // Other node indirect
+ OtherNodeIndirect []uint64 `json:"otherNodeIndirect"`
+
+ // Other node indirect soft
+ OtherNodeIndirectSoft []uint64 `json:"otherNodeIndirectSoft"`
+
+ // Other node soft
+ OtherNodeSoft []uint64 `json:"otherNodeSoft"`
+
+ // Same node
+ SameNode []uint64 `json:"sameNode"`
+
+ // Same node soft
+ SameNodeSoft []uint64 `json:"sameNodeSoft"`
+}
+
+// List of affinity groups
+type ListAffinityGroupCompute []ItemAffinityGroupCompute
diff --git a/internal/service/cloudapi/rg/resource_rg.go b/internal/service/cloudapi/rg/resource_rg.go
index 4f78481..d379e9a 100644
--- a/internal/service/cloudapi/rg/resource_rg.go
+++ b/internal/service/cloudapi/rg/resource_rg.go
@@ -160,10 +160,6 @@ func resourceResgroupCreate(ctx context.Context, d *schema.ResourceData, m inter
req.ExtIP = extIp.(string)
}
- if regComputes, ok := d.GetOk("register_computes"); ok {
- req.RegisterComputes = regComputes.(bool)
- }
-
apiResp, err := c.CloudAPI().RG().Create(ctx, req)
if err != nil {
return diag.FromErr(err)
@@ -404,7 +400,7 @@ func resourceResgroupUpdate(ctx context.Context, d *schema.ResourceData, m inter
return diag.FromErr(fmt.Errorf("resourceResgroupUpdate: RG ID %s: changing ext_net_id for existing RG is not allowed", d.Id()))
}
- if d.HasChanges("name", "quota", "description", "register_computes", "uniq_pools") {
+ if d.HasChanges("name", "quota", "description", "uniq_pools") {
if err := utilityUpdateRG(ctx, d, m, rgData.ID); err != nil {
return diag.FromErr(err)
}
@@ -696,12 +692,6 @@ func ResourceRgSchemaMake() map[string]*schema.Schema {
Default: false,
Description: "Set to True if you want force delete non-empty RG",
},
- "register_computes": {
- Type: schema.TypeBool,
- Optional: true,
- Default: false,
- Description: "Register computes in registration system",
- },
"restore": {
Type: schema.TypeBool,
Optional: true,
diff --git a/internal/service/cloudapi/rg/utility_rg.go b/internal/service/cloudapi/rg/utility_rg.go
index ed31dd6..d47dde1 100644
--- a/internal/service/cloudapi/rg/utility_rg.go
+++ b/internal/service/cloudapi/rg/utility_rg.go
@@ -129,11 +129,6 @@ func utilityUpdateRG(ctx context.Context, d *schema.ResourceData, m interface{},
req.Description = d.Get("description").(string)
}
- if d.HasChange("register_computes") {
- log.Debugf("resourceResgroupUpdate: register_computes specified - looking for deltas from the old settings.")
- req.RegisterComputes = d.Get("register_computes").(bool)
- }
-
if d.HasChange("uniq_pools") {
uniqPools := d.Get("uniq_pools").([]interface{})
if len(uniqPools) == 0 {
diff --git a/internal/service/cloudapi/sep/available_sep_and_pools_list.go b/internal/service/cloudapi/sep/available_sep_and_pools_list.go
new file mode 100644
index 0000000..8203816
--- /dev/null
+++ b/internal/service/cloudapi/sep/available_sep_and_pools_list.go
@@ -0,0 +1,143 @@
+/*
+Copyright (c) 2019-2023 Digital Energy Cloud Solutions LLC. All Rights Reserved.
+Authors:
+Petr Krutov,
+Stanislav Solovev,
+Sergey Kisil,
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+/*
+Terraform DECORT provider - manage resources provided by DECORT (Digital Energy Cloud
+Orchestration Technology) with Terraform by Hashicorp.
+
+Source code: https://repository.basistech.ru/BASIS/terraform-provider-decort
+
+Please see README.md to learn where to place source code so that it
+builds seamlessly.
+
+Documentation: https://repository.basistech.ru/BASIS/terraform-provider-decort/wiki
+*/
+
+package sep
+
+import (
+ "context"
+
+ "github.com/google/uuid"
+ "github.com/hashicorp/terraform-plugin-sdk/v2/diag"
+ "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
+ "repository.basistech.ru/BASIS/terraform-provider-decort/internal/constants"
+)
+
+func DataSourceAvailableSEPAndPoolsListRead(ctx context.Context, d *schema.ResourceData, m interface{}) diag.Diagnostics {
+ sepList, err := utilityAvailableSEPAndPoolsListCheckPresence(ctx, d, m)
+ if err != nil {
+ d.SetId("")
+ return diag.FromErr(err)
+ }
+
+ id := uuid.New()
+ d.SetId(id.String())
+
+ flattenAvailableSEPList(d, sepList)
+
+ return nil
+}
+
+func dataSourceAvailableSEPListSchemaMake() map[string]*schema.Schema {
+ return map[string]*schema.Schema{
+ "account_id": {
+ Type: schema.TypeInt,
+ Required: true,
+ Description: "Account ID",
+ },
+ "rg_id": {
+ Type: schema.TypeInt,
+ Optional: true,
+ Description: "Resource group ID",
+ },
+ "entry_count": {
+ Type: schema.TypeInt,
+ Computed: true,
+ Description: "Number of available SEP entries",
+ },
+ "items": {
+ Type: schema.TypeList,
+ Computed: true,
+ Description: "List of available SEPs",
+ Elem: &schema.Resource{
+ Schema: map[string]*schema.Schema{
+ "sep_id": {
+ Type: schema.TypeInt,
+ Computed: true,
+ Description: "SEP ID",
+ },
+ "sep_name": {
+ Type: schema.TypeString,
+ Computed: true,
+ Description: "SEP name",
+ },
+ "sep_type": {
+ Type: schema.TypeString,
+ Computed: true,
+ Description: "SEP type",
+ },
+ "pools": {
+ Type: schema.TypeList,
+ Computed: true,
+ Description: "List of pools in the SEP",
+ Elem: &schema.Resource{
+ Schema: map[string]*schema.Schema{
+ "name": {
+ Type: schema.TypeString,
+ Computed: true,
+ Description: "Pool name",
+ },
+ "types": {
+ Type: schema.TypeList,
+ Computed: true,
+ Description: "List of pool types",
+ Elem: &schema.Schema{
+ Type: schema.TypeString,
+ },
+ },
+ "system": {
+ Type: schema.TypeBool,
+ Computed: true,
+ Description: "Is system pool",
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ }
+}
+
+func DataSourceAvailableSEPAndPoolsList() *schema.Resource {
+ return &schema.Resource{
+ SchemaVersion: 1,
+
+ ReadContext: DataSourceAvailableSEPAndPoolsListRead,
+
+ Timeouts: &schema.ResourceTimeout{
+ Read: &constants.Timeout30s,
+ Default: &constants.Timeout60s,
+ },
+
+ Schema: dataSourceAvailableSEPListSchemaMake(),
+ }
+}
diff --git a/internal/service/cloudapi/sep/flattens.go b/internal/service/cloudapi/sep/flattens.go
new file mode 100644
index 0000000..60ff19f
--- /dev/null
+++ b/internal/service/cloudapi/sep/flattens.go
@@ -0,0 +1,74 @@
+/*
+Copyright (c) 2019-2023 Digital Energy Cloud Solutions LLC. All Rights Reserved.
+Authors:
+Petr Krutov,
+Stanislav Solovev,
+Sergey Kisil,
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+/*
+Terraform DECORT provider - manage resources provided by DECORT (Digital Energy Cloud
+Orchestration Technology) with Terraform by Hashicorp.
+
+Source code: https://repository.basistech.ru/BASIS/terraform-provider-decort
+
+Please see README.md to learn where to place source code so that it
+builds seamlessly.
+
+Documentation: https://repository.basistech.ru/BASIS/terraform-provider-decort/wiki
+*/
+
+package sep
+
+import (
+ "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
+ "repository.basistech.ru/BASIS/decort-golang-sdk/pkg/cloudapi/sep"
+)
+
+func flattenAvailableSEPList(d *schema.ResourceData, sepList *sep.ListAvailableSEP) {
+ d.Set("items", flattenSEPDataList(sepList.Data))
+ d.Set("entry_count", sepList.EntryCount)
+}
+
+func flattenSEPDataList(sepDataList []sep.SEPData) []map[string]interface{} {
+ sh := make([]map[string]interface{}, 0)
+
+ for _, sepData := range sepDataList {
+ temp := map[string]interface{}{
+ "sep_id": sepData.SEPID,
+ "sep_name": sepData.SEPName,
+ "sep_type": sepData.SEPType,
+ "pools": flattenPoolList(sepData.Pools),
+ }
+ sh = append(sh, temp)
+ }
+
+ return sh
+}
+
+func flattenPoolList(pools []sep.Pool) []map[string]interface{} {
+ sh := make([]map[string]interface{}, 0)
+
+ for _, pool := range pools {
+ temp := map[string]interface{}{
+ "name": pool.Name,
+ "types": pool.Types,
+ "system": pool.System,
+ }
+ sh = append(sh, temp)
+ }
+
+ return sh
+}
diff --git a/internal/service/cloudapi/sep/utility_available_sep_and_pools_list.go b/internal/service/cloudapi/sep/utility_available_sep_and_pools_list.go
new file mode 100644
index 0000000..b732644
--- /dev/null
+++ b/internal/service/cloudapi/sep/utility_available_sep_and_pools_list.go
@@ -0,0 +1,63 @@
+/*
+Copyright (c) 2019-2023 Digital Energy Cloud Solutions LLC. All Rights Reserved.
+Authors:
+Petr Krutov,
+Stanislav Solovev,
+Sergey Kisil,
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+/*
+Terraform DECORT provider - manage resources provided by DECORT (Digital Energy Cloud
+Orchestration Technology) with Terraform by Hashicorp.
+
+Source code: https://repository.basistech.ru/BASIS/terraform-provider-decort
+
+Please see README.md to learn where to place source code so that it
+builds seamlessly.
+
+Documentation: https://repository.basistech.ru/BASIS/terraform-provider-decort/wiki
+*/
+
+package sep
+
+import (
+ "context"
+
+ log "github.com/sirupsen/logrus"
+ "repository.basistech.ru/BASIS/decort-golang-sdk/pkg/cloudapi/sep"
+ "repository.basistech.ru/BASIS/terraform-provider-decort/internal/controller"
+
+ "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
+)
+
+func utilityAvailableSEPAndPoolsListCheckPresence(ctx context.Context, d *schema.ResourceData, m interface{}) (*sep.ListAvailableSEP, error) {
+ c := m.(*controller.ControllerCfg)
+ req := sep.ListAvailableSEPAndPoolsRequest{}
+
+ if AccountID, ok := d.GetOk("account_id"); ok {
+ req.AccountID = uint64(AccountID.(int))
+ }
+ if RGID, ok := d.GetOk("rg_id"); ok {
+ req.RGID = RGID.(uint64)
+ }
+
+ log.Debugf("utilityAvailableSEPAndPoolsListCheckPresence: load sep and pools list")
+ sepList, err := c.CloudAPI().SEP().ListAvailableSEPAndPools(ctx, req)
+ if err != nil {
+ return nil, err
+ }
+
+ return sepList, nil
+}
diff --git a/internal/service/cloudapi/vins/data_source_vins_list.go b/internal/service/cloudapi/vins/data_source_vins_list.go
index 5fb8f33..4f51c7e 100644
--- a/internal/service/cloudapi/vins/data_source_vins_list.go
+++ b/internal/service/cloudapi/vins/data_source_vins_list.go
@@ -99,6 +99,11 @@ func dataSourceVinsListSchemaMake() map[string]*schema.Schema {
Optional: true,
Description: "sort by one of supported fields, format +|-(field)",
},
+ "status": {
+ Type: schema.TypeString,
+ Optional: true,
+ Description: "sort by status",
+ },
"page": {
Type: schema.TypeInt,
Optional: true,
diff --git a/internal/service/cloudapi/vins/utility_vins_list.go b/internal/service/cloudapi/vins/utility_vins_list.go
index 8b682b9..ab91974 100644
--- a/internal/service/cloudapi/vins/utility_vins_list.go
+++ b/internal/service/cloudapi/vins/utility_vins_list.go
@@ -78,6 +78,10 @@ func utilityVinsListCheckPresence(ctx context.Context, d *schema.ResourceData, m
req.SortBy = sortBy.(string)
}
+ if status, ok := d.GetOk("status"); ok {
+ req.Status = status.(string)
+ }
+
if page, ok := d.GetOk("page"); ok {
req.Page = uint64(page.(int))
}
diff --git a/internal/service/cloudbroker/account/flattens.go b/internal/service/cloudbroker/account/flattens.go
index bd5eb99..4b6c1ef 100644
--- a/internal/service/cloudbroker/account/flattens.go
+++ b/internal/service/cloudbroker/account/flattens.go
@@ -18,6 +18,7 @@ func flattenResourceAccount(d *schema.ResourceData, acc *account.RecordAccount)
d.Set("created_by", acc.CreatedBy)
d.Set("created_time", acc.CreatedTime)
d.Set("deactivation_time", acc.DeactivationTime)
+ d.Set("desc", acc.Description)
d.Set("deleted_by", acc.DeletedBy)
d.Set("deleted_time", acc.DeletedTime)
d.Set("displayname", acc.DisplayName)
@@ -46,6 +47,7 @@ func flattenDataAccount(d *schema.ResourceData, acc *account.RecordAccount) {
d.Set("created_by", acc.CreatedBy)
d.Set("created_time", acc.CreatedTime)
d.Set("deactivation_time", acc.DeactivationTime)
+ d.Set("desc", acc.Description)
d.Set("deleted_by", acc.DeletedBy)
d.Set("deleted_time", acc.DeletedTime)
d.Set("displayname", acc.DisplayName)
@@ -71,6 +73,7 @@ func flattenAccountRGList(argl *account.ListRG) []map[string]interface{} {
"resources": flattenAccRGResources(arg.Resources),
"created_by": arg.CreatedBy,
"created_time": arg.CreatedTime,
+ "desc": arg.Description,
"deleted_by": arg.DeletedBy,
"deleted_time": arg.DeletedTime,
"rg_id": arg.ID,
@@ -204,6 +207,7 @@ func flattenListDeleted(al *account.ListAccounts) []map[string]interface{} {
"created_by": acc.CreatedBy,
"created_time": acc.CreatedTime,
"deactivation_time": acc.DeactivationTime,
+ "desc": acc.Description,
"deleted_by": acc.DeletedBy,
"deleted_time": acc.DeletedTime,
"displayname": acc.DisplayName,
@@ -240,6 +244,7 @@ func flattenAccountList(al *account.ListAccounts) []map[string]interface{} {
"created_by": acc.CreatedBy,
"created_time": acc.CreatedTime,
"deactivation_time": acc.DeactivationTime,
+ "desc": acc.Description,
"deleted_by": acc.DeletedBy,
"deleted_time": acc.DeletedTime,
"displayname": acc.DisplayName,
diff --git a/internal/service/cloudbroker/account/resource_account.go b/internal/service/cloudbroker/account/resource_account.go
index 50ee97a..1c662fa 100644
--- a/internal/service/cloudbroker/account/resource_account.go
+++ b/internal/service/cloudbroker/account/resource_account.go
@@ -55,6 +55,10 @@ func resourceAccountCreate(ctx context.Context, d *schema.ResourceData, m interf
Username: d.Get("username").(string),
}
+ if desc, ok := d.GetOk("desc"); ok {
+ req.Description = desc.(string)
+ }
+
if emailaddress, ok := d.GetOk("emailaddress"); ok {
req.EmailAddress = emailaddress.(string)
}
@@ -196,6 +200,7 @@ func resourceAccountCreate(ctx context.Context, d *schema.ResourceData, m interf
if !d.Get("enable").(bool) {
_, err := c.CloudBroker().Account().Disable(ctx, account.DisableRequest{
AccountID: accountId,
+ Reason: d.Get("reason").(string),
})
if err != nil {
@@ -239,6 +244,8 @@ func resourceAccountDelete(ctx context.Context, d *schema.ResourceData, m interf
req := account.DeleteRequest{
AccountID: accountData.ID,
Permanently: d.Get("permanently").(bool),
+ Name: d.Get("account_name").(string),
+ Reason: d.Get("reason").(string),
}
_, err = c.CloudBroker().Account().Delete(ctx, req)
@@ -277,6 +284,7 @@ func resourceAccountUpdate(ctx context.Context, d *schema.ResourceData, m interf
if d.Get("restore").(bool) {
_, err := c.CloudBroker().Account().Restore(ctx, account.RestoreRequest{
AccountID: accountId,
+ Reason: d.Get("reason").(string),
})
if err != nil {
@@ -308,7 +316,7 @@ func resourceAccountUpdate(ctx context.Context, d *schema.ResourceData, m interf
}
}
- if d.HasChanges("account_name", "send_access_emails", "uniq_pools", "resource_limits") {
+ if d.HasChanges("account_name", "send_access_emails", "uniq_pools", "resource_limits", "desc") {
if err := utilityAccountUpdate(ctx, d, m); err != nil {
return diag.FromErr(err)
}
diff --git a/internal/service/cloudbroker/account/schema.go b/internal/service/cloudbroker/account/schema.go
index b2e9cbf..3e6b762 100644
--- a/internal/service/cloudbroker/account/schema.go
+++ b/internal/service/cloudbroker/account/schema.go
@@ -17,6 +17,11 @@ func resourceAccountSchemaMake() map[string]*schema.Schema {
Required: true,
Description: "username of owner the account",
},
+ "desc": {
+ Type: schema.TypeString,
+ Optional: true,
+ Description: "description",
+ },
"emailaddress": {
Type: schema.TypeString,
Optional: true,
@@ -72,6 +77,11 @@ func resourceAccountSchemaMake() map[string]*schema.Schema {
},
Description: "Share images with account",
},
+ "reason": {
+ Type: schema.TypeBool,
+ Optional: true,
+ Description: "reason for restore or deactivation",
+ },
"restore": {
Type: schema.TypeBool,
Optional: true,
@@ -138,7 +148,7 @@ func resourceAccountSchemaMake() map[string]*schema.Schema {
Optional: true,
Elem: &schema.Schema{
Type: schema.TypeString,
- ValidateFunc: validation.StringInSlice([]string{"hugepages", "numa", "cpupin", "vfnic"}, true),
+ ValidateFunc: validation.StringInSlice([]string{"hugepages", "numa", "cpupin", "vfnic", "dpdk", "changemac"}, true),
},
},
"account_id": {
@@ -576,6 +586,10 @@ func dataSourceAccountListDeletedSchemaMake() map[string]*schema.Schema {
Type: schema.TypeFloat,
Computed: true,
},
+ "desc": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
"deleted_by": {
Type: schema.TypeString,
Computed: true,
@@ -1214,6 +1228,10 @@ func dataSourceAccountListSchemaMake() map[string]*schema.Schema {
Type: schema.TypeFloat,
Computed: true,
},
+ "desc": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
"deleted_by": {
Type: schema.TypeString,
Computed: true,
@@ -1710,6 +1728,10 @@ func dataSourceAccountRGListSchemaMake() map[string]*schema.Schema {
Type: schema.TypeInt,
Computed: true,
},
+ "desc": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
"deleted_by": {
Type: schema.TypeString,
Computed: true,
@@ -1973,6 +1995,10 @@ func dataSourceAccountSchemaMake() map[string]*schema.Schema {
Type: schema.TypeInt,
Computed: true,
},
+ "desc": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
"deleted_by": {
Type: schema.TypeString,
Computed: true,
diff --git a/internal/service/cloudbroker/account/utility_account.go b/internal/service/cloudbroker/account/utility_account.go
index e108b25..4010684 100644
--- a/internal/service/cloudbroker/account/utility_account.go
+++ b/internal/service/cloudbroker/account/utility_account.go
@@ -218,6 +218,10 @@ func utilityAccountUpdate(ctx context.Context, d *schema.ResourceData, m interfa
req.Name = d.Get("account_name").(string)
}
+ if d.HasChange("desc") {
+ req.Description = d.Get("desc").(string)
+ }
+
if d.HasChange("send_access_emails") {
req.SendAccessEmails = d.Get("send_access_emails").(bool)
}
diff --git a/internal/service/cloudbroker/audit/flattens.go b/internal/service/cloudbroker/audit/flattens.go
index 493de04..f014cca 100644
--- a/internal/service/cloudbroker/audit/flattens.go
+++ b/internal/service/cloudbroker/audit/flattens.go
@@ -52,6 +52,7 @@ func flattenAudit(d *schema.ResourceData, au *audit.RecordAudit) {
d.Set("tags", au.Tags)
d.Set("timestamp", au.Timestamp)
d.Set("timestamp_end", au.TimestampEnd)
+ d.Set("ttl", au.TTL)
d.Set("user", au.User)
}
@@ -59,12 +60,19 @@ func flattenAuditList(au *audit.ListAudits) []map[string]interface{} {
res := make([]map[string]interface{}, 0, len(au.Data))
for _, item := range au.Data {
temp := map[string]interface{}{
- "call": item.Call,
- "guid": item.GUID,
- "responsetime": item.ResponseTime,
- "status_code": item.StatusCode,
- "timestamp": item.Timestamp,
- "user": item.User,
+ "args": item.Args,
+ "call": item.Call,
+ "guid": item.GUID,
+ "kwargs": item.Kwargs,
+ "remote_addr": item.RemoteAddr,
+ "result": item.Result,
+ "responsetime": item.ResponseTime,
+ "status_code": item.StatusCode,
+ "tags": item.Tags,
+ "timestamp": item.Timestamp,
+ "timestamp_end": item.TimestampEnd,
+ "ttl": item.TTL,
+ "user": item.User,
}
res = append(res, temp)
}
@@ -76,14 +84,15 @@ func flattenLinkedJobs(ljl *audit.ListLinkedJobs) []map[string]interface{} {
linkedJobs := *ljl
for _, item := range linkedJobs {
temp := map[string]interface{}{
- "cmd": item.CMD,
- "guid": item.GUID,
- "nid": item.NID,
- "state": item.State,
- "time_create": item.TimeCreate,
- "time_start": item.TimeStart,
- "time_stop": item.TimeStop,
- "timeout": item.Timeout,
+ "cmd": item.CMD,
+ "guid": item.GUID,
+ "nid": item.NID,
+ "physical_node": item.PhysicalNode,
+ "state": item.State,
+ "time_create": item.TimeCreate,
+ "time_start": item.TimeStart,
+ "time_stop": item.TimeStop,
+ "timeout": item.Timeout,
}
res = append(res, temp)
}
diff --git a/internal/service/cloudbroker/audit/schema.go b/internal/service/cloudbroker/audit/schema.go
index 229b4fb..f2f672f 100644
--- a/internal/service/cloudbroker/audit/schema.go
+++ b/internal/service/cloudbroker/audit/schema.go
@@ -54,6 +54,10 @@ func dataSourceAuditSchemaMake() map[string]*schema.Schema {
Type: schema.TypeFloat,
Computed: true,
},
+ "ttl": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
"user": {
Type: schema.TypeString,
Computed: true,
@@ -103,12 +107,16 @@ func dataSourceAuditListSchemaMake() map[string]*schema.Schema {
Optional: true,
Description: "page number",
},
+ "request_id": {
+ Type: schema.TypeString,
+ Optional: true,
+ Description: "request id",
+ },
"size": {
Type: schema.TypeInt,
Optional: true,
Description: "page size",
},
-
"items": {
Type: schema.TypeList,
Computed: true,
@@ -138,6 +146,34 @@ func dataSourceAuditListSchemaMake() map[string]*schema.Schema {
Type: schema.TypeString,
Computed: true,
},
+ "ttl": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
+ "args": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
+ "kwargs": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
+ "result": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
+ "timestamp_end": {
+ Type: schema.TypeFloat,
+ Computed: true,
+ },
+ "remote_addr": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
+ "tags": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
},
},
},
@@ -177,6 +213,10 @@ func dataSourceLinkedJobsSchemaMake() map[string]*schema.Schema {
Computed: true,
Description: "nid",
},
+ "physical_node": {
+ Type: schema.TypeBool,
+ Computed: true,
+ },
"state": {
Type: schema.TypeString,
Computed: true,
diff --git a/internal/service/cloudbroker/audit/utility_audit_list.go b/internal/service/cloudbroker/audit/utility_audit_list.go
index 6170b37..83e4d52 100644
--- a/internal/service/cloudbroker/audit/utility_audit_list.go
+++ b/internal/service/cloudbroker/audit/utility_audit_list.go
@@ -70,6 +70,9 @@ func utilityAuditListCheckPresence(ctx context.Context, d *schema.ResourceData,
if Page, ok := d.GetOk("page"); ok {
req.Page = uint64(Page.(int))
}
+ if RequestID, ok := d.GetOk("request_id"); ok {
+ req.RequestID = RequestID.(string)
+ }
if Size, ok := d.GetOk("size"); ok {
req.Size = uint64(Size.(int))
}
diff --git a/internal/service/cloudbroker/disks/flattens.go b/internal/service/cloudbroker/disks/flattens.go
index 8b62231..9540bbc 100644
--- a/internal/service/cloudbroker/disks/flattens.go
+++ b/internal/service/cloudbroker/disks/flattens.go
@@ -15,7 +15,9 @@ func flattenDisk(d *schema.ResourceData, disk *disks.RecordDisk) {
d.Set("acl", string(diskAcl))
d.Set("boot_partition", disk.BootPartition)
d.Set("computes", flattenDiskComputes(disk.Computes))
+ d.Set("created_by", disk.CreatedBy)
d.Set("created_time", disk.CreatedTime)
+ d.Set("deleted_by", disk.DeletedBy)
d.Set("deleted_time", disk.DeletedTime)
d.Set("desc", disk.Description)
d.Set("destruction_time", disk.DestructionTime)
@@ -29,6 +31,8 @@ func flattenDisk(d *schema.ResourceData, disk *disks.RecordDisk) {
d.Set("iotune", flattenIOTune(disk.IOTune))
d.Set("iqn", disk.IQN)
d.Set("login", disk.Login)
+ d.Set("machine_id", disk.MachineID)
+ d.Set("machine_name", disk.MachineName)
d.Set("milestones", disk.Milestones)
d.Set("disk_name", disk.Name)
d.Set("order", disk.Order)
@@ -49,6 +53,7 @@ func flattenDisk(d *schema.ResourceData, disk *disks.RecordDisk) {
d.Set("sep_id", disk.SEPID)
d.Set("sep_type", disk.SEPType)
d.Set("shareable", disk.Shareable)
+ d.Set("size_available", disk.SizeAvailable)
d.Set("size_max", disk.SizeMax)
d.Set("size_used", disk.SizeUsed)
d.Set("snapshots", flattendDiskSnapshotList(disk.Snapshots))
@@ -56,6 +61,8 @@ func flattenDisk(d *schema.ResourceData, disk *disks.RecordDisk) {
d.Set("tech_status", disk.TechStatus)
d.Set("type", disk.Type)
d.Set("vmid", disk.VMID)
+ d.Set("updated_by", disk.UpdatedBy)
+ d.Set("updated_time", disk.UpdatedTime)
}
func flattenDiskReplica(d *schema.ResourceData, disk *disks.RecordDisk, statusReplication string) {
@@ -176,7 +183,9 @@ func flattenDiskList(dl *disks.ListDisks) []map[string]interface{} {
"acl": string(diskAcl),
"boot_partition": disk.BootPartition,
"computes": flattenDiskComputes(disk.Computes),
+ "created_by": disk.CreatedBy,
"created_time": disk.CreatedTime,
+ "deleted_by": disk.DeletedBy,
"deleted_time": disk.DeletedTime,
"desc": disk.Description,
"destruction_time": disk.DestructionTime,
@@ -210,6 +219,7 @@ func flattenDiskList(dl *disks.ListDisks) []map[string]interface{} {
"role": disk.Role,
"sep_id": disk.SEPID,
"sep_type": disk.SEPType,
+ "size_available": disk.SizeAvailable,
"size_max": disk.SizeMax,
"size_used": disk.SizeUsed,
"snapshots": flattendDiskSnapshotList(disk.Snapshots),
@@ -217,6 +227,8 @@ func flattenDiskList(dl *disks.ListDisks) []map[string]interface{} {
"tech_status": disk.TechStatus,
"type": disk.Type,
"vmid": disk.VMID,
+ "updated_by": disk.UpdatedBy,
+ "updated_time": disk.UpdatedTime,
}
res = append(res, temp)
}
diff --git a/internal/service/cloudbroker/disks/resource_check_input_values.go b/internal/service/cloudbroker/disks/resource_check_input_values.go
index fe57df4..c392f6c 100644
--- a/internal/service/cloudbroker/disks/resource_check_input_values.go
+++ b/internal/service/cloudbroker/disks/resource_check_input_values.go
@@ -2,6 +2,7 @@ package disks
import (
"context"
+
"github.com/hashicorp/terraform-plugin-sdk/v2/diag"
"repository.basistech.ru/BASIS/terraform-provider-decort/internal/dc"
"repository.basistech.ru/BASIS/terraform-provider-decort/internal/service/cloudbroker/ic"
@@ -14,15 +15,10 @@ func checkParamsExistence(ctx context.Context, d *schema.ResourceData, c *contro
var errs []error
accountID := uint64(d.Get("account_id").(int))
- gid := uint64(d.Get("gid").(int))
if err := ic.ExistAccount(ctx, accountID, c); err != nil {
errs = append(errs, err)
}
- if err := ic.ExistGID(ctx, gid, c); err != nil {
- errs = append(errs, err)
- }
-
return dc.ErrorsToDiagnostics(errs)
}
diff --git a/internal/service/cloudbroker/disks/resource_disk.go b/internal/service/cloudbroker/disks/resource_disk.go
index 3d6ac94..6eac205 100644
--- a/internal/service/cloudbroker/disks/resource_disk.go
+++ b/internal/service/cloudbroker/disks/resource_disk.go
@@ -58,20 +58,14 @@ func resourceDiskCreate(ctx context.Context, d *schema.ResourceData, m interface
req := disks.CreateRequest{
AccountID: uint64(d.Get("account_id").(int)),
- GID: uint64(d.Get("gid").(int)),
Name: d.Get("disk_name").(string),
Size: uint64(d.Get("size_max").(int)),
- Type: d.Get("type").(string),
}
if desc, ok := d.GetOk("desc"); ok {
req.Description = desc.(string)
}
- if ssdSize, ok := d.GetOk("ssd_size"); ok {
- req.SSDSize = uint64(ssdSize.(int))
- }
-
if iops, ok := d.GetOk("iops"); ok {
req.IOPS = uint64(iops.(int))
}
diff --git a/internal/service/cloudbroker/disks/schema.go b/internal/service/cloudbroker/disks/schema.go
index c73eaf8..2d89cfd 100644
--- a/internal/service/cloudbroker/disks/schema.go
+++ b/internal/service/cloudbroker/disks/schema.go
@@ -2,7 +2,6 @@ package disks
import (
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
- "github.com/hashicorp/terraform-plugin-sdk/v2/helper/validation"
)
func dataSourceDiskSchemaMake() map[string]*schema.Schema {
@@ -43,10 +42,18 @@ func dataSourceDiskSchemaMake() map[string]*schema.Schema {
},
},
},
+ "created_by": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
"created_time": {
Type: schema.TypeInt,
Computed: true,
},
+ "deleted_by": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
"deleted_time": {
Type: schema.TypeInt,
Computed: true,
@@ -154,6 +161,14 @@ func dataSourceDiskSchemaMake() map[string]*schema.Schema {
Type: schema.TypeString,
Computed: true,
},
+ "machine_id": {
+ Type: schema.TypeInt,
+ Computed: true,
+ },
+ "machine_name": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
"milestones": {
Type: schema.TypeInt,
Computed: true,
@@ -187,7 +202,7 @@ func dataSourceDiskSchemaMake() map[string]*schema.Schema {
Computed: true,
},
"present_to": {
- Type: schema.TypeList,
+ Type: schema.TypeMap,
Computed: true,
Elem: &schema.Schema{
Type: schema.TypeInt,
@@ -266,6 +281,10 @@ func dataSourceDiskSchemaMake() map[string]*schema.Schema {
Type: schema.TypeBool,
Computed: true,
},
+ "size_available": {
+ Type: schema.TypeFloat,
+ Computed: true,
+ },
"size_max": {
Type: schema.TypeInt,
Computed: true,
@@ -326,6 +345,14 @@ func dataSourceDiskSchemaMake() map[string]*schema.Schema {
Type: schema.TypeInt,
Computed: true,
},
+ "updated_by": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
+ "updated_time": {
+ Type: schema.TypeInt,
+ Computed: true,
+ },
}
return rets
@@ -435,10 +462,18 @@ func dataSourceDiskListSchemaMake() map[string]*schema.Schema {
},
},
},
+ "created_by": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
"created_time": {
Type: schema.TypeInt,
Computed: true,
},
+ "deleted_by": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
"deleted_time": {
Type: schema.TypeInt,
Computed: true,
@@ -591,7 +626,7 @@ func dataSourceDiskListSchemaMake() map[string]*schema.Schema {
Computed: true,
},
"present_to": {
- Type: schema.TypeList,
+ Type: schema.TypeMap,
Computed: true,
Elem: &schema.Schema{
Type: schema.TypeInt,
@@ -670,6 +705,10 @@ func dataSourceDiskListSchemaMake() map[string]*schema.Schema {
Type: schema.TypeBool,
Computed: true,
},
+ "size_available": {
+ Type: schema.TypeFloat,
+ Computed: true,
+ },
"size_max": {
Type: schema.TypeInt,
Computed: true,
@@ -730,6 +769,14 @@ func dataSourceDiskListSchemaMake() map[string]*schema.Schema {
Type: schema.TypeInt,
Computed: true,
},
+ "updated_by": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
+ "updated_time": {
+ Type: schema.TypeInt,
+ Computed: true,
+ },
},
},
},
@@ -830,10 +877,18 @@ func dataSourceDiskListDeletedSchemaMake() map[string]*schema.Schema {
},
},
},
+ "created_by": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
"created_time": {
Type: schema.TypeInt,
Computed: true,
},
+ "deleted_by": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
"deleted_time": {
Type: schema.TypeInt,
Computed: true,
@@ -986,7 +1041,7 @@ func dataSourceDiskListDeletedSchemaMake() map[string]*schema.Schema {
Computed: true,
},
"present_to": {
- Type: schema.TypeList,
+ Type: schema.TypeMap,
Computed: true,
Elem: &schema.Schema{
Type: schema.TypeInt,
@@ -1065,6 +1120,10 @@ func dataSourceDiskListDeletedSchemaMake() map[string]*schema.Schema {
Type: schema.TypeBool,
Computed: true,
},
+ "size_available": {
+ Type: schema.TypeFloat,
+ Computed: true,
+ },
"size_max": {
Type: schema.TypeInt,
Computed: true,
@@ -1125,6 +1184,14 @@ func dataSourceDiskListDeletedSchemaMake() map[string]*schema.Schema {
Type: schema.TypeInt,
Computed: true,
},
+ "updated_by": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
+ "updated_time": {
+ Type: schema.TypeInt,
+ Computed: true,
+ },
},
},
},
@@ -1505,7 +1572,7 @@ func dataSourceDiskListUnattachedSchemaMake() map[string]*schema.Schema {
Description: "Pool for disk location",
},
"present_to": {
- Type: schema.TypeList,
+ Type: schema.TypeMap,
Computed: true,
Elem: &schema.Schema{
Type: schema.TypeInt,
@@ -1796,22 +1863,18 @@ func resourceDiskSchemaMake() map[string]*schema.Schema {
Required: true,
//ForceNew: true,
},
- "gid": {
- Type: schema.TypeInt,
- Required: true,
- //ForceNew: true,
+ "created_by": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
+ "deleted_by": {
+ Type: schema.TypeString,
+ Computed: true,
},
"disk_name": {
Type: schema.TypeString,
Required: true,
},
- "type": {
- Type: schema.TypeString,
- Required: true,
- ValidateFunc: validation.StringInSlice([]string{"D", "B", "T"}, false),
- Description: "The type of disk in terms of its role in compute: 'B=Boot, D=Data, T=Temp'",
- },
-
"desc": {
Type: schema.TypeString,
Optional: true,
@@ -1821,9 +1884,10 @@ func resourceDiskSchemaMake() map[string]*schema.Schema {
Type: schema.TypeInt,
Required: true,
},
- "ssd_size": {
- Type: schema.TypeInt,
- Optional: true,
+ "type": {
+ Type: schema.TypeString,
+ Computed: true,
+ Description: "The type of disk in terms of its role in compute: 'B=Boot, D=Data, T=Temp'",
},
"iops": {
Type: schema.TypeInt,
@@ -1922,6 +1986,10 @@ func resourceDiskSchemaMake() map[string]*schema.Schema {
Type: schema.TypeInt,
Computed: true,
},
+ "gid": {
+ Type: schema.TypeInt,
+ Computed: true,
+ },
"disk_id": {
Type: schema.TypeInt,
Computed: true,
@@ -2020,11 +2088,18 @@ func resourceDiskSchemaMake() map[string]*schema.Schema {
Type: schema.TypeString,
Computed: true,
},
+ "machine_id": {
+ Type: schema.TypeInt,
+ Computed: true,
+ },
+ "machine_name": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
"milestones": {
Type: schema.TypeInt,
Computed: true,
},
-
"order": {
Type: schema.TypeInt,
Computed: true,
@@ -2046,7 +2121,7 @@ func resourceDiskSchemaMake() map[string]*schema.Schema {
Computed: true,
},
"present_to": {
- Type: schema.TypeList,
+ Type: schema.TypeMap,
Computed: true,
Elem: &schema.Schema{
Type: schema.TypeInt,
@@ -2169,6 +2244,14 @@ func resourceDiskSchemaMake() map[string]*schema.Schema {
Type: schema.TypeInt,
Computed: true,
},
+ "updated_by": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
+ "updated_time": {
+ Type: schema.TypeInt,
+ Computed: true,
+ },
}
return rets
@@ -2367,7 +2450,7 @@ func dataSourceDiskReplicationSchemaMake() map[string]*schema.Schema {
Computed: true,
},
"present_to": {
- Type: schema.TypeList,
+ Type: schema.TypeMap,
Computed: true,
Elem: &schema.Schema{
Type: schema.TypeInt,
@@ -2741,7 +2824,7 @@ func resourceDiskReplicationSchemaMake() map[string]*schema.Schema {
Computed: true,
},
"present_to": {
- Type: schema.TypeList,
+ Type: schema.TypeMap,
Computed: true,
Elem: &schema.Schema{
Type: schema.TypeInt,
diff --git a/internal/service/cloudbroker/extnet/flattens.go b/internal/service/cloudbroker/extnet/flattens.go
index bfa7309..1683454 100644
--- a/internal/service/cloudbroker/extnet/flattens.go
+++ b/internal/service/cloudbroker/extnet/flattens.go
@@ -85,6 +85,7 @@ func flattenRecordExtnet(d *schema.ResourceData, recNet *extnet.RecordExtNet) {
d.Set("milestones", recNet.Milestones)
d.Set("name", recNet.Name)
d.Set("network_id", recNet.NetworkID)
+ d.Set("ntp", recNet.NTP)
d.Set("ovs_bridge", recNet.OVSBridge)
d.Set("pre_reservations_num", recNet.PreReservationsNum)
d.Set("pri_vnfdev_id", recNet.PriVNFDevID)
diff --git a/internal/service/cloudbroker/extnet/schema.go b/internal/service/cloudbroker/extnet/schema.go
index 7e91bf8..0b2d97f 100644
--- a/internal/service/cloudbroker/extnet/schema.go
+++ b/internal/service/cloudbroker/extnet/schema.go
@@ -516,6 +516,13 @@ func dataSourceExtnetSchemaMake() map[string]*schema.Schema {
},
},
},
+ "ntp": {
+ Type: schema.TypeList,
+ Computed: true,
+ Elem: &schema.Schema{
+ Type: schema.TypeString,
+ },
+ },
}
}
diff --git a/internal/service/cloudbroker/image/resource_cdrom_image.go b/internal/service/cloudbroker/image/resource_cdrom_image.go
index f265e77..817a17d 100644
--- a/internal/service/cloudbroker/image/resource_cdrom_image.go
+++ b/internal/service/cloudbroker/image/resource_cdrom_image.go
@@ -41,7 +41,6 @@ import (
"repository.basistech.ru/BASIS/decort-golang-sdk/pkg/cloudbroker/image"
"repository.basistech.ru/BASIS/terraform-provider-decort/internal/constants"
"repository.basistech.ru/BASIS/terraform-provider-decort/internal/controller"
- "repository.basistech.ru/BASIS/terraform-provider-decort/internal/service/cloudbroker/ic"
"repository.basistech.ru/BASIS/terraform-provider-decort/internal/status"
)
@@ -53,12 +52,6 @@ func resourceCDROMImageCreate(ctx context.Context, d *schema.ResourceData, m int
URL: d.Get("url").(string),
}
- if err := ic.ExistGID(ctx, uint64(d.Get("gid").(int)), c); err != nil {
- return diag.FromErr(err)
- }
-
- req.GID = uint64(d.Get("gid").(int))
-
drivers := []string{}
for _, driver := range d.Get("drivers").([]interface{}) {
drivers = append(drivers, driver.(string))
diff --git a/internal/service/cloudbroker/image/resource_image.go b/internal/service/cloudbroker/image/resource_image.go
index aca6c55..cfe7c0c 100644
--- a/internal/service/cloudbroker/image/resource_image.go
+++ b/internal/service/cloudbroker/image/resource_image.go
@@ -354,41 +354,47 @@ func resourceImageChangeAccess(ctx context.Context, d *schema.ResourceData, m in
oldSet, newSet := d.GetChange("accounts")
revokeAccess := (oldSet.(*schema.Set).Difference(newSet.(*schema.Set))).List()
- if len(revokeAccess) > 0 {
- revokeAccounts := make([]uint64, 0, len(revokeAccess))
+ revokeAccounts := make([]int64, 0, len(revokeAccess))
+ if newSet.(*schema.Set).Len() == 0 {
+ revokeAccounts = append(revokeAccounts, -1)
+ } else if len(revokeAccess) > 0 {
for _, accountId := range revokeAccess {
- revokeAccounts = append(revokeAccounts, uint64(accountId.(int)))
+ revokeAccounts = append(revokeAccounts, accountId.(int64))
}
- req := image.RevokeAccessRequest{
- ImageID: imageId,
- AccountIDs: revokeAccounts,
- }
+ }
- _, err := c.CloudBroker().Image().RevokeAccess(ctx, req)
- if err != nil {
- return err
- }
+ req := image.RevokeAccessRequest{
+ ImageID: imageId,
+ AccountIDs: revokeAccounts,
+ }
+
+ _, err := c.CloudBroker().Image().RevokeAccess(ctx, req)
+ if err != nil {
+ return err
}
addedAccess := (newSet.(*schema.Set).Difference(oldSet.(*schema.Set))).List()
- if len(addedAccess) > 0 {
- grantAccounts := make([]uint64, 0, len(addedAccess))
+ grantAccounts := make([]int64, 0, len(addedAccess))
+ if newSet.(*schema.Set).Len() == 0 {
+ grantAccounts = append(grantAccounts, -1)
+ } else if len(addedAccess) > 0 {
for _, accountId := range addedAccess {
- grantAccounts = append(grantAccounts, uint64(accountId.(int)))
- }
-
- req := image.GrantAccessRequest{
- ImageID: imageId,
- AccountIDs: grantAccounts,
+ grantAccounts = append(grantAccounts, accountId.(int64))
}
- _, err := c.CloudBroker().Image().GrantAccess(ctx, req)
- if err != nil {
- return err
- }
}
+ // req := image.GrantAccessRequest{
+ // ImageID: imageId,
+ // AccountIDs: grantAccounts,
+ // }
+
+ // _, err := c.CloudBroker().Image().GrantAccess(ctx, req)
+ // if err != nil {
+ // return err
+ // }
+
return nil
}
@@ -399,9 +405,9 @@ func resourceImageSetAccess(ctx context.Context, d *schema.ResourceData, m inter
imageId, _ := strconv.ParseUint(d.Id(), 10, 64)
accounts := d.Get("accounts").([]interface{})
- accountIDs := make([]uint64, 0, len(accounts))
+ accountIDs := make([]int64, 0, len(accounts))
for _, accountId := range accounts {
- accountIDs = append(accountIDs, uint64(accountId.(int)))
+ accountIDs = append(accountIDs, accountId.(int64))
}
req := image.GrantAccessRequest{
diff --git a/internal/service/cloudbroker/image/resource_image_from_blank_compute.go b/internal/service/cloudbroker/image/resource_image_from_blank_compute.go
index 61afb9a..5915151 100644
--- a/internal/service/cloudbroker/image/resource_image_from_blank_compute.go
+++ b/internal/service/cloudbroker/image/resource_image_from_blank_compute.go
@@ -74,9 +74,6 @@ func resourceImageFromBlankComputeCreate(ctx context.Context, d *schema.Resource
if accountId, ok := d.GetOk("account_id"); ok {
req.AccountID = uint64(accountId.(int))
}
- if sepId, ok := d.GetOk("sep_id"); ok {
- req.SepID = uint64(sepId.(int))
- }
if poolName, ok := d.GetOk("pool_name"); ok {
req.PoolName = poolName.(string)
}
diff --git a/internal/service/cloudbroker/image/resource_image_from_platform_disk.go b/internal/service/cloudbroker/image/resource_image_from_platform_disk.go
index 6bbb038..7db1b4f 100644
--- a/internal/service/cloudbroker/image/resource_image_from_platform_disk.go
+++ b/internal/service/cloudbroker/image/resource_image_from_platform_disk.go
@@ -76,9 +76,6 @@ func resourceImageFromPlatformDiskCreate(ctx context.Context, d *schema.Resource
if accountId, ok := d.GetOk("account_id"); ok {
req.AccountID = uint64(accountId.(int))
}
- if sepId, ok := d.GetOk("sep_id"); ok {
- req.SepID = uint64(sepId.(int))
- }
if poolName, ok := d.GetOk("pool_name"); ok {
req.PoolName = poolName.(string)
}
diff --git a/internal/service/cloudbroker/image/schema.go b/internal/service/cloudbroker/image/schema.go
index 3dc731f..56f226b 100644
--- a/internal/service/cloudbroker/image/schema.go
+++ b/internal/service/cloudbroker/image/schema.go
@@ -574,7 +574,7 @@ func dataSourceImageListSchemaMake() map[string]*schema.Schema {
Description: "pool for image create",
},
"present_to": {
- Type: schema.TypeList,
+ Type: schema.TypeMap,
Computed: true,
Elem: &schema.Schema{
Type: schema.TypeInt,
@@ -832,7 +832,7 @@ func dataSourceImageSchemaMake() map[string]*schema.Schema {
Description: "pool for image create",
},
"present_to": {
- Type: schema.TypeList,
+ Type: schema.TypeMap,
Computed: true,
Elem: &schema.Schema{
Type: schema.TypeInt,
@@ -930,11 +930,6 @@ func resourceCDROMImageSchemaMake() map[string]*schema.Schema {
Required: true,
Description: "URL where to download ISO from",
},
- "gid": {
- Type: schema.TypeInt,
- Required: true,
- Description: "grid (platform) ID where this template should be create in",
- },
"drivers": {
Type: schema.TypeList,
Optional: true,
@@ -1068,6 +1063,10 @@ func resourceCDROMImageSchemaMake() map[string]*schema.Schema {
Computed: true,
Description: "Boot type of image bios or uefi",
},
+ "gid": {
+ Type: schema.TypeInt,
+ Computed: true,
+ },
"guid": {
Type: schema.TypeInt,
Computed: true,
@@ -1128,7 +1127,7 @@ func resourceCDROMImageSchemaMake() map[string]*schema.Schema {
Computed: true,
},
"present_to": {
- Type: schema.TypeList,
+ Type: schema.TypeMap,
Computed: true,
Elem: &schema.Schema{
Type: schema.TypeInt,
@@ -1200,11 +1199,6 @@ func resourceImageSchemaMake() map[string]*schema.Schema {
Optional: true,
Description: "path to image file",
},
- "gid": {
- Type: schema.TypeInt,
- Required: true,
- Description: "grid (platform) ID where this template should be create in",
- },
"boot_type": {
Type: schema.TypeString,
Required: true,
@@ -1365,6 +1359,10 @@ func resourceImageSchemaMake() map[string]*schema.Schema {
},
},
},
+ "gid": {
+ Type: schema.TypeInt,
+ Computed: true,
+ },
"guid": {
Type: schema.TypeInt,
Computed: true,
@@ -1424,7 +1422,7 @@ func resourceImageSchemaMake() map[string]*schema.Schema {
Computed: true,
},
"present_to": {
- Type: schema.TypeList,
+ Type: schema.TypeMap,
Computed: true,
Elem: &schema.Schema{
Type: schema.TypeInt,
@@ -1669,7 +1667,7 @@ func resourceVirtualImageSchemaMake() map[string]*schema.Schema {
Description: "pool for image create",
},
"present_to": {
- Type: schema.TypeList,
+ Type: schema.TypeMap,
Computed: true,
Elem: &schema.Schema{
Type: schema.TypeInt,
@@ -1763,8 +1761,8 @@ func resourceImageFromBlankComputeSchemaMake() map[string]*schema.Schema {
"image_type": {
Type: schema.TypeString,
Required: true,
- ValidateFunc: validation.StringInSlice([]string{"linux", "windows", "other"}, true),
- Description: "Image type linux, windows or other",
+ ValidateFunc: validation.StringInSlice([]string{"linux", "windows", "unknown"}, true),
+ Description: "Image type linux, windows or unknown",
},
"username": {
@@ -1787,7 +1785,6 @@ func resourceImageFromBlankComputeSchemaMake() map[string]*schema.Schema {
},
"sep_id": {
Type: schema.TypeInt,
- Optional: true,
Computed: true,
Description: "storage endpoint provider ID",
},
@@ -1966,7 +1963,7 @@ func resourceImageFromBlankComputeSchemaMake() map[string]*schema.Schema {
Computed: true,
},
"present_to": {
- Type: schema.TypeList,
+ Type: schema.TypeMap,
Computed: true,
Elem: &schema.Schema{
Type: schema.TypeInt,
@@ -2037,8 +2034,8 @@ func resourceImageFromPlatformDiskSchemaMake() map[string]*schema.Schema {
"image_type": {
Type: schema.TypeString,
Required: true,
- ValidateFunc: validation.StringInSlice([]string{"linux", "windows", "other"}, true),
- Description: "Image type linux, windows or other",
+ ValidateFunc: validation.StringInSlice([]string{"linux", "windows", "unknown"}, true),
+ Description: "Image type linux, windows or unknown",
},
"architecture": {
Type: schema.TypeString,
@@ -2067,7 +2064,6 @@ func resourceImageFromPlatformDiskSchemaMake() map[string]*schema.Schema {
},
"sep_id": {
Type: schema.TypeInt,
- Optional: true,
Computed: true,
Description: "storage endpoint provider ID",
},
@@ -2245,7 +2241,7 @@ func resourceImageFromPlatformDiskSchemaMake() map[string]*schema.Schema {
Computed: true,
},
"present_to": {
- Type: schema.TypeList,
+ Type: schema.TypeMap,
Computed: true,
Elem: &schema.Schema{
Type: schema.TypeInt,
diff --git a/internal/service/cloudbroker/image/utility_resource_create.go b/internal/service/cloudbroker/image/utility_resource_create.go
index 9c229e1..2c8cbbe 100644
--- a/internal/service/cloudbroker/image/utility_resource_create.go
+++ b/internal/service/cloudbroker/image/utility_resource_create.go
@@ -36,8 +36,6 @@ import (
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
"repository.basistech.ru/BASIS/decort-golang-sdk/pkg/cloudbroker/image"
- "repository.basistech.ru/BASIS/terraform-provider-decort/internal/controller"
- "repository.basistech.ru/BASIS/terraform-provider-decort/internal/service/cloudbroker/ic"
)
func SyncCreateRequest(ctx context.Context, d *schema.ResourceData, m interface{}, url string) (image.SyncCreateRequest, error) {
@@ -100,14 +98,6 @@ func CreateRequest(ctx context.Context, d *schema.ResourceData, m interface{}, u
ImageType: d.Get("image_type").(string),
}
- c := m.(*controller.ControllerCfg)
-
- if err := ic.ExistGID(ctx, uint64(d.Get("gid").(int)), c); err != nil {
- return req, err
- }
-
- req.GID = uint64(d.Get("gid").(int))
-
if _, ok := d.GetOk("drivers"); ok {
drivers := []string{}
for _, driver := range d.Get("drivers").([]interface{}) {
diff --git a/internal/service/cloudbroker/k8s/flattens.go b/internal/service/cloudbroker/k8s/flattens.go
index 64fc176..17e10bc 100644
--- a/internal/service/cloudbroker/k8s/flattens.go
+++ b/internal/service/cloudbroker/k8s/flattens.go
@@ -50,6 +50,7 @@ func flattenResourceK8sCP(d *schema.ResourceData, k8s k8s.RecordK8S, masters []c
d.Set("bservice_id", k8s.BServiceID)
d.Set("created_by", k8s.CreatedBy)
d.Set("created_time", k8s.CreatedTime)
+ d.Set("desc", k8s.Description)
d.Set("deleted_by", k8s.DeletedBy)
d.Set("deleted_time", k8s.DeletedTime)
d.Set("k8s_ci_name", k8s.K8CIName)
@@ -91,6 +92,7 @@ func flattenK8sData(d *schema.ResourceData, cluster *k8s.RecordK8S, masters []co
d.Set("created_time", cluster.CreatedTime)
d.Set("deleted_by", cluster.DeletedBy)
d.Set("deleted_time", cluster.DeletedTime)
+ d.Set("desc", cluster.Description)
d.Set("k8s_id", cluster.ID)
d.Set("k8s_ci_name", cluster.K8CIName)
d.Set("k8s_groups", flattenK8sGroups(cluster.K8SGroups, masters, workers))
diff --git a/internal/service/cloudbroker/kvmvm/data_source_compute_list_deleted.go b/internal/service/cloudbroker/kvmvm/data_source_compute_list_deleted.go
index 19ba391..12c9942 100644
--- a/internal/service/cloudbroker/kvmvm/data_source_compute_list_deleted.go
+++ b/internal/service/cloudbroker/kvmvm/data_source_compute_list_deleted.go
@@ -51,12 +51,12 @@ func dataSourceComputeListDeletedRead(ctx context.Context, d *schema.ResourceDat
result := computeList
if d.Get("ignore_k8s").(bool) {
// matches automatically generated names like "s234-g2134-c1" etc
- result = matchComputes(computeList)
+ result = matchDeletedComputes(computeList)
}
id := uuid.New()
d.SetId(id.String())
- d.Set("items", flattenComputeList(result))
+ d.Set("items", flattenDeletedComputeList(result))
d.Set("entry_count", computeList.EntryCount)
return nil
diff --git a/internal/service/cloudbroker/kvmvm/flattens.go b/internal/service/cloudbroker/kvmvm/flattens.go
index 36b0f41..519a7cd 100644
--- a/internal/service/cloudbroker/kvmvm/flattens.go
+++ b/internal/service/cloudbroker/kvmvm/flattens.go
@@ -75,7 +75,7 @@ func flattenCompute(d *schema.ResourceData, computeRec *compute.RecordCompute, p
d.Set("need_reboot", computeRec.NeedReboot)
d.Set("numa_node_id", computeRec.NumaNodeId)
d.Set("os_users", flattenOSUsers(computeRec.OSUsers))
- d.Set("pinned", computeRec.Pinned)
+ d.Set("pinned", computeRec.PinnedToStack)
d.Set("preferred_cpu", computeRec.PreferredCPU)
d.Set("reference_id", computeRec.ReferenceID)
d.Set("registered", computeRec.Registered)
@@ -95,10 +95,14 @@ func flattenCompute(d *schema.ResourceData, computeRec *compute.RecordCompute, p
d.Set("user_data", string(userData))
d.Set("user_managed", computeRec.UserManaged)
d.Set("vnc_password", computeRec.VNCPassword)
- d.Set("vgpus", computeRec.VGPUs)
+ d.Set("vgpus", flattenVGPUs(computeRec.VGPUs))
d.Set("virtual_image_id", computeRec.VirtualImageID)
d.Set("virtual_image_name", computeRec.VirtualImageName)
d.Set("pci_devices", flattenPCI(*pciList))
+ d.Set("loader_type", computeRec.LoaderType)
+ d.Set("boot_type", computeRec.BootType)
+ d.Set("hot_resize", computeRec.HotResize)
+ d.Set("network_interface_naming", computeRec.NetworkInterfaceNaming)
return nil
}
@@ -249,6 +253,7 @@ func flattenComputeDisks(disksList compute.ListDisks, disksBlocks, extraDisks []
"size_used": disk.SizeUsed,
"size_max": disk.SizeMax,
"permanently": pernamentlyValue,
+ "present_to": disk.PresentTo,
}
res = append(res, temp)
indexDataDisks++
@@ -289,73 +294,164 @@ func flattenComputeList(computes *compute.ListComputes) []map[string]interface{}
devices, _ := json.Marshal(computeItem.Devices)
userData, _ := json.Marshal(computeItem.Userdata)
temp := map[string]interface{}{
- "acl": flattenListACLInterface(computeItem.ACL),
- "account_id": computeItem.AccountID,
- "account_name": computeItem.AccountName,
- "affinity_label": computeItem.AffinityLabel,
- "affinity_rules": flattenListRules(computeItem.AffinityRules),
- "affinity_weight": computeItem.AffinityWeight,
- "anti_affinity_rules": flattenListRules(computeItem.AntiAffinityRules),
- "arch": computeItem.Arch,
- "auto_start_w_node": computeItem.AutoStart,
- "chipset": computeItem.Chipset,
- "cd_image_id": computeItem.CdImageId,
- "boot_order": computeItem.BootOrder,
- "bootdisk_size": computeItem.BootDiskSize,
- "clone_reference": computeItem.CloneReference,
- "clones": computeItem.Clones,
- "computeci_id": computeItem.ComputeCIID,
- "cpus": computeItem.CPUs,
- "created_by": computeItem.CreatedBy,
- "created_time": computeItem.CreatedTime,
- "custom_fields": string(customFields),
- "deleted_by": computeItem.DeletedBy,
- "deleted_time": computeItem.DeletedTime,
- "desc": computeItem.Description,
- "devices": string(devices),
- "disks": flattenDisks(computeItem.Disks),
- "driver": computeItem.Driver,
- "gid": computeItem.GID,
- "guid": computeItem.GUID,
- "hp_backed": computeItem.HPBacked,
- "compute_id": computeItem.ID,
- "cpu_pin": computeItem.CPUPin,
- "image_id": computeItem.ImageID,
- "interfaces": flattenInterfaces(computeItem.Interfaces),
- "lock_status": computeItem.LockStatus,
- "manager_id": computeItem.ManagerID,
- "manager_type": computeItem.ManagerType,
- "migrationjob": computeItem.MigrationJob,
- "milestones": computeItem.Milestones,
- "name": computeItem.Name,
- "need_reboot": computeItem.NeedReboot,
- "numa_affinity": computeItem.NumaAffinity,
- "numa_node_id": computeItem.NumaNodeId,
- "os_users": flattenOSUsers(computeItem.OSUsers),
- "pinned": computeItem.Pinned,
- "preferred_cpu": computeItem.PreferredCPU,
- "ram": computeItem.RAM,
- "reference_id": computeItem.ReferenceID,
- "registered": computeItem.Registered,
- "res_name": computeItem.ResName,
- "reserved_node_cpus": computeItem.ReservedNodeCpus,
- "rg_id": computeItem.RGID,
- "rg_name": computeItem.RGName,
- "snap_sets": flattenSnapSets(computeItem.SnapSets),
- "stack_id": computeItem.StackID,
- "stateless_sep_id": computeItem.StatelessSEPID,
- "stateless_sep_type": computeItem.StatelessSEPType,
- "status": computeItem.Status,
- "tags": flattenTags(computeItem.Tags),
- "tech_status": computeItem.TechStatus,
- "total_disk_size": computeItem.TotalDiskSize,
- "updated_by": computeItem.UpdatedBy,
- "updated_time": computeItem.UpdatedTime,
- "user_data": string(userData),
- "user_managed": computeItem.UserManaged,
- "vgpus": computeItem.VGPUs,
- "vins_connected": computeItem.VINSConnected,
- "virtual_image_id": computeItem.VirtualImageID,
+ "acl": flattenListACLInterface(computeItem.ACL),
+ "account_id": computeItem.AccountID,
+ "account_name": computeItem.AccountName,
+ "affinity_label": computeItem.AffinityLabel,
+ "affinity_rules": flattenListRules(computeItem.AffinityRules),
+ "affinity_weight": computeItem.AffinityWeight,
+ "anti_affinity_rules": flattenListRules(computeItem.AntiAffinityRules),
+ "arch": computeItem.Arch,
+ "auto_start_w_node": computeItem.AutoStart,
+ "chipset": computeItem.Chipset,
+ "cd_image_id": computeItem.CdImageId,
+ "boot_order": computeItem.BootOrder,
+ "bootdisk_size": computeItem.BootDiskSize,
+ "clone_reference": computeItem.CloneReference,
+ "clones": computeItem.Clones,
+ "computeci_id": computeItem.ComputeCIID,
+ "cpus": computeItem.CPUs,
+ "created_by": computeItem.CreatedBy,
+ "created_time": computeItem.CreatedTime,
+ "custom_fields": string(customFields),
+ "deleted_by": computeItem.DeletedBy,
+ "deleted_time": computeItem.DeletedTime,
+ "desc": computeItem.Description,
+ "devices": string(devices),
+ "disks": flattenDisks(computeItem.Disks),
+ "driver": computeItem.Driver,
+ "gid": computeItem.GID,
+ "guid": computeItem.GUID,
+ "hp_backed": computeItem.HPBacked,
+ "compute_id": computeItem.ID,
+ "cpu_pin": computeItem.CPUPin,
+ "image_id": computeItem.ImageID,
+ "interfaces": flattenInterfaces(computeItem.Interfaces),
+ "lock_status": computeItem.LockStatus,
+ "manager_id": computeItem.ManagerID,
+ "manager_type": computeItem.ManagerType,
+ "migrationjob": computeItem.MigrationJob,
+ "milestones": computeItem.Milestones,
+ "nid": computeItem.NID,
+ "name": computeItem.Name,
+ "need_reboot": computeItem.NeedReboot,
+ "numa_affinity": computeItem.NumaAffinity,
+ "numa_node_id": computeItem.NumaNodeId,
+ "os_users": flattenOSUsers(computeItem.OSUsers),
+ "pinned": computeItem.PinnedToStack,
+ "preferred_cpu": computeItem.PreferredCPU,
+ "ram": computeItem.RAM,
+ "reference_id": computeItem.ReferenceID,
+ "registered": computeItem.Registered,
+ "res_name": computeItem.ResName,
+ "reserved_node_cpus": computeItem.ReservedNodeCpus,
+ "rg_id": computeItem.RGID,
+ "rg_name": computeItem.RGName,
+ "snap_sets": flattenSnapSets(computeItem.SnapSets),
+ "stack_id": computeItem.StackID,
+ "stack_name": computeItem.StackName,
+ "stateless_sep_id": computeItem.StatelessSEPID,
+ "stateless_sep_type": computeItem.StatelessSEPType,
+ "status": computeItem.Status,
+ "tags": flattenTags(computeItem.Tags),
+ "tech_status": computeItem.TechStatus,
+ "total_disk_size": computeItem.TotalDiskSize,
+ "updated_by": computeItem.UpdatedBy,
+ "updated_time": computeItem.UpdatedTime,
+ "user_data": string(userData),
+ "user_managed": computeItem.UserManaged,
+ "vgpus": computeItem.VGPUs,
+ "vins_connected": computeItem.VINSConnected,
+ "virtual_image_id": computeItem.VirtualImageID,
+ "loader_type": computeItem.LoaderType,
+ "boot_type": computeItem.BootType,
+ "hot_resize": computeItem.HotResize,
+ "network_interface_naming": computeItem.NetworkInterfaceNaming,
+ }
+ res = append(res, temp)
+ }
+ return res
+}
+
+func flattenDeletedComputeList(computes *compute.ListDeletedComputes) []map[string]interface{} {
+ res := make([]map[string]interface{}, 0, len(computes.Data))
+ for _, computeItem := range computes.Data {
+ customFields, _ := json.Marshal(computeItem.CustomFields)
+ devices, _ := json.Marshal(computeItem.Devices)
+ userData, _ := json.Marshal(computeItem.Userdata)
+ temp := map[string]interface{}{
+ "acl": flattenListACLInterface(computeItem.ACL),
+ "account_id": computeItem.AccountID,
+ "account_name": computeItem.AccountName,
+ "affinity_label": computeItem.AffinityLabel,
+ "affinity_rules": flattenListRules(computeItem.AffinityRules),
+ "affinity_weight": computeItem.AffinityWeight,
+ "anti_affinity_rules": flattenListRules(computeItem.AntiAffinityRules),
+ "arch": computeItem.Arch,
+ "auto_start_w_node": computeItem.AutoStart,
+ "chipset": computeItem.Chipset,
+ "cd_image_id": computeItem.CdImageId,
+ "boot_order": computeItem.BootOrder,
+ "bootdisk_size": computeItem.BootDiskSize,
+ "clone_reference": computeItem.CloneReference,
+ "clones": computeItem.Clones,
+ "computeci_id": computeItem.ComputeCIID,
+ "cpus": computeItem.CPUs,
+ "created_by": computeItem.CreatedBy,
+ "created_time": computeItem.CreatedTime,
+ "custom_fields": string(customFields),
+ "deleted_by": computeItem.DeletedBy,
+ "deleted_time": computeItem.DeletedTime,
+ "desc": computeItem.Description,
+ "devices": string(devices),
+ "disks": flattenDisks(computeItem.Disks),
+ "driver": computeItem.Driver,
+ "gid": computeItem.GID,
+ "guid": computeItem.GUID,
+ "hp_backed": computeItem.HPBacked,
+ "compute_id": computeItem.ID,
+ "cpu_pin": computeItem.CPUPin,
+ "image_id": computeItem.ImageID,
+ "interfaces": flattenInterfaces(computeItem.Interfaces),
+ "lock_status": computeItem.LockStatus,
+ "manager_id": computeItem.ManagerID,
+ "manager_type": computeItem.ManagerType,
+ "migrationjob": computeItem.MigrationJob,
+ "milestones": computeItem.Milestones,
+ "name": computeItem.Name,
+ "need_reboot": computeItem.NeedReboot,
+ "numa_affinity": computeItem.NumaAffinity,
+ "numa_node_id": computeItem.NumaNodeId,
+ "os_users": flattenOSUsers(computeItem.OSUsers),
+ "pinned": computeItem.PinnedToStack,
+ "preferred_cpu": computeItem.PreferredCPU,
+ "ram": computeItem.RAM,
+ "reference_id": computeItem.ReferenceID,
+ "registered": computeItem.Registered,
+ "res_name": computeItem.ResName,
+ "reserved_node_cpus": computeItem.ReservedNodeCpus,
+ "rg_id": computeItem.RGID,
+ "rg_name": computeItem.RGName,
+ "snap_sets": flattenSnapSets(computeItem.SnapSets),
+ "stack_id": computeItem.StackID,
+ "stack_name": computeItem.StackName,
+ "stateless_sep_id": computeItem.StatelessSEPID,
+ "stateless_sep_type": computeItem.StatelessSEPType,
+ "status": computeItem.Status,
+ "tags": flattenTags(computeItem.Tags),
+ "tech_status": computeItem.TechStatus,
+ "total_disk_size": computeItem.TotalDiskSize,
+ "updated_by": computeItem.UpdatedBy,
+ "updated_time": computeItem.UpdatedTime,
+ "user_data": string(userData),
+ "user_managed": computeItem.UserManaged,
+ "vgpus": computeItem.VGPUs,
+ "vins_connected": computeItem.VINSConnected,
+ "virtual_image_id": computeItem.VirtualImageID,
+ "loader_type": computeItem.LoaderType,
+ "boot_type": computeItem.BootType,
+ "hot_resize": computeItem.HotResize,
+ "network_interface_naming": computeItem.NetworkInterfaceNaming,
}
res = append(res, temp)
}
@@ -431,9 +527,9 @@ func flattenDisks(disks []compute.InfoDisk) []map[string]interface{} {
res := make([]map[string]interface{}, 0)
for _, disk := range disks {
temp := map[string]interface{}{
- "bus_number": disk.BusNumber,
- "disk_id": disk.ID,
- "pci_slot": disk.PCISlot,
+ // "bus_number": disk.BusNumber,
+ "disk_id": disk.ID,
+ // "pci_slot": disk.PCISlot,
}
res = append(res, temp)
}
@@ -657,7 +753,7 @@ func flattenDataCompute(d *schema.ResourceData, compFacts *compute.RecordCompute
d.Set("numa_affinity", compFacts.NumaAffinity)
d.Set("numa_node_id", compFacts.NumaNodeId)
d.Set("os_users", flattenOSUsers(compFacts.OSUsers))
- d.Set("pinned", compFacts.Pinned)
+ d.Set("pinned", compFacts.PinnedToStack)
d.Set("preferred_cpu", compFacts.PreferredCPU)
d.Set("ram", compFacts.RAM)
d.Set("reference_id", compFacts.ReferenceID)
@@ -679,10 +775,14 @@ func flattenDataCompute(d *schema.ResourceData, compFacts *compute.RecordCompute
d.Set("user_data", string(userData))
d.Set("user_managed", compFacts.UserManaged)
d.Set("vnc_password", compFacts.VNCPassword)
- d.Set("vgpus", compFacts.VGPUs)
+ d.Set("vgpus", flattenVGPUs(compFacts.VGPUs))
d.Set("virtual_image_id", compFacts.VirtualImageID)
d.Set("virtual_image_name", compFacts.VirtualImageName)
d.Set("pci_devices", flattenPCI(*pciList))
+ d.Set("loader_type", compFacts.LoaderType)
+ d.Set("boot_type", compFacts.BootType)
+ d.Set("hot_resize", compFacts.HotResize)
+ d.Set("network_interface_naming", compFacts.NetworkInterfaceNaming)
//extra fields setting
bootDisk := findBootDisk(compFacts.Disks)
if bootDisk != nil {
@@ -771,6 +871,7 @@ func flattenDisk(diskList compute.ListDisks) []map[string]interface{} {
"role": disk.Role,
"sep_id": disk.SEPID,
"shareable": disk.Shareable,
+ "size_available": disk.SizeAvailable,
"size_max": disk.SizeMax,
"size_used": disk.SizeUsed,
"snapshots": flattendDiskSnapshotList(disk.Snapshots),
@@ -837,3 +938,34 @@ func flattendDiskSnapshotList(sl compute.ListDetailedSnapshots) []interface{} {
return res
}
+
+func flattenVGPUs(vgpus []compute.VGPUItem) []map[string]interface{} {
+ res := make([]map[string]interface{}, len(vgpus))
+
+ for i, vgpu := range vgpus {
+
+ res[i] = map[string]interface{}{
+ "id": int(vgpu.ID),
+ "gid": int(vgpu.GID),
+ "type": vgpu.Type,
+ "mode": vgpu.Mode,
+ "status": vgpu.Status,
+ "profile_id": vgpu.ProfileID,
+ "ram": int(vgpu.RAM),
+ "last_update_time": int(vgpu.LastUpdateTime),
+ "created_time": int(vgpu.CreatedTime),
+ "deleted_time": int(vgpu.DeletedTime),
+ "vmid": int(vgpu.VMID),
+ "pgpuid": int(vgpu.PGPuid),
+ "reference_id": vgpu.ReferenceID,
+ "account_id": int(vgpu.AccountID),
+ "rg_id": int(vgpu.RgID),
+ "last_claimed_by": int(vgpu.LastClaimedBy),
+ "pci_slot": int(vgpu.PCISlot),
+ "bus_number": int(vgpu.BusNumber),
+ "guid": int(vgpu.GUID),
+ }
+ }
+
+ return res
+}
diff --git a/internal/service/cloudbroker/kvmvm/old_schemas.go b/internal/service/cloudbroker/kvmvm/old_schemas.go
new file mode 100644
index 0000000..183a95c
--- /dev/null
+++ b/internal/service/cloudbroker/kvmvm/old_schemas.go
@@ -0,0 +1,1060 @@
+package kvmvm
+
+import (
+ "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
+ "github.com/hashicorp/terraform-plugin-sdk/v2/helper/validation"
+ "repository.basistech.ru/BASIS/terraform-provider-decort/internal/constants"
+ "repository.basistech.ru/BASIS/terraform-provider-decort/internal/statefuncs"
+ "repository.basistech.ru/BASIS/terraform-provider-decort/internal/validators"
+)
+
+func resourceComputeResourceV1() *schema.Resource {
+ return &schema.Resource{
+ Schema: map[string]*schema.Schema{
+ "name": {
+ Type: schema.TypeString,
+ Required: true,
+ Description: "Name of this compute. Compute names are case sensitive and must be unique in the resource group.",
+ },
+ "rg_id": {
+ Type: schema.TypeInt,
+ Required: true,
+ ValidateFunc: validation.IntAtLeast(1),
+ Description: "ID of the resource group where this compute should be deployed.",
+ },
+ "driver": {
+ Type: schema.TypeString,
+ Required: true,
+ StateFunc: statefuncs.StateFuncToUpper,
+ ValidateFunc: validation.StringInSlice([]string{"SVA_KVM_X86", "KVM_X86"}, false), // observe case while validating
+ Description: "Hardware architecture of this compute instance.",
+ },
+ "cpu": {
+ Type: schema.TypeInt,
+ Required: true,
+ ValidateFunc: validation.IntBetween(1, constants.MAX_CPUS_PER_COMPUTE),
+ Description: "Number of CPUs to allocate to this compute instance.",
+ },
+ "ram": {
+ Type: schema.TypeInt,
+ Required: true,
+ ValidateFunc: validation.All(
+ validation.IntAtLeast(constants.MIN_RAM_PER_COMPUTE),
+ validators.DivisibleBy(constants.RAM_DIVISIBILITY),
+ ),
+ Description: "Amount of RAM in MB to allocate to this compute instance.",
+ },
+ "image_id": {
+ Type: schema.TypeInt,
+ Optional: true,
+ Description: "ID of the OS image to base this compute instance on.",
+ },
+ "chipset": {
+ Type: schema.TypeString,
+ Optional: true,
+ Computed: true,
+ ValidateFunc: validation.StringInSlice([]string{"Q35", "i440fx"}, false), // observe case while validating
+ Description: "Type of the emulated system.",
+ },
+ "without_boot_disk": {
+ Type: schema.TypeBool,
+ Optional: true,
+ Default: false,
+ Description: "If True, the imageId, bootDisk, sepId, pool parameters are ignored and the compute is created without a boot disk in the stopped state.",
+ },
+ "boot_disk_size": {
+ Type: schema.TypeInt,
+ Optional: true,
+ Computed: true,
+ Description: "This compute instance boot disk size in GB. Make sure it is large enough to accomodate selected OS image.",
+ },
+ "sep_id": {
+ Type: schema.TypeInt,
+ Optional: true,
+ Computed: true,
+ Description: "ID of SEP to create bootDisk on. Uses image's sepId if not set.",
+ },
+ "pool": {
+ Type: schema.TypeString,
+ Optional: true,
+ Computed: true,
+ Description: "Pool to use if sepId is set, can be also empty if needed to be chosen by system.",
+ },
+ "cloud_init": {
+ Type: schema.TypeString,
+ Optional: true,
+ Description: "Optional cloud_init parameters. Applied when creating new compute instance only, ignored in all other cases.",
+ },
+ "description": {
+ Type: schema.TypeString,
+ Optional: true,
+ Computed: true,
+ Description: "Optional text description of this compute instance.",
+ },
+ "started": {
+ Type: schema.TypeBool,
+ Optional: true,
+ Default: true,
+ Description: "Is compute started.",
+ },
+ "alt_boot_id": {
+ Type: schema.TypeInt,
+ Optional: true,
+ Default: 0,
+ Description: "ID of CD-ROM live image to boot",
+ },
+ "stack_id": {
+ Type: schema.TypeInt,
+ Optional: true,
+ Computed: true,
+ Description: "ID of stack to start compute",
+ },
+ "is": {
+ Type: schema.TypeString,
+ Optional: true,
+ Description: "system name",
+ },
+ "ipa_type": {
+ Type: schema.TypeString,
+ Optional: true,
+ Description: "compute purpose",
+ },
+ "custom_fields": {
+ Type: schema.TypeString,
+ Optional: true,
+ Computed: true,
+ },
+ "network": {
+ Type: schema.TypeSet,
+ Optional: true,
+ MinItems: 1,
+ MaxItems: constants.MAX_NETWORKS_PER_COMPUTE,
+ Elem: &schema.Resource{
+ Schema: map[string]*schema.Schema{
+ "net_type": {
+ Type: schema.TypeString,
+ Required: true,
+ StateFunc: statefuncs.StateFuncToUpper,
+ ValidateFunc: validation.StringInSlice([]string{"EXTNET", "VINS", "VFNIC", "DPDK"}, false), // observe case while validating
+ Description: "Type of the network for this connection, either EXTNET or VINS.",
+ },
+ "net_id": {
+ Type: schema.TypeInt,
+ Required: true,
+ Description: "ID of the network for this connection.",
+ },
+ "ip_address": {
+ Type: schema.TypeString,
+ Optional: true,
+ Computed: true,
+ DiffSuppressFunc: networkSubresIPAddreDiffSupperss,
+ Description: "Optional IP address to assign to this connection. This IP should belong to the selected network and free for use.",
+ },
+ "mac": {
+ Type: schema.TypeString,
+ Computed: true,
+ Description: "MAC address associated with this connection. MAC address is assigned automatically.",
+ },
+ "weight": {
+ Type: schema.TypeInt,
+ Optional: true,
+ Computed: true,
+ Description: "weight the network if you need to sort network list, the smallest attach first. zero or null weight attach last",
+ },
+ "mtu": {
+ Type: schema.TypeInt,
+ Optional: true,
+ Computed: true,
+ //Default: 1500,
+ ValidateFunc: validation.IntBetween(1, 9216),
+ Description: "Maximum transmission unit, used only for DPDK type, must be 1-9216",
+ },
+ },
+ },
+ Description: "Optional network connection(s) for this compute. You may specify several network blocks, one for each connection.",
+ },
+
+ "libvirt_settings": {
+ Type: schema.TypeSet,
+ Optional: true,
+ Elem: &schema.Resource{
+ Schema: map[string]*schema.Schema{
+ "net_type": {
+ Type: schema.TypeString,
+ Required: true,
+ StateFunc: statefuncs.StateFuncToUpper,
+ ValidateFunc: validation.StringInSlice([]string{"VINS", "VFNIC", "DPDK"}, false), // observe case while validating
+ Description: "Type of the network",
+ },
+ "net_id": {
+ Type: schema.TypeInt,
+ Required: true,
+ Description: "ID of the network",
+ },
+ "txmode": {
+ Type: schema.TypeString,
+ Default: "",
+ Optional: true,
+ },
+ "ioeventfd": {
+ Type: schema.TypeString,
+ Default: "",
+ Optional: true,
+ },
+ "event_idx": {
+ Type: schema.TypeString,
+ Default: "",
+ Optional: true,
+ },
+ "queues": {
+ Type: schema.TypeInt,
+ Default: 0,
+ Optional: true,
+ },
+ "rx_queue_size": {
+ Type: schema.TypeInt,
+ Default: 0,
+ Optional: true,
+ },
+ "tx_queue_size": {
+ Type: schema.TypeInt,
+ Default: 0,
+ Optional: true,
+ },
+ },
+ },
+ Description: "Configure libvirt virtio interface parameters. You can only delete values locally. Data on the platform cannot be deleted.",
+ },
+
+ "affinity_label": {
+ Type: schema.TypeString,
+ Optional: true,
+ Computed: true,
+ Description: "Set affinity label for compute",
+ },
+ "affinity_rules": {
+ Type: schema.TypeList,
+ Optional: true,
+ Elem: &schema.Resource{
+ Schema: map[string]*schema.Schema{
+ "topology": {
+ Type: schema.TypeString,
+ Required: true,
+ ValidateFunc: validation.StringInSlice([]string{"node", "compute"}, false),
+ Description: "compute or node, for whom rule applies",
+ },
+ "policy": {
+ Type: schema.TypeString,
+ Required: true,
+ ValidateFunc: validation.StringInSlice([]string{"RECOMMENDED", "REQUIRED"}, false),
+ Description: "RECOMMENDED or REQUIRED, the degree of 'strictness' of this rule",
+ },
+ "mode": {
+ Type: schema.TypeString,
+ Required: true,
+ ValidateFunc: validation.StringInSlice([]string{"EQ", "NE", "ANY"}, false),
+ Description: "EQ or NE or ANY - the comparison mode is 'value', recorded by the specified 'key'",
+ },
+ "key": {
+ Type: schema.TypeString,
+ Required: true,
+ Description: "key that are taken into account when analyzing this rule will be identified",
+ },
+ "value": {
+ Type: schema.TypeString,
+ Optional: true,
+ Description: "value that must match the key to be taken into account when analyzing this rule",
+ },
+ },
+ },
+ },
+ "delete_async_mode": {
+ Type: schema.TypeBool,
+ Computed: true,
+ Description: "async mode",
+ },
+ "anti_affinity_rules": {
+ Type: schema.TypeList,
+ Optional: true,
+ Elem: &schema.Resource{
+ Schema: map[string]*schema.Schema{
+ "topology": {
+ Type: schema.TypeString,
+ Required: true,
+ ValidateFunc: validation.StringInSlice([]string{"node", "compute"}, false),
+ Description: "compute or node, for whom rule applies",
+ },
+ "policy": {
+ Type: schema.TypeString,
+ Required: true,
+ ValidateFunc: validation.StringInSlice([]string{"RECOMMENDED", "REQUIRED"}, false),
+ Description: "RECOMMENDED or REQUIRED, the degree of 'strictness' of this rule",
+ },
+ "mode": {
+ Type: schema.TypeString,
+ Required: true,
+ ValidateFunc: validation.StringInSlice([]string{"EQ", "NE", "ANY"}, false),
+ Description: "EQ or NE or ANY - the comparison mode is 'value', recorded by the specified 'key'",
+ },
+ "key": {
+ Type: schema.TypeString,
+ Required: true,
+ Description: "key that are taken into account when analyzing this rule will be identified",
+ },
+ "value": {
+ Type: schema.TypeString,
+ Optional: true,
+ Description: "value that must match the key to be taken into account when analyzing this rule",
+ },
+ },
+ },
+ },
+ "disks": {
+ Type: schema.TypeList,
+ Optional: true,
+ Elem: &schema.Resource{
+ Schema: map[string]*schema.Schema{
+ "disk_name": {
+ Type: schema.TypeString,
+ Required: true,
+ Description: "Name for disk",
+ },
+ "size": {
+ Type: schema.TypeInt,
+ Required: true,
+ Description: "Disk size in GiB",
+ },
+ "sep_id": {
+ Type: schema.TypeInt,
+ Computed: true,
+ Optional: true,
+ Description: "Storage endpoint provider ID; by default the same with boot disk",
+ },
+ "disk_type": {
+ Type: schema.TypeString,
+ Computed: true,
+ Optional: true,
+ ValidateFunc: validation.StringInSlice([]string{"B", "D"}, false),
+ Description: "The type of disk in terms of its role in compute: 'B=Boot, D=Data'",
+ },
+ "pool": {
+ Type: schema.TypeString,
+ Computed: true,
+ Optional: true,
+ Description: "Pool name; by default will be chosen automatically",
+ },
+ "node_ids": {
+ Type: schema.TypeSet,
+ Optional: true,
+ Elem: &schema.Schema{
+ Type: schema.TypeInt,
+ },
+ },
+ "desc": {
+ Type: schema.TypeString,
+ Computed: true,
+ Optional: true,
+ Description: "Optional description",
+ },
+ "image_id": {
+ Type: schema.TypeInt,
+ Computed: true,
+ Optional: true,
+ Description: "Specify image id for create disk from template",
+ },
+ "permanently": {
+ Type: schema.TypeBool,
+ Optional: true,
+ Description: "Disk deletion status",
+ },
+ "disk_id": {
+ Type: schema.TypeInt,
+ Computed: true,
+ Description: "Disk ID",
+ },
+ "present_to": {
+ Type: schema.TypeMap,
+ Computed: true,
+ Elem: &schema.Schema{
+ Type: schema.TypeInt,
+ },
+ },
+ "shareable": {
+ Type: schema.TypeBool,
+ Computed: true,
+ },
+ "size_max": {
+ Type: schema.TypeInt,
+ Computed: true,
+ },
+ "size_used": {
+ Type: schema.TypeInt,
+ Computed: true,
+ },
+ },
+ },
+ },
+ "extra_disks": {
+ Type: schema.TypeSet,
+ Optional: true,
+ MaxItems: constants.MAX_EXTRA_DISKS_PER_COMPUTE,
+ Elem: &schema.Schema{
+ Type: schema.TypeInt,
+ },
+ Description: "Optional list of IDs of extra disks to attach to this compute. You may specify several extra disks.",
+ },
+ "tags": {
+ Type: schema.TypeSet,
+ Optional: true,
+ Elem: &schema.Resource{
+ Schema: map[string]*schema.Schema{
+ "key": {
+ Type: schema.TypeString,
+ Required: true,
+ },
+ "value": {
+ Type: schema.TypeString,
+ Required: true,
+ },
+ },
+ },
+ },
+ "port_forwarding": {
+ Type: schema.TypeSet,
+ Optional: true,
+ Elem: &schema.Resource{
+ Schema: map[string]*schema.Schema{
+ "public_port_start": {
+ Type: schema.TypeInt,
+ Required: true,
+ },
+ "public_port_end": {
+ Type: schema.TypeInt,
+ Optional: true,
+ Default: -1,
+ },
+ "local_port": {
+ Type: schema.TypeInt,
+ Optional: true,
+ },
+ "proto": {
+ Type: schema.TypeString,
+ Required: true,
+ ValidateFunc: validation.StringInSlice([]string{"tcp", "udp"}, false),
+ },
+ "rule_id": {
+ Type: schema.TypeInt,
+ Computed: true,
+ },
+ },
+ },
+ },
+ "user_access": {
+ Type: schema.TypeSet,
+ Optional: true,
+ Elem: &schema.Resource{
+ Schema: map[string]*schema.Schema{
+ "username": {
+ Type: schema.TypeString,
+ Required: true,
+ },
+ "access_type": {
+ Type: schema.TypeString,
+ Required: true,
+ },
+ },
+ },
+ },
+ "snapshot": {
+ Type: schema.TypeSet,
+ Optional: true,
+ Elem: &schema.Resource{
+ Schema: map[string]*schema.Schema{
+ "label": {
+ Type: schema.TypeString,
+ Required: true,
+ },
+ },
+ },
+ },
+ "rollback": {
+ Type: schema.TypeSet,
+ MaxItems: 1,
+ Optional: true,
+ Elem: &schema.Resource{
+ Schema: map[string]*schema.Schema{
+ "label": {
+ Type: schema.TypeString,
+ Required: true,
+ },
+ },
+ },
+ },
+ "cd": {
+ Type: schema.TypeSet,
+ Optional: true,
+ MaxItems: 1,
+ Elem: &schema.Resource{
+ Schema: map[string]*schema.Schema{
+ "cdrom_id": {
+ Type: schema.TypeInt,
+ Required: true,
+ },
+ },
+ },
+ },
+ "pin_to_stack": {
+ Type: schema.TypeBool,
+ Optional: true,
+ Default: false,
+ },
+ "auto_start_w_node": {
+ Type: schema.TypeBool,
+ Optional: true,
+ Computed: true,
+ },
+ "force_pin": {
+ Type: schema.TypeBool,
+ Optional: true,
+ Default: false,
+ },
+ "enabled": {
+ Type: schema.TypeBool,
+ Optional: true,
+ Computed: true,
+ Description: "If true - enable compute, else - disable",
+ },
+ "pause": {
+ Type: schema.TypeBool,
+ Optional: true,
+ Default: false,
+ },
+ "reset": {
+ Type: schema.TypeBool,
+ Optional: true,
+ Default: false,
+ },
+ "restore": {
+ Type: schema.TypeBool,
+ Optional: true,
+ Default: false,
+ },
+ "force_stop": {
+ Type: schema.TypeBool,
+ Optional: true,
+ Default: false,
+ Description: "Flag for redeploy compute",
+ },
+ "force_resize": {
+ Type: schema.TypeBool,
+ Optional: true,
+ Default: false,
+ Description: "Flag for resize compute",
+ },
+ "detach_disks": {
+ Type: schema.TypeBool,
+ Optional: true,
+ Default: true,
+ },
+ "permanently": {
+ Type: schema.TypeBool,
+ Optional: true,
+ Default: true,
+ },
+ "numa_affinity": {
+ Type: schema.TypeString,
+ Optional: true,
+ Default: "none",
+ ValidateFunc: validation.StringInSlice([]string{"none", "strict", "loose"}, false), // observe case while validating
+ Description: "Rule for VM placement with NUMA affinity.",
+ },
+ "cpu_pin": {
+ Type: schema.TypeBool,
+ Optional: true,
+ Default: false,
+ Description: "Run VM on dedicated CPUs. To use this feature, the system must be pre-configured by allocating CPUs on the physical node.",
+ },
+ "hp_backed": {
+ Type: schema.TypeBool,
+ Optional: true,
+ Default: false,
+ Description: "Use Huge Pages to allocate RAM of the virtual machine. The system must be pre-configured by allocating Huge Pages on the physical node.",
+ },
+ "preferred_cpu": {
+ Type: schema.TypeList,
+ Optional: true,
+ Computed: true,
+ Elem: &schema.Schema{
+ Type: schema.TypeInt,
+ },
+ Description: "Recommended isolated CPUs. Field is ignored if compute.cpupin=False or compute.pinned=False",
+ },
+ "pci_devices": {
+ Type: schema.TypeSet,
+ Optional: true,
+ Computed: true,
+ Elem: &schema.Schema{
+ Type: schema.TypeInt,
+ },
+ Description: "ID of the connected pci devices",
+ },
+ // Computed properties
+ "account_id": {
+ Type: schema.TypeInt,
+ Computed: true,
+ Description: "ID of the account this compute instance belongs to.",
+ },
+ "account_name": {
+ Type: schema.TypeString,
+ Computed: true,
+ Description: "Name of the account this compute instance belongs to.",
+ },
+ "acl": {
+ Type: schema.TypeList,
+ Computed: true,
+ Elem: &schema.Resource{
+ Schema: map[string]*schema.Schema{
+ "explicit": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
+ "guid": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
+ "right": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
+ "status": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
+ "type": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
+ "user_group_id": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
+ },
+ },
+ },
+ "affinity_weight": {
+ Type: schema.TypeInt,
+ Computed: true,
+ },
+ "arch": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
+ "boot_order": {
+ Type: schema.TypeList,
+ Computed: true,
+ Elem: &schema.Schema{
+ Type: schema.TypeString,
+ },
+ },
+ "boot_disk_id": {
+ Type: schema.TypeInt,
+ Computed: true,
+ Description: "This compute instance boot disk ID.",
+ },
+ "cd_image_id": {
+ Type: schema.TypeInt,
+ Computed: true,
+ },
+ "clone_reference": {
+ Type: schema.TypeInt,
+ Computed: true,
+ },
+ "clones": {
+ Type: schema.TypeList,
+ Computed: true,
+ Elem: &schema.Schema{
+ Type: schema.TypeInt,
+ },
+ },
+ "computeci_id": {
+ Type: schema.TypeInt,
+ Computed: true,
+ },
+ "created_by": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
+ "created_time": {
+ Type: schema.TypeInt,
+ Computed: true,
+ },
+ "deleted_by": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
+ "deleted_time": {
+ Type: schema.TypeInt,
+ Computed: true,
+ },
+ "devices": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
+ "gid": {
+ Type: schema.TypeInt,
+ Computed: true,
+ },
+ "guid": {
+ Type: schema.TypeInt,
+ Computed: true,
+ },
+ "compute_id": {
+ Type: schema.TypeInt,
+ Computed: true,
+ },
+ "interfaces": {
+ Type: schema.TypeList,
+ Computed: true,
+ Elem: &schema.Resource{
+ Schema: map[string]*schema.Schema{
+ "bus_number": {
+ Type: schema.TypeInt,
+ Computed: true,
+ },
+ "conn_id": {
+ Type: schema.TypeInt,
+ Computed: true,
+ },
+ "conn_type": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
+ "def_gw": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
+ "enabled": {
+ Type: schema.TypeBool,
+ Computed: true,
+ },
+ "flip_group_id": {
+ Type: schema.TypeInt,
+ Computed: true,
+ },
+ "guid": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
+ "ip_address": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
+ "listen_ssh": {
+ Type: schema.TypeBool,
+ Computed: true,
+ },
+ "mac": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
+ "mtu": {
+ Type: schema.TypeInt,
+ Computed: true,
+ },
+ "name": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
+ "net_id": {
+ Type: schema.TypeInt,
+ Computed: true,
+ },
+ "netmask": {
+ Type: schema.TypeInt,
+ Computed: true,
+ },
+ "net_type": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
+ "node_id": {
+ Type: schema.TypeInt,
+ Computed: true,
+ },
+ "pci_slot": {
+ Type: schema.TypeInt,
+ Computed: true,
+ },
+ "qos": {
+ Type: schema.TypeList,
+ Computed: true,
+ Elem: &schema.Resource{
+ Schema: map[string]*schema.Schema{
+ "e_rate": {
+ Type: schema.TypeInt,
+ Computed: true,
+ },
+ "guid": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
+ "in_brust": {
+ Type: schema.TypeInt,
+ Computed: true,
+ },
+ "in_rate": {
+ Type: schema.TypeInt,
+ Computed: true,
+ },
+ },
+ },
+ },
+ "libvirt_settings": {
+ Type: schema.TypeList,
+ Computed: true,
+ Elem: &schema.Resource{
+ Schema: map[string]*schema.Schema{
+ "guid": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
+ "txmode": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
+ "ioeventfd": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
+ "event_idx": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
+ "queues": {
+ Type: schema.TypeInt,
+ Computed: true,
+ },
+ "rx_queue_size": {
+ Type: schema.TypeInt,
+ Computed: true,
+ },
+ "tx_queue_size": {
+ Type: schema.TypeInt,
+ Computed: true,
+ },
+ },
+ },
+ },
+ "target": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
+ "type": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
+ "vnfs": {
+ Type: schema.TypeList,
+ Computed: true,
+ Elem: &schema.Schema{
+ Type: schema.TypeInt,
+ },
+ },
+ },
+ },
+ },
+ "image_name": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
+ "lock_status": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
+ "manager_id": {
+ Type: schema.TypeInt,
+ Computed: true,
+ },
+ "manager_type": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
+ "migrationjob": {
+ Type: schema.TypeInt,
+ Computed: true,
+ },
+ "milestones": {
+ Type: schema.TypeInt,
+ Computed: true,
+ },
+ "natable_vins_id": {
+ Type: schema.TypeInt,
+ Computed: true,
+ },
+ "natable_vins_ip": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
+ "natable_vins_name": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
+ "natable_vins_network": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
+ "natable_vins_network_name": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
+ "need_reboot": {
+ Type: schema.TypeBool,
+ Computed: true,
+ },
+ "numa_node_id": {
+ Type: schema.TypeInt,
+ Computed: true,
+ },
+ "os_users": {
+ Type: schema.TypeList,
+ Computed: true,
+ Elem: &schema.Resource{
+ Schema: map[string]*schema.Schema{
+ "guid": {
+ Type: schema.TypeString,
+ Computed: true,
+ Description: "GUID of this guest OS user.",
+ },
+
+ "login": {
+ Type: schema.TypeString,
+ Computed: true,
+ Description: "Login name of this guest OS user.",
+ },
+
+ "password": {
+ Type: schema.TypeString,
+ Computed: true,
+ //Sensitive: true,
+ Description: "Password of this guest OS user.",
+ },
+
+ "public_key": {
+ Type: schema.TypeString,
+ Computed: true,
+ Description: "SSH public key of this guest OS user.",
+ },
+ },
+ },
+ Description: "Guest OS users provisioned on this compute instance.",
+ },
+ "pinned": {
+ Type: schema.TypeInt,
+ Computed: true,
+ },
+ "reference_id": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
+ "registered": {
+ Type: schema.TypeBool,
+ Computed: true,
+ },
+ "res_name": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
+ "reserved_node_cpus": {
+ Type: schema.TypeList,
+ Computed: true,
+ Elem: &schema.Schema{
+ Type: schema.TypeInt,
+ },
+ },
+ "rg_name": {
+ Type: schema.TypeString,
+ Computed: true,
+ Description: "Name of the resource group where this compute instance is located.",
+ },
+ "snap_sets": {
+ Type: schema.TypeList,
+ Computed: true,
+ Elem: &schema.Resource{
+ Schema: map[string]*schema.Schema{
+ "disks": {
+ Type: schema.TypeList,
+ Computed: true,
+ Elem: &schema.Schema{
+ Type: schema.TypeInt,
+ },
+ },
+ "guid": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
+ "label": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
+ "timestamp": {
+ Type: schema.TypeInt,
+ Computed: true,
+ },
+ },
+ },
+ },
+ "stack_name": {
+ Type: schema.TypeString,
+ Computed: true,
+ Description: "Name of the stack, on which VM started",
+ },
+ "stateless_sep_id": {
+ Type: schema.TypeInt,
+ Computed: true,
+ },
+ "stateless_sep_type": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
+ "status": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
+ "tech_status": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
+ "updated_by": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
+ "updated_time": {
+ Type: schema.TypeInt,
+ Computed: true,
+ },
+ "user_managed": {
+ Type: schema.TypeBool,
+ Computed: true,
+ },
+ "vnc_password": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
+ "vgpus": {
+ Type: schema.TypeList,
+ Computed: true,
+ Elem: &schema.Schema{
+ Type: schema.TypeInt,
+ },
+ },
+ "virtual_image_id": {
+ Type: schema.TypeInt,
+ Computed: true,
+ },
+ "virtual_image_name": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
+ },
+ }
+}
diff --git a/internal/service/cloudbroker/kvmvm/resource_compute.go b/internal/service/cloudbroker/kvmvm/resource_compute.go
index cc212d8..9f163d9 100644
--- a/internal/service/cloudbroker/kvmvm/resource_compute.go
+++ b/internal/service/cloudbroker/kvmvm/resource_compute.go
@@ -121,6 +121,11 @@ func resourceComputeCreate(ctx context.Context, d *schema.ResourceData, m interf
reqInterface.IPAddr = ipaddr.(string)
}
+ macaddr, macSet := netInterfaceVal["mac"]
+ if macSet {
+ reqInterface.MAC = macaddr.(string)
+ }
+
interfacesX86 = append(interfacesX86, reqInterface)
}
createReqX86.Interfaces = interfacesX86
@@ -242,6 +247,38 @@ func resourceComputeCreate(ctx context.Context, d *schema.ResourceData, m interf
log.Debugf("resourceComputeCreate: new simple Compute ID %d, name %s created", computeId, d.Get("name").(string))
+ updateReq := compute.UpdateRequest{}
+
+ loaderType, loaderTypeOk := d.GetOk("loader_type")
+ bootType, bootTypeOk := d.GetOk("boot_type")
+ hotResize, hotResizeOk := d.GetOk("hot_resize")
+ networkInterfaceNaming, networkInterfaceNamingOk := d.GetOk("network_interface_naming")
+
+ if loaderTypeOk {
+ updateReq.LoaderType = loaderType.(string)
+ }
+
+ if bootTypeOk {
+ updateReq.BootType = bootType.(string)
+ }
+
+ if hotResizeOk {
+ updateReq.HotResize = hotResize.(bool)
+ }
+
+ if networkInterfaceNamingOk {
+ updateReq.NetworkInterfaceNaming = networkInterfaceNaming.(string)
+ }
+
+ if loaderTypeOk || bootTypeOk || hotResizeOk || networkInterfaceNamingOk {
+ log.Debugf("resourceComputeCreate: change loaderType or bootType or hotResize or networkInterfaceNaming on ComputeID: %d", computeId)
+ updateReq.ComputeID = computeId
+ _, err := c.CloudBroker().Compute().Update(ctx, updateReq)
+ if err != nil {
+ warnings.Add(err)
+ }
+ }
+
if ars, ok := d.GetOk("pci_devices"); ok {
log.Debugf("resourceComputeCreate: add pci devices on ComputeID: %d", computeId)
addedPciDevices := ars.(*schema.Set).List()
@@ -352,9 +389,6 @@ func resourceComputeCreate(ctx context.Context, d *schema.ResourceData, m interf
}
} else if ok && !start.(bool) {
req := compute.StopRequest{ComputeID: computeId}
- if depresent, ok := d.Get("depresent").(bool); ok {
- req.Depresent = depresent
- }
log.Debugf("resourceComputeCreate: stoping Compute ID %d after completing its resource configuration", computeId)
if _, err := c.CloudBroker().Compute().Stop(ctx, req); err != nil {
warnings.Add(err)
@@ -713,7 +747,18 @@ func resourceComputeUpdate(ctx context.Context, d *schema.ResourceData, m interf
}
}
- if d.HasChanges("description", "name", "numa_affinity", "cpu_pin", "hp_backed", "chipset", "auto_start_w_node", "preferred_cpu") {
+ if d.HasChanges("description",
+ "name",
+ "numa_affinity",
+ "cpu_pin",
+ "hp_backed",
+ "chipset",
+ "auto_start_w_node",
+ "preferred_cpu",
+ "loader_type",
+ "boot_type",
+ "hot_resize",
+ "network_interface_naming") {
if err := utilityComputeUpdate(ctx, d, m); err != nil {
return diag.FromErr(err)
}
@@ -874,7 +919,7 @@ func resourceComputeDelete(ctx context.Context, d *schema.ResourceData, m interf
func ResourceCompute() *schema.Resource {
return &schema.Resource{
- SchemaVersion: 1,
+ SchemaVersion: 2,
CustomizeDiff: func(ctx context.Context, diff *schema.ResourceDiff, i interface{}) error {
if diff.HasChanges() || diff.HasChanges("chipset", "pin_to_stack", "auto_start_w_node", "libvirt_settings", "network", "affinity_rules", "anti_affinity_rules",
@@ -911,5 +956,12 @@ func ResourceCompute() *schema.Resource {
},
Schema: resourceComputeSchemaMake(),
+ StateUpgraders: []schema.StateUpgrader{
+ {
+ Type: resourceComputeResourceV1().CoreConfigSchema().ImpliedType(),
+ Upgrade: resourceCompueteStateUpgradeV1,
+ Version: 1,
+ },
+ },
}
}
diff --git a/internal/service/cloudbroker/kvmvm/schema.go b/internal/service/cloudbroker/kvmvm/schema.go
index a21fcc8..22ec4a0 100644
--- a/internal/service/cloudbroker/kvmvm/schema.go
+++ b/internal/service/cloudbroker/kvmvm/schema.go
@@ -391,7 +391,7 @@ func dataSourceComputeSchemaMake() map[string]*schema.Schema {
Computed: true,
},
"present_to": {
- Type: schema.TypeList,
+ Type: schema.TypeMap,
Computed: true,
Elem: &schema.Schema{
Type: schema.TypeInt,
@@ -466,6 +466,10 @@ func dataSourceComputeSchemaMake() map[string]*schema.Schema {
Type: schema.TypeBool,
Computed: true,
},
+ "size_available": {
+ Type: schema.TypeFloat,
+ Computed: true,
+ },
"size_max": {
Type: schema.TypeInt,
Computed: true,
@@ -789,7 +793,7 @@ func dataSourceComputeSchemaMake() map[string]*schema.Schema {
},
},
"pinned": {
- Type: schema.TypeBool,
+ Type: schema.TypeInt,
Computed: true,
},
"preferred_cpu": {
@@ -918,10 +922,88 @@ func dataSourceComputeSchemaMake() map[string]*schema.Schema {
Computed: true,
},
"vgpus": {
- Type: schema.TypeList,
- Computed: true,
- Elem: &schema.Schema{
- Type: schema.TypeInt,
+ Type: schema.TypeList,
+ Computed: true,
+ Description: "List of virtual GPUs",
+ Elem: &schema.Resource{
+ Schema: map[string]*schema.Schema{
+ "id": {
+ Type: schema.TypeInt,
+ Computed: true,
+ },
+ "gid": {
+ Type: schema.TypeInt,
+ Computed: true,
+ },
+ "type": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
+ "mode": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
+ "status": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
+ "profile_id": {
+ Type: schema.TypeInt,
+ Computed: true,
+ },
+ "ram": {
+ Type: schema.TypeInt,
+ Computed: true,
+ },
+ "last_update_time": {
+ Type: schema.TypeInt,
+ Computed: true,
+ },
+ "created_time": {
+ Type: schema.TypeInt,
+ Computed: true,
+ },
+ "deleted_time": {
+ Type: schema.TypeInt,
+ Computed: true,
+ },
+ "vmid": {
+ Type: schema.TypeInt,
+ Computed: true,
+ },
+ "pgpuid": {
+ Type: schema.TypeInt,
+ Computed: true,
+ },
+ "reference_id": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
+ "account_id": {
+ Type: schema.TypeInt,
+ Computed: true,
+ },
+ "rg_id": {
+ Type: schema.TypeInt,
+ Computed: true,
+ },
+ "last_claimed_by": {
+ Type: schema.TypeInt,
+ Computed: true,
+ },
+ "pci_slot": {
+ Type: schema.TypeInt,
+ Computed: true,
+ },
+ "bus_number": {
+ Type: schema.TypeInt,
+ Computed: true,
+ },
+ "guid": {
+ Type: schema.TypeInt,
+ Computed: true,
+ },
+ },
},
},
"virtual_image_id": {
@@ -949,6 +1031,22 @@ func dataSourceComputeSchemaMake() map[string]*schema.Schema {
Type: schema.TypeString,
Computed: true,
},
+ "loader_type": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
+ "boot_type": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
+ "hot_resize": {
+ Type: schema.TypeBool,
+ Computed: true,
+ },
+ "network_interface_naming": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
}
return res
}
@@ -985,6 +1083,11 @@ func dataSourceComputeListSchemaMake() map[string]*schema.Schema {
Optional: true,
Description: "Find by tech status",
},
+ "stack_name": {
+ Type: schema.TypeString,
+ Optional: true,
+ Description: "Find by node name.",
+ },
"status": {
Type: schema.TypeString,
Optional: true,
@@ -1462,6 +1565,10 @@ func dataSourceComputeListSchemaMake() map[string]*schema.Schema {
Type: schema.TypeBool,
Computed: true,
},
+ "nid": {
+ Type: schema.TypeInt,
+ Computed: true,
+ },
"numa_affinity": {
Type: schema.TypeString,
Computed: true,
@@ -1495,7 +1602,7 @@ func dataSourceComputeListSchemaMake() map[string]*schema.Schema {
},
},
"pinned": {
- Type: schema.TypeBool,
+ Type: schema.TypeInt,
Computed: true,
},
"preferred_cpu": {
@@ -1567,6 +1674,11 @@ func dataSourceComputeListSchemaMake() map[string]*schema.Schema {
Type: schema.TypeInt,
Computed: true,
},
+ "stack_name": {
+ Type: schema.TypeString,
+ Computed: true,
+ Description: "Find by node name.",
+ },
"stateless_sep_id": {
Type: schema.TypeInt,
Computed: true,
@@ -1634,6 +1746,22 @@ func dataSourceComputeListSchemaMake() map[string]*schema.Schema {
Type: schema.TypeInt,
Computed: true,
},
+ "loader_type": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
+ "boot_type": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
+ "hot_resize": {
+ Type: schema.TypeBool,
+ Computed: true,
+ },
+ "network_interface_naming": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
},
},
},
@@ -1848,6 +1976,10 @@ func dataSourceComputeListDeletedSchemaMake() map[string]*schema.Schema {
Type: schema.TypeInt,
Computed: true,
},
+ "chipset": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
"cd_image_id": {
Type: schema.TypeInt,
Computed: true,
@@ -1948,6 +2080,10 @@ func dataSourceComputeListDeletedSchemaMake() map[string]*schema.Schema {
Computed: true,
Elem: &schema.Resource{
Schema: map[string]*schema.Schema{
+ "bus_number": {
+ Type: schema.TypeInt,
+ Computed: true,
+ },
"conn_id": {
Type: schema.TypeInt,
Computed: true,
@@ -1984,6 +2120,10 @@ func dataSourceComputeListDeletedSchemaMake() map[string]*schema.Schema {
Type: schema.TypeString,
Computed: true,
},
+ "mtu": {
+ Type: schema.TypeInt,
+ Computed: true,
+ },
"name": {
Type: schema.TypeString,
Computed: true,
@@ -2032,6 +2172,42 @@ func dataSourceComputeListDeletedSchemaMake() map[string]*schema.Schema {
},
},
},
+ "libvirt_settings": {
+ Type: schema.TypeList,
+ Computed: true,
+ Elem: &schema.Resource{
+ Schema: map[string]*schema.Schema{
+ "guid": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
+ "txmode": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
+ "ioeventfd": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
+ "event_idx": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
+ "queues": {
+ Type: schema.TypeInt,
+ Computed: true,
+ },
+ "rx_queue_size": {
+ Type: schema.TypeInt,
+ Computed: true,
+ },
+ "tx_queue_size": {
+ Type: schema.TypeInt,
+ Computed: true,
+ },
+ },
+ },
+ },
"target": {
Type: schema.TypeString,
Computed: true,
@@ -2111,10 +2287,6 @@ func dataSourceComputeListDeletedSchemaMake() map[string]*schema.Schema {
},
},
"pinned": {
- Type: schema.TypeBool,
- Computed: true,
- },
- "ram": {
Type: schema.TypeInt,
Computed: true,
},
@@ -2125,6 +2297,10 @@ func dataSourceComputeListDeletedSchemaMake() map[string]*schema.Schema {
Type: schema.TypeInt,
},
},
+ "ram": {
+ Type: schema.TypeInt,
+ Computed: true,
+ },
"reference_id": {
Type: schema.TypeString,
Computed: true,
@@ -2183,6 +2359,11 @@ func dataSourceComputeListDeletedSchemaMake() map[string]*schema.Schema {
Type: schema.TypeInt,
Computed: true,
},
+ "stack_name": {
+ Type: schema.TypeString,
+ Computed: true,
+ Description: "Find by node name.",
+ },
"stateless_sep_id": {
Type: schema.TypeInt,
Computed: true,
@@ -2250,6 +2431,22 @@ func dataSourceComputeListDeletedSchemaMake() map[string]*schema.Schema {
Type: schema.TypeInt,
Computed: true,
},
+ "loader_type": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
+ "boot_type": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
+ "hot_resize": {
+ Type: schema.TypeBool,
+ Computed: true,
+ },
+ "network_interface_naming": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
},
},
},
@@ -3001,12 +3198,6 @@ func resourceComputeSchemaMake() map[string]*schema.Schema {
Computed: true,
Description: "Optional text description of this compute instance.",
},
- "depresent": {
- Type: schema.TypeBool,
- Optional: true,
- Default: true,
- Description: "whether to depresent compute disks from node or not",
- },
"started": {
Type: schema.TypeBool,
Optional: true,
@@ -3044,7 +3235,6 @@ func resourceComputeSchemaMake() map[string]*schema.Schema {
Type: schema.TypeSet,
Optional: true,
MinItems: 1,
- MaxItems: constants.MAX_NETWORKS_PER_COMPUTE,
Elem: &schema.Resource{
Schema: map[string]*schema.Schema{
"net_type": {
@@ -3067,9 +3257,11 @@ func resourceComputeSchemaMake() map[string]*schema.Schema {
Description: "Optional IP address to assign to this connection. This IP should belong to the selected network and free for use.",
},
"mac": {
- Type: schema.TypeString,
- Computed: true,
- Description: "MAC address associated with this connection. MAC address is assigned automatically.",
+ Type: schema.TypeString,
+ Optional: true,
+ Computed: true,
+ DiffSuppressFunc: networkSubresIPAddreDiffSupperss,
+ Description: "MAC address associated with this connection. MAC address is assigned automatically.",
},
"weight": {
Type: schema.TypeInt,
@@ -3288,6 +3480,13 @@ func resourceComputeSchemaMake() map[string]*schema.Schema {
Computed: true,
Description: "Disk ID",
},
+ "present_to": {
+ Type: schema.TypeMap,
+ Computed: true,
+ Elem: &schema.Schema{
+ Type: schema.TypeInt,
+ },
+ },
"shareable": {
Type: schema.TypeBool,
Computed: true,
@@ -3306,7 +3505,6 @@ func resourceComputeSchemaMake() map[string]*schema.Schema {
"extra_disks": {
Type: schema.TypeSet,
Optional: true,
- MaxItems: constants.MAX_EXTRA_DISKS_PER_COMPUTE,
Elem: &schema.Schema{
Type: schema.TypeInt,
},
@@ -3507,6 +3705,33 @@ func resourceComputeSchemaMake() map[string]*schema.Schema {
},
Description: "ID of the connected pci devices",
},
+ "loader_type": {
+ Type: schema.TypeString,
+ Optional: true,
+ Computed: true,
+ ValidateFunc: validation.StringInSlice([]string{"linux", "windows", "unknown"}, false),
+ Description: "Type of image vm.",
+ },
+ "boot_type": {
+ Type: schema.TypeString,
+ Optional: true,
+ Computed: true,
+ ValidateFunc: validation.StringInSlice([]string{"bios", "uefi"}, false),
+ Description: "Type of image upload.",
+ },
+ "hot_resize": {
+ Type: schema.TypeBool,
+ Optional: true,
+ Computed: true,
+ Description: "Type of image vm.",
+ },
+ "network_interface_naming": {
+ Type: schema.TypeString,
+ Optional: true,
+ Computed: true,
+ ValidateFunc: validation.StringInSlice([]string{"eth", "ens"}, false),
+ Description: "Name of netfowrk interface.",
+ },
// Computed properties
"account_id": {
Type: schema.TypeInt,
@@ -3858,7 +4083,7 @@ func resourceComputeSchemaMake() map[string]*schema.Schema {
Description: "Guest OS users provisioned on this compute instance.",
},
"pinned": {
- Type: schema.TypeBool,
+ Type: schema.TypeInt,
Computed: true,
},
"reference_id": {
@@ -3950,10 +4175,88 @@ func resourceComputeSchemaMake() map[string]*schema.Schema {
Computed: true,
},
"vgpus": {
- Type: schema.TypeList,
- Computed: true,
- Elem: &schema.Schema{
- Type: schema.TypeInt,
+ Type: schema.TypeList,
+ Computed: true,
+ Description: "List of virtual GPUs",
+ Elem: &schema.Resource{
+ Schema: map[string]*schema.Schema{
+ "id": {
+ Type: schema.TypeInt,
+ Computed: true,
+ },
+ "gid": {
+ Type: schema.TypeInt,
+ Computed: true,
+ },
+ "type": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
+ "mode": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
+ "status": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
+ "profile_id": {
+ Type: schema.TypeInt,
+ Computed: true,
+ },
+ "ram": {
+ Type: schema.TypeInt,
+ Computed: true,
+ },
+ "last_update_time": {
+ Type: schema.TypeInt,
+ Computed: true,
+ },
+ "created_time": {
+ Type: schema.TypeInt,
+ Computed: true,
+ },
+ "deleted_time": {
+ Type: schema.TypeInt,
+ Computed: true,
+ },
+ "vmid": {
+ Type: schema.TypeInt,
+ Computed: true,
+ },
+ "pgpuid": {
+ Type: schema.TypeInt,
+ Computed: true,
+ },
+ "reference_id": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
+ "account_id": {
+ Type: schema.TypeInt,
+ Computed: true,
+ },
+ "rg_id": {
+ Type: schema.TypeInt,
+ Computed: true,
+ },
+ "last_claimed_by": {
+ Type: schema.TypeInt,
+ Computed: true,
+ },
+ "pci_slot": {
+ Type: schema.TypeInt,
+ Computed: true,
+ },
+ "bus_number": {
+ Type: schema.TypeInt,
+ Computed: true,
+ },
+ "guid": {
+ Type: schema.TypeInt,
+ Computed: true,
+ },
+ },
},
},
"virtual_image_id": {
diff --git a/internal/service/cloudbroker/kvmvm/state_upgraders.go b/internal/service/cloudbroker/kvmvm/state_upgraders.go
new file mode 100644
index 0000000..30a6a09
--- /dev/null
+++ b/internal/service/cloudbroker/kvmvm/state_upgraders.go
@@ -0,0 +1,20 @@
+package kvmvm
+
+import (
+ "context"
+
+ log "github.com/sirupsen/logrus"
+)
+
+func resourceCompueteStateUpgradeV1(ctx context.Context, rawState map[string]interface{}, meta any) (map[string]interface{}, error) {
+ log.Debug("resourceCompueteStateUpgradeV1: upgrading state")
+ if oldVal, ok := rawState["pinned"].(bool); ok {
+ if !oldVal {
+ rawState["pinned"] = -1
+ } else {
+ rawState["pinned"] = 0
+ }
+ }
+
+ return rawState, nil
+}
diff --git a/internal/service/cloudbroker/kvmvm/utility_compute.go b/internal/service/cloudbroker/kvmvm/utility_compute.go
index f627bfe..8e3b3ac 100644
--- a/internal/service/cloudbroker/kvmvm/utility_compute.go
+++ b/internal/service/cloudbroker/kvmvm/utility_compute.go
@@ -100,9 +100,6 @@ func utilityComputeStarted(ctx context.Context, d *schema.ResourceData, m interf
if force, ok := d.Get("force_stop").(bool); ok {
req.Force = force
}
- if depresent, ok := d.Get("depresent").(bool); ok {
- req.Depresent = depresent
- }
if _, err := c.CloudBroker().Compute().Stop(ctx, req); err != nil {
return err
}
@@ -267,10 +264,6 @@ func utilityComputeUpdateDisks(ctx context.Context, d *schema.ResourceData, m in
Force: false,
}
- if depresent, ok := d.Get("depresent").(bool); ok {
- stopReq.Depresent = depresent
- }
-
_, err := c.CloudBroker().Compute().Stop(ctx, stopReq)
if err != nil {
return err
@@ -474,19 +467,6 @@ func utilityComputeExtraDisksConfigure(ctx context.Context, d *schema.ResourceDa
if detach_set.Len() > 0 {
computeId, _ := strconv.ParseUint(d.Id(), 10, 64)
- stopReq := compute.StopRequest{
- ComputeID: computeId,
- Force: false,
- }
-
- if depresent, ok := d.Get("depresent").(bool); ok {
- stopReq.Depresent = depresent
- }
-
- _, err := c.CloudBroker().Compute().Stop(ctx, stopReq)
- if err != nil {
- return err
- }
for _, diskId := range detach_set.List() {
req := compute.DiskDetachRequest{
@@ -501,14 +481,6 @@ func utilityComputeExtraDisksConfigure(ctx context.Context, d *schema.ResourceDa
}
}
- req := compute.StartRequest{
- ComputeID: computeId,
- AltBootID: 0,
- }
- _, err = c.CloudBroker().Compute().Start(ctx, req)
- if err != nil {
- return err
- }
}
attach_set := new_set.(*schema.Set).Difference(old_set.(*schema.Set))
@@ -601,7 +573,7 @@ func utilityComputeNetworksConfigure(ctx context.Context, d *schema.ResourceData
oldList := oldSet.(*schema.Set).List()
newList := newSet.(*schema.Set).List()
- detachMap, changeIpMap, attachMap := differenceNetwork(oldList, newList)
+ detachMap, changeIpMap, changeMacMap, attachMap := differenceNetwork(oldList, newList)
apiErrCount := 0
var lastSavedError error
@@ -649,7 +621,7 @@ func utilityComputeNetworksConfigure(ctx context.Context, d *schema.ResourceData
addedLibvirtSettings := (newLibvirtSet.(*schema.Set).Difference(oldLibvirtSet.(*schema.Set))).List()
libvirtSettingsMap := addAttachedNetwork(addedLibvirtSettings, newLibvirtSet.(*schema.Set).List(), attachMap)
- if oldSet.(*schema.Set).Len() == len(detachMap) || oldSet.(*schema.Set).Len() == 0 || len(libvirtSettingsMap) > 0 || hasDPDKnetwork(attachMap) {
+ if oldSet.(*schema.Set).Len() == len(detachMap) || oldSet.(*schema.Set).Len() == 0 || len(libvirtSettingsMap) > 0 || hasDPDKnetwork(attachMap) || len(changeMacMap) > 0 {
if err := utilityComputeStop(ctx, d, m); err != nil {
apiErrCount++
lastSavedError = err
@@ -659,6 +631,24 @@ func utilityComputeNetworksConfigure(ctx context.Context, d *schema.ResourceData
}
}
+ log.Debugf("utilityComputeNetworksConfigure: changeMac set has %d items for Compute ID %s", len(changeMacMap), d.Id())
+ for _, netData := range changeMacMap {
+ computeId, _ := strconv.ParseUint(d.Id(), 10, 64)
+ req := compute.ChangeMACRequest{
+ ComputeID: computeId,
+ NewMAC: netData["mac"].(string),
+ СurrentMAC: netData["old_mac"].(string),
+ }
+
+ _, err := c.CloudBroker().Compute().ChangeMAC(ctx, req)
+ if err != nil {
+ log.Errorf("utilityComputeNetworksConfigure: failed to change mac %s to %s from Compute ID %s: %s",
+ req.СurrentMAC, req.NewMAC, d.Id(), err)
+ apiErrCount++
+ lastSavedError = err
+ }
+ }
+
sort.Slice(attachMap, func(i, j int) bool {
weightI := attachMap[i]["weight"].(int)
weightJ := attachMap[j]["weight"].(int)
@@ -687,6 +677,10 @@ func utilityComputeNetworksConfigure(ctx context.Context, d *schema.ResourceData
req.IPAddr = netData["ip_address"].(string)
}
+ if netData["mac"].(string) != "" {
+ req.MACAddr = netData["mac"].(string)
+ }
+
_, err := c.CloudBroker().Compute().NetAttach(ctx, req)
if err != nil {
log.Errorf("utilityComputeNetworksConfigure: failed to attach net ID %d of type %s to Compute ID %s: %s",
@@ -758,9 +752,10 @@ func utilityComputeNetworksConfigure(ctx context.Context, d *schema.ResourceData
return nil
}
-func differenceNetwork(oldList, newList []interface{}) (detachMap, changeIpMap, attachMap []map[string]interface{}) {
+func differenceNetwork(oldList, newList []interface{}) (detachMap, changeIpMap, changeMacMap, attachMap []map[string]interface{}) {
attachMap = make([]map[string]interface{}, 0)
changeIpMap = make([]map[string]interface{}, 0)
+ changeMacMap = make([]map[string]interface{}, 0)
detachMap = make([]map[string]interface{}, 0)
for _, oldNetwork := range oldList {
oldMap := oldNetwork.(map[string]interface{})
@@ -768,15 +763,21 @@ func differenceNetwork(oldList, newList []interface{}) (detachMap, changeIpMap,
for _, newNetwork := range newList {
newMap := newNetwork.(map[string]interface{})
if newMap["net_type"] == oldMap["net_type"] && newMap["net_id"] == oldMap["net_id"] && newMap["weight"] == oldMap["weight"] && (newMap["mtu"] == oldMap["mtu"] || newMap["mtu"].(int) == 0) {
- if (newMap["net_type"].(string) == "EXTNET" || newMap["net_type"].(string) == "VINS") && (newMap["ip_address"] != oldMap["ip_address"] && newMap["ip_address"].(string) != "") {
+ found = true
+ switch {
+ case (newMap["net_type"].(string) == "EXTNET" || newMap["net_type"].(string) == "VINS") && (newMap["ip_address"] != oldMap["ip_address"] && newMap["ip_address"].(string) != ""):
changeIpMap = append(changeIpMap, newMap)
found = true
- break
- } else if newMap["ip_address"] == oldMap["ip_address"] || newMap["ip_address"].(string) == "" {
+ fallthrough
+ case newMap["mac"] != oldMap["mac"] && newMap["mac"].(string) != "":
+ newMap["old_mac"] = oldMap["mac"]
+ changeMacMap = append(changeMacMap, newMap)
found = true
- break
}
}
+ if found {
+ break
+ }
}
if found {
continue
@@ -790,12 +791,8 @@ func differenceNetwork(oldList, newList []interface{}) (detachMap, changeIpMap,
for _, oldNetwork := range oldList {
oldMap := oldNetwork.(map[string]interface{})
if newMap["net_type"] == oldMap["net_type"] && newMap["net_id"] == oldMap["net_id"] && newMap["weight"] == oldMap["weight"] && (newMap["mtu"] == oldMap["mtu"] || newMap["mtu"].(int) == 0) {
- if newMap["ip_address"] == oldMap["ip_address"] || newMap["ip_address"].(string) == "" ||
- ((newMap["net_type"].(string) == "EXTNET" || newMap["net_type"].(string) == "VINS") &&
- newMap["ip_address"] != oldMap["ip_address"] && newMap["ip_address"].(string) != "") {
- found = true
- break
- }
+ found = true
+ break
}
}
if found {
@@ -871,6 +868,23 @@ func utilityComputeUpdate(ctx context.Context, d *schema.ResourceData, m interfa
if d.HasChange("chipset") {
req.Chipset = d.Get("chipset").(string)
}
+
+ if d.HasChange("loader_type") {
+ req.LoaderType = d.Get("loader_type").(string)
+ }
+
+ if d.HasChange("boot_type") {
+ req.BootType = d.Get("boot_type").(string)
+ }
+
+ if d.HasChange("hot_resize") {
+ req.HotResize = d.Get("hot_resize").(bool)
+ }
+
+ if d.HasChange("network_interface_naming") {
+ req.NetworkInterfaceNaming = d.Get("network_interface_naming").(string)
+ }
+
req.CPUPin = d.Get("cpu_pin").(bool)
req.HPBacked = d.Get("hp_backed").(bool)
req.AutoStart = d.Get("auto_start_w_node").(bool)
@@ -902,9 +916,7 @@ func utilityComputeUpdate(ctx context.Context, d *schema.ResourceData, m interfa
ComputeID: computeId,
Force: false,
}
- if depresent, ok := d.Get("depresent").(bool); ok {
- stopReq.Depresent = depresent
- }
+
if _, err := c.CloudBroker().Compute().Stop(ctx, stopReq); err != nil {
return err
}
@@ -1368,9 +1380,6 @@ func utilityComputeRollback(ctx context.Context, d *schema.ResourceData, m inter
ComputeID: computeId,
Force: false,
}
- if depresent, ok := d.Get("depresent").(bool); ok {
- req.Depresent = depresent
- }
_, err := c.CloudBroker().Compute().Stop(ctx, req)
if err != nil {
@@ -1531,9 +1540,6 @@ func utilityComputeUpdateImage(ctx context.Context, d *schema.ResourceData, m in
ComputeID: computeId,
Force: false,
}
- if depresent, ok := d.Get("depresent").(bool); ok {
- stopReq.Depresent = depresent
- }
if forceStop, ok := d.GetOk("force_stop"); ok {
stopReq.Force = forceStop.(bool)
}
@@ -1608,9 +1614,6 @@ func utilityComputeStop(ctx context.Context, d *schema.ResourceData, m interface
Force: true,
}
req.ComputeID = uint64(d.Get("compute_id").(int))
- if depresent, ok := d.Get("depresent").(bool); ok {
- req.Depresent = depresent
- }
log.Debugf("utilityComputeStop: stopping compute %d", req.ComputeID)
_, err := c.CloudBroker().Compute().Stop(ctx, req)
diff --git a/internal/service/cloudbroker/kvmvm/utility_compute_list.go b/internal/service/cloudbroker/kvmvm/utility_compute_list.go
index 2ec634a..ac0af59 100644
--- a/internal/service/cloudbroker/kvmvm/utility_compute_list.go
+++ b/internal/service/cloudbroker/kvmvm/utility_compute_list.go
@@ -72,6 +72,9 @@ func utilityDataComputeListCheckPresence(ctx context.Context, d *schema.Resource
if stackID, ok := d.GetOk("stack_id"); ok {
req.StackID = stackID.(uint64)
}
+ if stackName, ok := d.GetOk("stack_name"); ok {
+ req.StackName = stackName.(string)
+ }
if imageID, ok := d.GetOk("image_id"); ok {
req.ImageID = imageID.(uint64)
}
diff --git a/internal/service/cloudbroker/kvmvm/utility_compute_list_deleted.go b/internal/service/cloudbroker/kvmvm/utility_compute_list_deleted.go
index acb6638..859dfac 100644
--- a/internal/service/cloudbroker/kvmvm/utility_compute_list_deleted.go
+++ b/internal/service/cloudbroker/kvmvm/utility_compute_list_deleted.go
@@ -34,13 +34,14 @@ package kvmvm
import (
"context"
+ "regexp"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
"repository.basistech.ru/BASIS/decort-golang-sdk/pkg/cloudbroker/compute"
"repository.basistech.ru/BASIS/terraform-provider-decort/internal/controller"
)
-func utilityDataComputeListDeletedCheckPresence(ctx context.Context, d *schema.ResourceData, m interface{}) (*compute.ListComputes, error) {
+func utilityDataComputeListDeletedCheckPresence(ctx context.Context, d *schema.ResourceData, m interface{}) (*compute.ListDeletedComputes, error) {
c := m.(*controller.ControllerCfg)
req := compute.ListDeletedRequest{}
@@ -88,3 +89,12 @@ func utilityDataComputeListDeletedCheckPresence(ctx context.Context, d *schema.R
return listComputes, nil
}
+func matchDeletedComputes(computeList *compute.ListDeletedComputes) *compute.ListDeletedComputes {
+ matched, _ := regexp.Compile(`[a-zA-Z]+\\d+-[a-zA-Z]+\\d+-[a-zA-Z]+\\d+`)
+ result := computeList.FilterFunc(func(ic compute.ItemDeletedCompute) bool {
+ res := matched.Match([]byte(ic.Name))
+ return !res
+ })
+
+ return &result
+}
diff --git a/internal/service/cloudbroker/rg/flattens.go b/internal/service/cloudbroker/rg/flattens.go
index 0488764..0737f18 100644
--- a/internal/service/cloudbroker/rg/flattens.go
+++ b/internal/service/cloudbroker/rg/flattens.go
@@ -31,7 +31,6 @@ func flattenResgroup(d *schema.ResourceData, rgData *rg.RecordRG) {
d.Set("lock_status", rgData.LockStatus)
d.Set("milestones", rgData.Milestones)
d.Set("name", rgData.Name)
- d.Set("register_computes", rgData.RegisterComputes)
d.Set("resource_limits", flattenRgResourceLimits(rgData.ResourceLimits))
d.Set("resource_types", rgData.ResTypes)
d.Set("secret", rgData.Secret)
@@ -405,7 +404,6 @@ func flattenRgList(rgl *rg.ListRG) []map[string]interface{} {
"lock_status": rg.LockStatus,
"milestones": rg.Milestones,
"name": rg.Name,
- "register_computes": rg.RegisterComputes,
"resource_limits": flattenRgResourceLimits(rg.ResourceLimits),
"secret": rg.Secret,
"status": rg.Status,
@@ -476,7 +474,6 @@ func flattenResourceRG(d *schema.ResourceData, rgData *rg.RecordRG) {
d.Set("rg_name", rgData.Name)
d.Set("resource_limits", flattenRgResourceLimits(rgData.ResourceLimits))
d.Set("description", rgData.Description)
- d.Set("register_computes", rgData.RegisterComputes)
d.Set("uniq_pools", rgData.UniqPools)
d.Set("cpu_allocation_parameter", rgData.CPUAllocationParameter)
d.Set("cpu_allocation_ratio", rgData.CPUAllocationRatio)
diff --git a/internal/service/cloudbroker/rg/models.go b/internal/service/cloudbroker/rg/models.go
index 33855ba..ea78cc2 100644
--- a/internal/service/cloudbroker/rg/models.go
+++ b/internal/service/cloudbroker/rg/models.go
@@ -1,148 +1,147 @@
-/*
-Copyright (c) 2019-2022 Digital Energy Cloud Solutions LLC. All Rights Reserved.
-Authors:
-Petr Krutov,
-Stanislav Solovev,
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-*/
-
-/*
-Terraform DECORT provider - manage resources provided by DECORT (Digital Energy Cloud
-Orchestration Technology) with Terraform by Hashicorp.
-
-Source code: https://repository.basistech.ru/BASIS/terraform-provider-decort
-
-Please see README.md to learn where to place source code so that it
-builds seamlessly.
-
-Documentation: https://repository.basistech.ru/BASIS/terraform-provider-decort/wiki
-*/
-
-package rg
-
-type ResourceLimits struct {
- CUC float64 `json:"CU_C"`
- CUD float64 `json:"CU_D"`
- CUI float64 `json:"CU_I"`
- CUM float64 `json:"CU_M"`
- CUNP float64 `json:"CU_NP"`
- GpuUnits float64 `json:"gpu_units"`
-}
-
-type ResgroupRecord struct {
- ACLs []AccountAclRecord `json:"acl"`
- AccountID int `json:"accountId"`
- AccountName string `json:"accountName"`
- CreatedBy string `json:"createdBy"`
- CreatedTime uint64 `json:"createdTime"`
- DefaultNetID int `json:"def_net_id"`
- DefaultNetType string `json:"def_net_type"`
- DeletedBy string `json:"deletedBy"`
- DeletedTime int `json:"deletedTime"`
- Decsription string `json:"desc"`
- GridID int `json:"gid"`
- GUID int `json:"guid"`
- ID uint `json:"id"`
- LockStatus string `json:"lockStatus"`
- Milestones int `json:"milestones"`
- Name string `json:"name"`
- RegisterComputes bool `json:"registerComputes"`
- ResourceLimits ResourceLimits `json:"resourceLimits"`
- Secret string `json:"secret"`
- Status string `json:"status"`
- UpdatedBy string `json:"updatedBy"`
- UpdatedTime uint64 `json:"updatedTime"`
- Vins []int `json:"vins"`
- Computes []int `json:"vms"`
-}
-
-type ResgroupListResp []ResgroupRecord
-
-type ResgroupUpdateParam struct {
- RgId int `json:"rgId"`
- Name string `json:"name"`
- Desc string `json:"decs"`
- Ram int `json:"maxMemoryCapacity"`
- Disk int `json:"maxVDiskCapacity"`
- Cpu int `json:"maxCPUCapacity"`
- NetTraffic int `json:"maxNetworkPeerTransfer"`
-}
-
-type AccountAclRecord struct {
- IsExplicit bool `json:"explicit"`
- Guid string `json:"guid"`
- Rights string `json:"right"`
- Status string `json:"status"`
- Type string `json:"type"`
- UgroupID string `json:"userGroupId"`
- CanBeDeleted bool `json:"canBeDeleted"`
-}
-
-type ResgroupGetResp struct {
- ACLs []UserAclRecord `json:"ACLs"`
- Usage UsageRecord `json:"Resources"`
- AccountID int `json:"accountId"`
- AccountName string `json:"accountName"`
- GridID int `json:"gid"`
- CreatedBy string `json:"createdBy"`
- CreatedTime uint64 `json:"createdTime"`
- DefaultNetID int `json:"def_net_id"`
- DefaultNetType string `json:"def_net_type"`
- DeletedBy string `json:"deletedBy"`
- DeletedTime uint64 `json:"deletedTime"`
- Desc string `json:"desc"`
- ID uint `json:"id"`
- LockStatus string `json:"lockStatus"`
- Name string `json:"name"`
- Quota QuotaRecord `json:"resourceLimits"`
- Status string `json:"status"`
- UpdatedBy string `json:"updatedBy"`
- UpdatedTime uint64 `json:"updatedTime"`
- Vins []int `json:"vins"`
- Computes []int `json:"vms"`
-
- Ignored map[string]interface{} `json:"-"`
-}
-
-type UserAclRecord struct {
- IsExplicit bool `json:"explicit"`
- Rights string `json:"right"`
- Status string `json:"status"`
- Type string `json:"type"`
- UgroupID string `json:"userGroupId"`
- // CanBeDeleted bool `json:"canBeDeleted"`
-}
-
-type QuotaRecord struct { // this is how quota is reported by /api/.../rg/get
- Cpu float64 `json:"CU_C"` // CPU count in pcs
- Ram float64 `json:"CU_M"` // RAM volume in MB, it is STILL reported as FLOAT
- Disk float64 `json:"CU_D"` // Disk capacity in GB
- ExtIPs float64 `json:"CU_I"` // Ext IPs count
- ExtTraffic float64 `json:"CU_NP"` // Ext network traffic
- GpuUnits float64 `json:"gpu_units"` // GPU count
-}
-
-type ResourceRecord struct { // this is how actual usage is reported by /api/.../rg/get
- Cpu int `json:"cpu"`
- Disk int `json:"disksize"`
- ExtIPs int `json:"extips"`
- ExtTraffic int `json:"exttraffic"`
- Gpu int `json:"gpu"`
- Ram int `json:"ram"`
-}
-
-type UsageRecord struct {
- Current ResourceRecord `json:"Current"`
- Reserved ResourceRecord `json:"Reserved"`
-}
+/*
+Copyright (c) 2019-2022 Digital Energy Cloud Solutions LLC. All Rights Reserved.
+Authors:
+Petr Krutov,
+Stanislav Solovev,
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+/*
+Terraform DECORT provider - manage resources provided by DECORT (Digital Energy Cloud
+Orchestration Technology) with Terraform by Hashicorp.
+
+Source code: https://repository.basistech.ru/BASIS/terraform-provider-decort
+
+Please see README.md to learn where to place source code so that it
+builds seamlessly.
+
+Documentation: https://repository.basistech.ru/BASIS/terraform-provider-decort/wiki
+*/
+
+package rg
+
+type ResourceLimits struct {
+ CUC float64 `json:"CU_C"`
+ CUD float64 `json:"CU_D"`
+ CUI float64 `json:"CU_I"`
+ CUM float64 `json:"CU_M"`
+ CUNP float64 `json:"CU_NP"`
+ GpuUnits float64 `json:"gpu_units"`
+}
+
+type ResgroupRecord struct {
+ ACLs []AccountAclRecord `json:"acl"`
+ AccountID int `json:"accountId"`
+ AccountName string `json:"accountName"`
+ CreatedBy string `json:"createdBy"`
+ CreatedTime uint64 `json:"createdTime"`
+ DefaultNetID int `json:"def_net_id"`
+ DefaultNetType string `json:"def_net_type"`
+ DeletedBy string `json:"deletedBy"`
+ DeletedTime int `json:"deletedTime"`
+ Decsription string `json:"desc"`
+ GridID int `json:"gid"`
+ GUID int `json:"guid"`
+ ID uint `json:"id"`
+ LockStatus string `json:"lockStatus"`
+ Milestones int `json:"milestones"`
+ Name string `json:"name"`
+ ResourceLimits ResourceLimits `json:"resourceLimits"`
+ Secret string `json:"secret"`
+ Status string `json:"status"`
+ UpdatedBy string `json:"updatedBy"`
+ UpdatedTime uint64 `json:"updatedTime"`
+ Vins []int `json:"vins"`
+ Computes []int `json:"vms"`
+}
+
+type ResgroupListResp []ResgroupRecord
+
+type ResgroupUpdateParam struct {
+ RgId int `json:"rgId"`
+ Name string `json:"name"`
+ Desc string `json:"decs"`
+ Ram int `json:"maxMemoryCapacity"`
+ Disk int `json:"maxVDiskCapacity"`
+ Cpu int `json:"maxCPUCapacity"`
+ NetTraffic int `json:"maxNetworkPeerTransfer"`
+}
+
+type AccountAclRecord struct {
+ IsExplicit bool `json:"explicit"`
+ Guid string `json:"guid"`
+ Rights string `json:"right"`
+ Status string `json:"status"`
+ Type string `json:"type"`
+ UgroupID string `json:"userGroupId"`
+ CanBeDeleted bool `json:"canBeDeleted"`
+}
+
+type ResgroupGetResp struct {
+ ACLs []UserAclRecord `json:"ACLs"`
+ Usage UsageRecord `json:"Resources"`
+ AccountID int `json:"accountId"`
+ AccountName string `json:"accountName"`
+ GridID int `json:"gid"`
+ CreatedBy string `json:"createdBy"`
+ CreatedTime uint64 `json:"createdTime"`
+ DefaultNetID int `json:"def_net_id"`
+ DefaultNetType string `json:"def_net_type"`
+ DeletedBy string `json:"deletedBy"`
+ DeletedTime uint64 `json:"deletedTime"`
+ Desc string `json:"desc"`
+ ID uint `json:"id"`
+ LockStatus string `json:"lockStatus"`
+ Name string `json:"name"`
+ Quota QuotaRecord `json:"resourceLimits"`
+ Status string `json:"status"`
+ UpdatedBy string `json:"updatedBy"`
+ UpdatedTime uint64 `json:"updatedTime"`
+ Vins []int `json:"vins"`
+ Computes []int `json:"vms"`
+
+ Ignored map[string]interface{} `json:"-"`
+}
+
+type UserAclRecord struct {
+ IsExplicit bool `json:"explicit"`
+ Rights string `json:"right"`
+ Status string `json:"status"`
+ Type string `json:"type"`
+ UgroupID string `json:"userGroupId"`
+ // CanBeDeleted bool `json:"canBeDeleted"`
+}
+
+type QuotaRecord struct { // this is how quota is reported by /api/.../rg/get
+ Cpu float64 `json:"CU_C"` // CPU count in pcs
+ Ram float64 `json:"CU_M"` // RAM volume in MB, it is STILL reported as FLOAT
+ Disk float64 `json:"CU_D"` // Disk capacity in GB
+ ExtIPs float64 `json:"CU_I"` // Ext IPs count
+ ExtTraffic float64 `json:"CU_NP"` // Ext network traffic
+ GpuUnits float64 `json:"gpu_units"` // GPU count
+}
+
+type ResourceRecord struct { // this is how actual usage is reported by /api/.../rg/get
+ Cpu int `json:"cpu"`
+ Disk int `json:"disksize"`
+ ExtIPs int `json:"extips"`
+ ExtTraffic int `json:"exttraffic"`
+ Gpu int `json:"gpu"`
+ Ram int `json:"ram"`
+}
+
+type UsageRecord struct {
+ Current ResourceRecord `json:"Current"`
+ Reserved ResourceRecord `json:"Reserved"`
+}
diff --git a/internal/service/cloudbroker/rg/resource_rg.go b/internal/service/cloudbroker/rg/resource_rg.go
index 8acf2c5..eb5c55c 100644
--- a/internal/service/cloudbroker/rg/resource_rg.go
+++ b/internal/service/cloudbroker/rg/resource_rg.go
@@ -129,10 +129,6 @@ func resourceResgroupCreate(ctx context.Context, d *schema.ResourceData, m inter
req.ExtIP = extIp.(string)
}
- if regComputes, ok := d.GetOk("register_computes"); ok {
- req.RegisterComputes = regComputes.(bool)
- }
-
if uniqPools, ok := d.GetOk("uniq_pools"); ok {
uniqPools := uniqPools.([]interface{})
@@ -418,11 +414,6 @@ func resourceResgroupUpdate(ctx context.Context, d *schema.ResourceData, m inter
doGeneralUpdate = true
}
- if d.HasChange("register_computes") {
- req.RegisterComputes = d.Get("register_computes").(bool)
- doGeneralUpdate = true
- }
-
if d.HasChange("uniq_pools") {
uniqPools := d.Get("uniq_pools").([]interface{})
if len(uniqPools) == 0 {
diff --git a/internal/service/cloudbroker/rg/schema.go b/internal/service/cloudbroker/rg/schema.go
index 757ff43..afab865 100644
--- a/internal/service/cloudbroker/rg/schema.go
+++ b/internal/service/cloudbroker/rg/schema.go
@@ -119,10 +119,6 @@ func dataSourceRgSchemaMake() map[string]*schema.Schema {
Type: schema.TypeString,
Computed: true,
},
- "register_computes": {
- Type: schema.TypeBool,
- Computed: true,
- },
"resource_limits": {
Type: schema.TypeList,
Computed: true,
@@ -1621,10 +1617,6 @@ func dataSourceRgListDeletedSchemaMake() map[string]*schema.Schema {
Type: schema.TypeString,
Computed: true,
},
- "register_computes": {
- Type: schema.TypeBool,
- Computed: true,
- },
"resource_limits": {
Type: schema.TypeList,
Computed: true,
@@ -1895,10 +1887,6 @@ func dataSourceRgListSchemaMake() map[string]*schema.Schema {
Type: schema.TypeString,
Computed: true,
},
- "register_computes": {
- Type: schema.TypeBool,
- Computed: true,
- },
"resource_limits": {
Type: schema.TypeList,
Computed: true,
@@ -2292,14 +2280,6 @@ func resourceRgSchemaMake() map[string]*schema.Schema {
Description: "IP address on the external netowrk to request when def_net_type=PRIVATE and ext_net_id is not 0",
},
- "register_computes": {
- Type: schema.TypeBool,
- Optional: true,
- Computed: true,
- // Default: false,
- Description: "Register computes in registration system",
- },
-
"uniq_pools": {
Type: schema.TypeList,
Computed: true,
@@ -2395,7 +2375,7 @@ func resourceRgSchemaMake() map[string]*schema.Schema {
Optional: true,
Elem: &schema.Schema{
Type: schema.TypeString,
- ValidateFunc: validation.StringInSlice([]string{"hugepages", "numa", "cpupin", "vfnic"}, true),
+ ValidateFunc: validation.StringInSlice([]string{"hugepages", "numa", "cpupin", "vfnic", "dpdk", "changemac"}, true),
},
},
diff --git a/internal/service/cloudbroker/sep/data_available_sep_and_pools_list.go b/internal/service/cloudbroker/sep/data_available_sep_and_pools_list.go
new file mode 100644
index 0000000..f67355d
--- /dev/null
+++ b/internal/service/cloudbroker/sep/data_available_sep_and_pools_list.go
@@ -0,0 +1,72 @@
+/*
+Copyright (c) 2019-2023 Digital Energy Cloud Solutions LLC. All Rights Reserved.
+Authors:
+Petr Krutov,
+Stanislav Solovev,
+Sergey Kisil,
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+/*
+Terraform DECORT provider - manage resources provided by DECORT (Digital Energy Cloud
+Orchestration Technology) with Terraform by Hashicorp.
+
+Source code: https://repository.basistech.ru/BASIS/terraform-provider-decort
+
+Please see README.md to learn where to place source code so that it
+builds seamlessly.
+
+Documentation: https://repository.basistech.ru/BASIS/terraform-provider-decort/wiki
+*/
+
+package sep
+
+import (
+ "context"
+
+ "github.com/google/uuid"
+ "github.com/hashicorp/terraform-plugin-sdk/v2/diag"
+ "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
+ "repository.basistech.ru/BASIS/terraform-provider-decort/internal/constants"
+)
+
+func DataSourceAvailableSEPAndPoolsListRead(ctx context.Context, d *schema.ResourceData, m interface{}) diag.Diagnostics {
+ sepList, err := utilityAvailableSEPAndPoolsListCheckPresence(ctx, d, m)
+ if err != nil {
+ d.SetId("")
+ return diag.FromErr(err)
+ }
+
+ id := uuid.New()
+ d.SetId(id.String())
+
+ flattenAvailableSEPList(d, sepList)
+
+ return nil
+}
+
+func DataSourceAvailableSEPAndPoolsList() *schema.Resource {
+ return &schema.Resource{
+ SchemaVersion: 1,
+
+ ReadContext: DataSourceAvailableSEPAndPoolsListRead,
+
+ Timeouts: &schema.ResourceTimeout{
+ Read: &constants.Timeout30s,
+ Default: &constants.Timeout60s,
+ },
+
+ Schema: dataSourceAvailableSEPListSchemaMake(),
+ }
+}
diff --git a/internal/service/cloudbroker/sep/data_source_sep_template.go b/internal/service/cloudbroker/sep/data_source_sep_template.go
new file mode 100644
index 0000000..375a152
--- /dev/null
+++ b/internal/service/cloudbroker/sep/data_source_sep_template.go
@@ -0,0 +1,71 @@
+/*
+Copyright (c) 2019-2023 Digital Energy Cloud Solutions LLC. All Rights Reserved.
+Authors:
+Petr Krutov,
+Stanislav Solovev,
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+/*
+Terraform DECORT provider - manage resources provided by DECORT (Digital Energy Cloud
+Orchestration Technology) with Terraform by Hashicorp.
+
+Source code: https://repository.basistech.ru/BASIS/terraform-provider-decort
+
+Please see README.md to learn where to place source code so that it
+builds seamlessly.
+
+Documentation: https://repository.basistech.ru/BASIS/terraform-provider-decort/wiki
+*/
+
+package sep
+
+import (
+ "context"
+
+ "github.com/google/uuid"
+ "github.com/hashicorp/terraform-plugin-sdk/v2/diag"
+ "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
+ "repository.basistech.ru/BASIS/terraform-provider-decort/internal/constants"
+)
+
+func dataSourceSepTemplateRead(ctx context.Context, d *schema.ResourceData, m interface{}) diag.Diagnostics {
+ sepTemplate, err := utilitySepTemplateCheckPresence(ctx, d, m)
+ if err != nil {
+ d.SetId("")
+ return diag.FromErr(err)
+ }
+
+ id := uuid.New()
+ d.SetId(id.String())
+
+ d.Set("sep_template", sepTemplate)
+
+ return nil
+}
+
+func DataSourceSepTemplate() *schema.Resource {
+ return &schema.Resource{
+ SchemaVersion: 1,
+
+ ReadContext: dataSourceSepTemplateRead,
+
+ Timeouts: &schema.ResourceTimeout{
+ Read: &constants.Timeout30s,
+ Default: &constants.Timeout60s,
+ },
+
+ Schema: dataSourceSepTemplateSchemaMake(),
+ }
+}
diff --git a/internal/service/cloudbroker/sep/flattens.go b/internal/service/cloudbroker/sep/flattens.go
index dc8231c..9eb4478 100644
--- a/internal/service/cloudbroker/sep/flattens.go
+++ b/internal/service/cloudbroker/sep/flattens.go
@@ -147,3 +147,39 @@ func flattenSepConsumptionPools(bp *sep.RecordConsumption) []map[string]interfac
}
return sh
}
+
+func flattenAvailableSEPList(d *schema.ResourceData, sepList *sep.ListAvailableSEP) {
+ d.Set("items", flattenSEPDataList(sepList.Data))
+ d.Set("entry_count", sepList.EntryCount)
+}
+
+func flattenSEPDataList(sepDataList []sep.SEPData) []map[string]interface{} {
+ sh := make([]map[string]interface{}, 0)
+
+ for _, sepData := range sepDataList {
+ temp := map[string]interface{}{
+ "sep_id": sepData.SEPID,
+ "sep_name": sepData.SEPName,
+ "sep_type": sepData.SEPType,
+ "pools": flattenPoolList(sepData.Pools),
+ }
+ sh = append(sh, temp)
+ }
+
+ return sh
+}
+
+func flattenPoolList(pools []sep.Pool) []map[string]interface{} {
+ sh := make([]map[string]interface{}, 0)
+
+ for _, pool := range pools {
+ temp := map[string]interface{}{
+ "name": pool.Name,
+ "types": pool.Types,
+ "system": pool.System,
+ }
+ sh = append(sh, temp)
+ }
+
+ return sh
+}
diff --git a/internal/service/cloudbroker/sep/schema.go b/internal/service/cloudbroker/sep/schema.go
index 2778de4..9dbc8bf 100644
--- a/internal/service/cloudbroker/sep/schema.go
+++ b/internal/service/cloudbroker/sep/schema.go
@@ -1,6 +1,9 @@
package sep
-import "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
+import (
+ "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
+ "github.com/hashicorp/terraform-plugin-sdk/v2/helper/validation"
+)
func dataSourceSepCSchemaMake() map[string]*schema.Schema {
return map[string]*schema.Schema{
@@ -101,6 +104,27 @@ func dataSourceSepConfigSchemaMake() map[string]*schema.Schema {
}
}
+func dataSourceSepTemplateSchemaMake() map[string]*schema.Schema {
+ return map[string]*schema.Schema{
+ "sep_type": {
+ Type: schema.TypeString,
+ Required: true,
+ ValidateFunc: validation.StringInSlice([]string{"hitachi", "dorado", "tatlin", "shared", "local", "des"}, false),
+ Description: "type of sep",
+ },
+ "lang": {
+ Type: schema.TypeString,
+ Required: true,
+ ValidateFunc: validation.StringInSlice([]string{"ru", "en"}, false),
+ Description: "language",
+ },
+ "sep_template": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
+ }
+}
+
func dataSourceSepConsumptionSchemaMake() map[string]*schema.Schema {
return map[string]*schema.Schema{
"sep_id": {
@@ -698,3 +722,74 @@ func resourceSepConfigSchemaMake() map[string]*schema.Schema {
},
}
}
+
+func dataSourceAvailableSEPListSchemaMake() map[string]*schema.Schema {
+ return map[string]*schema.Schema{
+ "account_id": {
+ Type: schema.TypeInt,
+ Required: true,
+ Description: "Account ID",
+ },
+ "rg_id": {
+ Type: schema.TypeInt,
+ Optional: true,
+ Description: "Resource group ID",
+ },
+ "entry_count": {
+ Type: schema.TypeInt,
+ Computed: true,
+ Description: "Number of available SEP entries",
+ },
+ "items": {
+ Type: schema.TypeList,
+ Computed: true,
+ Description: "List of available SEPs",
+ Elem: &schema.Resource{
+ Schema: map[string]*schema.Schema{
+ "sep_id": {
+ Type: schema.TypeInt,
+ Computed: true,
+ Description: "SEP ID",
+ },
+ "sep_name": {
+ Type: schema.TypeString,
+ Computed: true,
+ Description: "SEP name",
+ },
+ "sep_type": {
+ Type: schema.TypeString,
+ Computed: true,
+ Description: "SEP type",
+ },
+ "pools": {
+ Type: schema.TypeList,
+ Computed: true,
+ Description: "List of pools in the SEP",
+ Elem: &schema.Resource{
+ Schema: map[string]*schema.Schema{
+ "name": {
+ Type: schema.TypeString,
+ Computed: true,
+ Description: "Pool name",
+ },
+ "types": {
+ Type: schema.TypeList,
+ Computed: true,
+ Description: "List of pool types",
+ Elem: &schema.Schema{
+ Type: schema.TypeString,
+ },
+ },
+ "system": {
+ Type: schema.TypeBool,
+ Computed: true,
+ Description: "Is system pool",
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ }
+}
diff --git a/internal/service/cloudbroker/sep/utility_available_sep_and_pools_list.go b/internal/service/cloudbroker/sep/utility_available_sep_and_pools_list.go
new file mode 100644
index 0000000..dfba782
--- /dev/null
+++ b/internal/service/cloudbroker/sep/utility_available_sep_and_pools_list.go
@@ -0,0 +1,63 @@
+/*
+Copyright (c) 2019-2023 Digital Energy Cloud Solutions LLC. All Rights Reserved.
+Authors:
+Petr Krutov,
+Stanislav Solovev,
+Sergey Kisil,
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+/*
+Terraform DECORT provider - manage resources provided by DECORT (Digital Energy Cloud
+Orchestration Technology) with Terraform by Hashicorp.
+
+Source code: https://repository.basistech.ru/BASIS/terraform-provider-decort
+
+Please see README.md to learn where to place source code so that it
+builds seamlessly.
+
+Documentation: https://repository.basistech.ru/BASIS/terraform-provider-decort/wiki
+*/
+
+package sep
+
+import (
+ "context"
+
+ log "github.com/sirupsen/logrus"
+ "repository.basistech.ru/BASIS/decort-golang-sdk/pkg/cloudbroker/sep"
+ "repository.basistech.ru/BASIS/terraform-provider-decort/internal/controller"
+
+ "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
+)
+
+func utilityAvailableSEPAndPoolsListCheckPresence(ctx context.Context, d *schema.ResourceData, m interface{}) (*sep.ListAvailableSEP, error) {
+ c := m.(*controller.ControllerCfg)
+ req := sep.ListAvailableSEPAndPoolsRequest{}
+
+ if AccountID, ok := d.GetOk("account_id"); ok {
+ req.AccountID = uint64(AccountID.(int))
+ }
+ if RGID, ok := d.GetOk("rg_id"); ok {
+ req.RGID = RGID.(uint64)
+ }
+
+ log.Debugf("utilityAvailableSEPAndPoolsListCheckPresence: load sep and pools list")
+ sepList, err := c.CloudBroker().SEP().ListAvailableSEPAndPools(ctx, req)
+ if err != nil {
+ return nil, err
+ }
+
+ return sepList, nil
+}
diff --git a/internal/service/cloudbroker/sep/utility_sep_template.go b/internal/service/cloudbroker/sep/utility_sep_template.go
new file mode 100644
index 0000000..e8b3b2b
--- /dev/null
+++ b/internal/service/cloudbroker/sep/utility_sep_template.go
@@ -0,0 +1,59 @@
+/*
+Copyright (c) 2019-2023 Digital Energy Cloud Solutions LLC. All Rights Reserved.
+Authors:
+Petr Krutov,
+Stanislav Solovev,
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+/*
+Terraform DECORT provider - manage resources provided by DECORT (Digital Energy Cloud
+Orchestration Technology) with Terraform by Hashicorp.
+
+Source code: https://repository.basistech.ru/BASIS/terraform-provider-decort
+
+Please see README.md to learn where to place source code so that it
+builds seamlessly.
+
+Documentation: https://repository.basistech.ru/BASIS/terraform-provider-decort/wiki
+*/
+
+package sep
+
+import (
+ "context"
+
+ log "github.com/sirupsen/logrus"
+ "repository.basistech.ru/BASIS/decort-golang-sdk/pkg/cloudbroker/sep"
+ "repository.basistech.ru/BASIS/terraform-provider-decort/internal/controller"
+
+ "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
+)
+
+func utilitySepTemplateCheckPresence(ctx context.Context, d *schema.ResourceData, m interface{}) (string, error) {
+ c := m.(*controller.ControllerCfg)
+ req := sep.GetTemplateRequest{
+ SepType: d.Get("sep_type").(string),
+ Language: d.Get("lang").(string),
+ }
+
+ log.Debugf("utilitySepTemplateCheckPresence: load sep template")
+ sepTemplate, err := c.CloudBroker().SEP().GetTemplate(ctx, req)
+
+ if err != nil {
+ return "", err
+ }
+
+ return sepTemplate, nil
+}
diff --git a/internal/service/cloudbroker/vins/schema.go b/internal/service/cloudbroker/vins/schema.go
index 4660520..27f55e5 100644
--- a/internal/service/cloudbroker/vins/schema.go
+++ b/internal/service/cloudbroker/vins/schema.go
@@ -1237,6 +1237,11 @@ func dataSourceVinsListSchemaMake() map[string]*schema.Schema {
Optional: true,
Description: "sort by one of supported fields, format +|-(field)",
},
+ "status": {
+ Type: schema.TypeString,
+ Optional: true,
+ Description: "sort by status",
+ },
"page": {
Type: schema.TypeInt,
Optional: true,
diff --git a/internal/service/cloudbroker/vins/utility_vins_list.go b/internal/service/cloudbroker/vins/utility_vins_list.go
index 1b9d2a4..dfeb964 100644
--- a/internal/service/cloudbroker/vins/utility_vins_list.go
+++ b/internal/service/cloudbroker/vins/utility_vins_list.go
@@ -66,6 +66,9 @@ func utilityVinsListCheckPresence(ctx context.Context, d *schema.ResourceData, m
if sortBy, ok := d.GetOk("sort_by"); ok {
req.SortBy = sortBy.(string)
}
+ if status, ok := d.GetOk("status"); ok {
+ req.Status = status.(string)
+ }
if page, ok := d.GetOk("page"); ok {
req.Page = uint64(page.(int))
}
diff --git a/samples/README.md b/samples/README.md
index 19d8cac..0159123 100644
--- a/samples/README.md
+++ b/samples/README.md
@@ -87,6 +87,7 @@
- rg_resource_consumption_get
- rg_resource_consumption_list
- rg_usage
+ - sep_and_pools_available_list
- snapshot_list
- stack
- stack_list
@@ -223,6 +224,7 @@
- cb_rg_resource_consumption_list
- cb_rg_usage
- cb_sep
+ - cb_sep_and_pools_available_list
- cb_sep_config
- cb_sep_consumption
- cb_sep_disk_list
@@ -269,6 +271,7 @@
- cb_rg
- cb_sep
- cb_sep_config
+ - cb_sep_template
- cb_user
- cb_vfpool
- cb_vins
diff --git a/samples/cloudapi/account/data_account/main.tf b/samples/cloudapi/account/data_account/main.tf
index 3f29cce..675c830 100644
--- a/samples/cloudapi/account/data_account/main.tf
+++ b/samples/cloudapi/account/data_account/main.tf
@@ -3,7 +3,7 @@
Получение информации об аккаунте
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
diff --git a/samples/cloudapi/account/data_account_audits_list/main.tf b/samples/cloudapi/account/data_account_audits_list/main.tf
index 786c5c7..b698a0e 100644
--- a/samples/cloudapi/account/data_account_audits_list/main.tf
+++ b/samples/cloudapi/account/data_account_audits_list/main.tf
@@ -3,7 +3,7 @@
Получение информации об использовании аккаунта
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
diff --git a/samples/cloudapi/account/data_account_computes_list/main.tf b/samples/cloudapi/account/data_account_computes_list/main.tf
index 21d8adb..12f4e3b 100644
--- a/samples/cloudapi/account/data_account_computes_list/main.tf
+++ b/samples/cloudapi/account/data_account_computes_list/main.tf
@@ -3,7 +3,7 @@
Получение списка computes, используемых аккаунтом
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
diff --git a/samples/cloudapi/account/data_account_consumed_units/main.tf b/samples/cloudapi/account/data_account_consumed_units/main.tf
index a599f9f..a0a93cf 100644
--- a/samples/cloudapi/account/data_account_consumed_units/main.tf
+++ b/samples/cloudapi/account/data_account_consumed_units/main.tf
@@ -3,7 +3,7 @@
Получение информации о расходуемых ресурсах аккаута
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
diff --git a/samples/cloudapi/account/data_account_consumed_units_by_type/main.tf b/samples/cloudapi/account/data_account_consumed_units_by_type/main.tf
index 3af3554..3868713 100644
--- a/samples/cloudapi/account/data_account_consumed_units_by_type/main.tf
+++ b/samples/cloudapi/account/data_account_consumed_units_by_type/main.tf
@@ -7,7 +7,7 @@
3. Удалять образ
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
@@ -41,10 +41,12 @@ data "decort_account_consumed_units_by_type" "acubt" {
#тип - строка
#значения:
#CU_C - кол-во виртуальных cpu ядер
- #CU_M - кол-во RAM в МБ
- #CU_D - кол-в используемой дисковой памяти, в ГБ
+ #CU_M - кол-во RAM, в МБ
+ #CU_D - кол-во используемой дисковой памяти, в ГБ
#CU_I - кол-во публичных ip адресов
#CU_NP - кол-во полученного/отданного трафика, в ГБ
+ #CU_DM - кол-во доступной дисковой памяти, в ГБ
+ #gpu_units - кол-во GPU
cu_type = "CU_C"
}
diff --git a/samples/cloudapi/account/data_account_deleted_list/main.tf b/samples/cloudapi/account/data_account_deleted_list/main.tf
index 5f0caec..e5b24fc 100644
--- a/samples/cloudapi/account/data_account_deleted_list/main.tf
+++ b/samples/cloudapi/account/data_account_deleted_list/main.tf
@@ -4,7 +4,7 @@
Информация предоставляется только по аккаунтам, удаленным без флага permanently
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
diff --git a/samples/cloudapi/account/data_account_disks_list/main.tf b/samples/cloudapi/account/data_account_disks_list/main.tf
index 5330826..fa01087 100644
--- a/samples/cloudapi/account/data_account_disks_list/main.tf
+++ b/samples/cloudapi/account/data_account_disks_list/main.tf
@@ -3,7 +3,7 @@
Получение информации о дисках, которые использует аккаунт
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
@@ -59,7 +59,7 @@ data "decort_account_disks_list" "adl" {
#формат - "+поле" по возрастанию / "-поле" по убыванию
#sort_by = "+name"
- #кол-во страниц для вывода
+ #номер страницы для отображения
#опциональный параметр
#тип - целое число
#page = 1
diff --git a/samples/cloudapi/account/data_account_flipgroups_list/main.tf b/samples/cloudapi/account/data_account_flipgroups_list/main.tf
index c1b00f4..16334d3 100644
--- a/samples/cloudapi/account/data_account_flipgroups_list/main.tf
+++ b/samples/cloudapi/account/data_account_flipgroups_list/main.tf
@@ -3,7 +3,7 @@
Получение информации о flipgroups, используемых аккаунтом
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
@@ -68,7 +68,7 @@ data "decort_account_flipgroups_list" "afgl" {
#формат - "+поле" по возрастанию / "-поле" по убыванию
#sort_by = "+name"
- #кол-во страниц для вывода
+ #номер страницы для отображения
#опциональный параметр
#тип - целое число
#page = 1
diff --git a/samples/cloudapi/account/data_account_get_resource_consumption/main.tf b/samples/cloudapi/account/data_account_get_resource_consumption/main.tf
index 09765a8..7d28dc7 100644
--- a/samples/cloudapi/account/data_account_get_resource_consumption/main.tf
+++ b/samples/cloudapi/account/data_account_get_resource_consumption/main.tf
@@ -2,7 +2,7 @@
Получение списка текущего потребления ресурсов аккаунта
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
diff --git a/samples/cloudapi/account/data_account_list/main.tf b/samples/cloudapi/account/data_account_list/main.tf
index d5900ea..ea6d65b 100644
--- a/samples/cloudapi/account/data_account_list/main.tf
+++ b/samples/cloudapi/account/data_account_list/main.tf
@@ -3,7 +3,7 @@
Получение списка доступных аккаунтов
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
diff --git a/samples/cloudapi/account/data_account_reserved_units/main.tf b/samples/cloudapi/account/data_account_reserved_units/main.tf
index 1fa6640..3966bef 100644
--- a/samples/cloudapi/account/data_account_reserved_units/main.tf
+++ b/samples/cloudapi/account/data_account_reserved_units/main.tf
@@ -3,7 +3,7 @@
Получение информации о зарезервированных вычислительных мощностях
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
diff --git a/samples/cloudapi/account/data_account_resource_consumption_list/main.tf b/samples/cloudapi/account/data_account_resource_consumption_list/main.tf
index e68a75c..9f0e666 100644
--- a/samples/cloudapi/account/data_account_resource_consumption_list/main.tf
+++ b/samples/cloudapi/account/data_account_resource_consumption_list/main.tf
@@ -2,7 +2,7 @@
Получение списка текущего потребления ресурсов
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
@@ -26,7 +26,7 @@ provider "decort" {
}
data "decort_account_resource_consumption_list" "rc_list" {
- #Нет входных параметров
+ #нет входных параметров
}
output "test" {
diff --git a/samples/cloudapi/account/data_account_rg_list/main.tf b/samples/cloudapi/account/data_account_rg_list/main.tf
index 6443835..231fed4 100644
--- a/samples/cloudapi/account/data_account_rg_list/main.tf
+++ b/samples/cloudapi/account/data_account_rg_list/main.tf
@@ -3,7 +3,7 @@
Получение информации о ресурных группах, используемых аккаунтом
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
diff --git a/samples/cloudapi/account/data_account_templates_list/main.tf b/samples/cloudapi/account/data_account_templates_list/main.tf
index 364c463..286b221 100644
--- a/samples/cloudapi/account/data_account_templates_list/main.tf
+++ b/samples/cloudapi/account/data_account_templates_list/main.tf
@@ -3,7 +3,7 @@
Получение информации о шаблонах, используемых аккаунтом
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
diff --git a/samples/cloudapi/account/data_account_vins_list/main.tf b/samples/cloudapi/account/data_account_vins_list/main.tf
index a604aa2..2c0a6cc 100644
--- a/samples/cloudapi/account/data_account_vins_list/main.tf
+++ b/samples/cloudapi/account/data_account_vins_list/main.tf
@@ -3,7 +3,7 @@
Получение списка vins, используемых аккаунтом
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
diff --git a/samples/cloudapi/account/resource_account/main.tf b/samples/cloudapi/account/resource_account/main.tf
index 3e69a16..3a1a815 100644
--- a/samples/cloudapi/account/resource_account/main.tf
+++ b/samples/cloudapi/account/resource_account/main.tf
@@ -2,12 +2,11 @@
Пример использования
Ресурса account
Ресурс позволяет:
-1. Создавать аккаунт
-2. Редактировать аккаунт
-3. Удалять аккаунт
+1. Редактировать аккаунт
+2. Удалять аккаунт
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
@@ -22,9 +21,9 @@ terraform {
*/
provider "decort" {
- authenticator = "decs3o"
+ authenticator = "decs3o"
#controller_url =
- controller_url = "https://ds1.digitalenergy.online"
+ controller_url = "https://ds1.digitalenergy.online"
#oauth2_url =
oauth2_url = "https://sso.digitalenergy.online"
allow_unverified_ssl = true
@@ -34,39 +33,41 @@ resource "decort_account" "a" {
#имя аккаунта
#обязательный параметр
#тип - строка
- #используется при создании и редактировании аккаунта
+ #используется при обновлении
account_name = "new_my_account"
- #имя пользователя - создателя аккаунта
- #обязательный параметр
+ #описание
+ #опциональный параметр
#тип - строка
- username = "username@decs3o"
+ #используется при обновлении
+ #desc = "description"
#доступность аккаунта
- #необязательный параметр
+ #опциональный параметр
#тип - булев
- #может применяться при редактировании аккаунта
+ #используется при обновлении
#enable = true
- #id аккаунта, позволяет сформировать .tfstate, если аккаунт имеет в платформе
- #необязательный параметр
+ #id аккаунта, позволяет сформировать .tfstate, если аккаунт имеется на платформе
+ #опциональный параметр
#тип - целое число
- account_id = 11111
+ #account_id = 11111
#отправлять ли на электронную почту письмо о доступе
- #необязательный параметр
+ #опциональный параметр
#тип - булев
- #применяется при создании аккаунта и редактировании аккаунта
+ #используется при обновлении
#send_access_emails = true
#добавление/редактирование/удаление пользователей, к которым привязан аккаунт
- #необязательный параметр
+ #опциональный параметр
+ #используется при обновлении
#тип - объект, кол-во таких объектов не ограничено
- /*users {
+ #users {
#id пользователя
#обязательный параметр
#тип - строка
- user_id = "username_2@decs3o"
+ #user_id = "username_2@decs3o"
#тип доступа пользователя
#обязательный параметр
@@ -75,68 +76,74 @@ resource "decort_account" "a" {
#R - чтение
#RCX - запись
#ARCXDU - админ
- access_type = "R"
+ #access_type = "R"
+ #}
- }
- users {
- user_id = "username_1@decs3o"
- access_type = "R"
- }*/
+ #users {
+ #user_id = "username_1@decs3o"
+ #access_type = "R"
+ #}
#ограничение используемых ресурсов
- #необязательный параметр
+ #опциональный параметр
#тип - объект
- #используется при создании и редактировании
- resource_limits {
+ #используется при обновлении
+ #resource_limits {
#кол-во используемых ядер cpu
- #необязательный параметр
+ #опциональный параметр
#тип - целое число
#если установлена -1 - кол-во неограничено
- cu_c = 2
+ #cu_c = 2
- #кол-во используемой RAM в МБ
- #необязательный параметр
+ #кол-во используемой RAM, в МБ
+ #опциональный параметр
#тип - целое число
#если установлена -1 - кол-во неограничено
- cu_m = 1024
+ #cu_m = 1024
#размер дисков, в ГБ
- #необязательный параметр
+ #опциональный параметр
#тип - целое число
#если установлена -1 - размер неограничено
- cu_d = 23
+ #cu_d = 23
#кол-во используемых публичных IP
- #необязательный параметр
+ #опциональный параметр
#тип - целое число
#если установлена -1 - кол-во неограничено
- cu_i = 2
+ #cu_i = 2
#ограничения на кол-во передачи данных, в ГБ
- #необязательный параметр
+ #опциональный параметр
#тип - целое число
#если установлена -1 - кол-во неограничено
- cu_np = 2
+ #cu_np = 2
#кол-во графических процессоров
- #необязательный параметр
+ #опциональный параметр
#тип - целое число
#если установлена -1 - кол-во неограничено
- gpu_units = 2
- }
+ #gpu_units = 2
+ #}
+
+ #причина отключения аккаунта
+ #опциональный параметр
+ #тип - строка
+ #используется при обновлении
+ #reason = "something_reason"
#восстановление аккаунта
- #необязательный параметр
+ #опциональный параметр
#тип - булев
#применяется к удаленным аккаунтам
- #по-умолчанию - false
+ #по умолчанию - false
#restore = false
- #мгновеное удаление аккаунта, если да - то аккаунт невозможно будет восстановить
- #необязательный параметр
+ #флаг для удаления аккаунта, без возможности восстановления
+ #опциональный параметр
#тип - булев
- #используется при удалении аккаунта
- #по-умолчанию - false
+ #используется при удалении
+ #по умолчанию - false
#permanently = true
}
diff --git a/samples/cloudapi/audit/data_audit/main.tf b/samples/cloudapi/audit/data_audit/main.tf
index f2d590f..2885e67 100644
--- a/samples/cloudapi/audit/data_audit/main.tf
+++ b/samples/cloudapi/audit/data_audit/main.tf
@@ -3,7 +3,7 @@
Получение аудита по guid
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
diff --git a/samples/cloudapi/bservice/data_bservice/main.tf b/samples/cloudapi/bservice/data_bservice/main.tf
index 107a5b8..ffce499 100644
--- a/samples/cloudapi/bservice/data_bservice/main.tf
+++ b/samples/cloudapi/bservice/data_bservice/main.tf
@@ -3,7 +3,7 @@
Получение информации о basic service
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
diff --git a/samples/cloudapi/bservice/data_bservice_deleted_list/main.tf b/samples/cloudapi/bservice/data_bservice_deleted_list/main.tf
index 94f8344..5f195d2 100644
--- a/samples/cloudapi/bservice/data_bservice_deleted_list/main.tf
+++ b/samples/cloudapi/bservice/data_bservice_deleted_list/main.tf
@@ -3,7 +3,7 @@
Получение списка удаленных basic service
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
diff --git a/samples/cloudapi/bservice/data_bservice_group/main.tf b/samples/cloudapi/bservice/data_bservice_group/main.tf
index cbd4aa0..eda6c89 100644
--- a/samples/cloudapi/bservice/data_bservice_group/main.tf
+++ b/samples/cloudapi/bservice/data_bservice_group/main.tf
@@ -3,7 +3,7 @@
Получение информации о вычислительной группе, принадлежащей basic service
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
diff --git a/samples/cloudapi/bservice/data_bservice_list/main.tf b/samples/cloudapi/bservice/data_bservice_list/main.tf
index c02d53b..6a0574a 100644
--- a/samples/cloudapi/bservice/data_bservice_list/main.tf
+++ b/samples/cloudapi/bservice/data_bservice_list/main.tf
@@ -3,7 +3,7 @@
Получение списка доступных базовых сервисов
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
diff --git a/samples/cloudapi/bservice/data_bservice_snapshot_list/main.tf b/samples/cloudapi/bservice/data_bservice_snapshot_list/main.tf
index f9058f5..33b4ec6 100644
--- a/samples/cloudapi/bservice/data_bservice_snapshot_list/main.tf
+++ b/samples/cloudapi/bservice/data_bservice_snapshot_list/main.tf
@@ -3,7 +3,7 @@
Получение списка снимков состояний basic service
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
diff --git a/samples/cloudapi/bservice/resource_bservice/main.tf b/samples/cloudapi/bservice/resource_bservice/main.tf
index c90581f..7a95033 100644
--- a/samples/cloudapi/bservice/resource_bservice/main.tf
+++ b/samples/cloudapi/bservice/resource_bservice/main.tf
@@ -1,6 +1,6 @@
/*
Пример использования
-Ресурса cdrom image
+Ресурса bservice
Ресурс позволяет:
1. Создавать basic service
2. Редактировать basic service
@@ -10,7 +10,7 @@
6. Удалять снимки состояний
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
@@ -25,78 +25,78 @@ terraform {
*/
provider "decort" {
- authenticator = "decs3o"
+ authenticator = "decs3o"
#controller_url =
- controller_url = "https://ds1.digitalenergy.online"
+ controller_url = "https://ds1.digitalenergy.online"
#oauth2_url =
oauth2_url = "https://sso.digitalenergy.online"
allow_unverified_ssl = true
}
resource "decort_bservice" "b" {
- #имя сервиса
+ #имя basic service
#обязательный параметр
#тип - строка
+ #используется при создании
service_name = "my_test_bservice_sn"
#id ресурсной группы
#обязательный параметр
#тип - целое число
+ #используется при создании
rg_id = 11111
#доступность сервиса
- #необязательный параметр
+ #опциональный параметр
#тип - булев
- #используется при редактировании ресурса
- #по-умолачанию - false
+ #используется при создании и обновлении
+ #по умолчанию - false
#enable = true
#снимок состояния
- #необязательный параметр
+ #опциональный параметр
#тип - объект
- #используется при редактировании ресурса
+ #используется при обновлении
#может быть несколько в ресурсе
- /*
- snapshots {
+ #snapshots {
#имя снимка состояния
#обязательный параметр
#тип - строка
- label = "test_snapshot"
+ #label = "test_snapshot"
#восстановление сервиса из снимка состояния
- #необязательный параметр
+ #опциональный параметр
#тип - булев
- #по-умолчанию - false
+ #по умолчанию - false
#восстановление происходит только при переключении с false на true
- rollback = false
- }
- */
+ #rollback = false
+ #}
#старт сервиса
- #необязательный параметр
+ #опциональный параметр
#тип - булев
- #используется при редактировании ресурса
- #по-умолачанию - false
+ #используется при создании и обновлении
+ #по умолчанию - false
#start = false
#восстановление сервиса после удаления
- #необязательный параметр
+ #опциональный параметр
#тип - булев
- #используется при редактировании ресурса
- #по-умолачанию - false
- #restore = true
+ #используется при обновлении
+ #по умолчанию - false
+ #restore = true
#мгновенное удаление сервиса без права восстановления
- #необязательный параметр
+ #опциональный параметр
#тип - булев
- #используется при удалении ресурса
- #по-умолачанию - false
+ #используется при удалении
+ #по умолчанию - false
#permanently = true
#id сервиса, позволяет сформировать .tfstate, если сервис есть в платформе
- #необязательный параметр
+ #опциональный параметр
#тип - булев
- #используется при создании ресурса
+ #используется при создании
#service_id = 11111
}
diff --git a/samples/cloudapi/bservice/resource_bservice_group/main.tf b/samples/cloudapi/bservice/resource_bservice_group/main.tf
index 9945833..fa13e2e 100644
--- a/samples/cloudapi/bservice/resource_bservice_group/main.tf
+++ b/samples/cloudapi/bservice/resource_bservice_group/main.tf
@@ -7,7 +7,7 @@
3. Удалять группы
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
@@ -22,9 +22,9 @@ terraform {
*/
provider "decort" {
- authenticator = "decs3o"
+ authenticator = "decs3o"
#controller_url =
- controller_url = "https://ds1.digitalenergy.online"
+ controller_url = "https://ds1.digitalenergy.online"
#oauth2_url =
oauth2_url = "https://sso.digitalenergy.online"
allow_unverified_ssl = true
@@ -34,131 +34,148 @@ resource "decort_bservice_group" "bsg" {
#id basic service
#обязательный параметр
#тип - целое число
+ #используется при создании
service_id = 444444
#название группы
#обязательный параметр
#тип - строка
+ #используется при создании и обновлении
compgroup_name = "tf_group_rename"
#id группы
- #необязательный параметр
+ #опциональный параметр
#тип - целое число
- #применяется при редактировании группы, либо при создании .tfstate - файла, если группа имеется в плафторме
- compgroup_id = 33333
+ #применяется при создании .tfstate - файла, если группа имеется в плафторме
+ #compgroup_id = 33333
#кол-во вычислительных ресурсов
#обязательный параметр
#тип - целое число
- #используется так же для редактирования группы
+ #используется при создании и обновлении
comp_count = 1
#кол-во ядер на выч. ресурс
#обязательный параметр
#тип - целое число
- #используется так же для редактирования группы
+ #используется при создании и обновлении
cpu = 2
#кол-во оперативной памяти на выч. ресурс, в МБ
#обязательный параметр
#тип - целое число
- #используется так же для редактирования группы
+ #используется при создании и обновлении
ram = 256
#размер диска для выч. ресурса, в ГБ
#обязательный параметр
#тип - целое число
- #используется так же для редактирования группы
+ #используется при создании и обновлении
disk = 11
#id образа диска
#обязательный параметр
- #тип - целое число
+ #используется при создании
image_id = 2222
#драйвер
#обязательный параметр
#тип - строка
- driver = "kvm_x86"
+ #используется при создании
+ driver = "KVM_X86"
#id Storage endpoint provider
- #необязательный параметр
+ #опциональный параметр
#тип - целое число
- sep_id = 3
+ #используется при создании
+ #sep_id = 3
- #Наименование SEPPool используется если установлен sepId, также может быть пустым
- #необязательный параметр
+ #наименование SEPPool, используется если установлен sepId, также может быть пустым
+ #опциональный параметр
#тип - строка
- sep_pool = "name"
+ #используется при создании
+ #sep_pool = "name"
#тег группы
- #необязательный параметр
+ #опциональный параметр
#тип - строка
- #используется при создании и редактировании ресурса
- role = "tf_test_changed"
+ #используется при создании и обновлении
+ #role = "tf_test_changed"
#id сетей extnet
- #необязательный параметр
+ #опциональный параметр
#тип - массив целых чисел
+ #используется при создании и обновлении
#должен быть использован vins или extnets
- extnets = [1111, 2222]
+ #extnets = [1111, 2222]
#id сетей vinses
- #необязательный параметр
+ #опциональный параметр
#тип - массив целых чисел
+ #используется при создании и обновлении
#должен быть использован vins или extnets
- vinses = [1111, 2222]
+ #vinses = [1111, 2222]
#время таймуата перед стартом
- #необязательный параметр
+ #опциональный параметр
#тип - целое число
- #используется при создании ресурса
- timeout_start = 0
+ #используется при создании
+ #timeout_start = 0
- #Перечень аргументов для cloud-init создаваемым группам узлов Worker
- #необязательный параметр
+ #перечень аргументов для cloud-init создаваемым группам узлов Worker
+ #опциональный параметр
#тип - файл в формате YAML
- cloud_init = file("initconfig.tftpl")
+ #используется при создании
+ #cloud_init = file("initconfig.tftpl")
+
+ #чипсет для добавляемых виртуальных машин
+ #возможные значения - i440fx, Q35
+ #по умолчанию - i440fx
+ #опциональный параметр
+ #тип - строка
+ #используется при создании
+ #chipset = "i440fx"
#id групп родителей
- #необязательный параметр
+ #опциональный параметр
#тип - массив целых чисел
- #используется при редактировании ресурса
+ #используется при создании и обновлении
#parents = [2222]
#принудительное обновление параметров выч. мощностей (ram,disk,cpu) и имени группы
- #необязательный параметр
+ #опциональный параметр
#тип - булев
- #используется при редактировании ресурса
- #по-умолчанию - false
+ #используется при обновлении
+ #по умолчанию - false
#force_update = true
#старт/стоп вычислительных мощностей
- #необязательный параметр
+ #опциональный параметр
#тип - булев
- #используется при редактировании ресурса
- #по-умолчанию - false
+ #используется при создании и обновлении
+ #по умолчанию - false
#start = false
#принудительная остановка вычислительных мощностей
- #необязательный параметр
+ #опциональный параметр
#тип - булев
- #используется при редактировании и остановке группы
- #по-умолчанию - false
+ #используется при обновлении
+ #по умолчанию - false
#force_stop = false
#удаление вычислительных мощностей
- #необязательный параметр
+ #опциональный параметр
#тип - массив целых чисел
- #используется при редактировании
+ #используется при обновлении
#remove_computes = [32287]
#режим увеличения числа выч. мощностей
- #необязательный параметр
+ #опциональный параметр
#тип - строка
#используется в связке с comp_count при редактировании группы
#возможные варианты - RELATIVE и ABSOLUTE
- #по-умолчанию - "RELATIVE"
+ #используется при обновлении
+ #по умолчанию - "RELATIVE"
#mode = "RELATIVE"
}
diff --git a/samples/cloudapi/disk/data_disk/main.tf b/samples/cloudapi/disk/data_disk/main.tf
index 25eb620..f314c16 100644
--- a/samples/cloudapi/disk/data_disk/main.tf
+++ b/samples/cloudapi/disk/data_disk/main.tf
@@ -3,7 +3,7 @@
Получение данных диска
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
diff --git a/samples/cloudapi/disk/data_disk_list/main.tf b/samples/cloudapi/disk/data_disk_list/main.tf
index 392db8b..4c9a128 100644
--- a/samples/cloudapi/disk/data_disk_list/main.tf
+++ b/samples/cloudapi/disk/data_disk_list/main.tf
@@ -3,7 +3,7 @@
Получение списка доступных дисков
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
@@ -84,7 +84,7 @@ data "decort_disk_list" "dl" {
#формат - "+поле" по возрастанию / "-поле" по убыванию
#sort_by = "+name"
- #кол-во страниц для вывода
+ #номер страницы для отображения
#опциональный параметр
#тип - целое число
#page = 1
diff --git a/samples/cloudapi/disk/data_disk_list_deleted/main.tf b/samples/cloudapi/disk/data_disk_list_deleted/main.tf
index 7ac5c9e..c70eafe 100644
--- a/samples/cloudapi/disk/data_disk_list_deleted/main.tf
+++ b/samples/cloudapi/disk/data_disk_list_deleted/main.tf
@@ -3,7 +3,7 @@
Получение списка дисков со статусом DELETED
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
@@ -70,7 +70,7 @@ data "decort_disk_list_deleted" "dld" {
#формат - "+поле" по возрастанию / "-поле" по убыванию
#sort_by = "+name"
- #кол-во страниц для вывода
+ #номер страницы для отображения
#опциональный параметр
#тип - целое число
#page = 1
diff --git a/samples/cloudapi/disk/data_disk_list_types/main.tf b/samples/cloudapi/disk/data_disk_list_types/main.tf
index 6882571..5134e1a 100644
--- a/samples/cloudapi/disk/data_disk_list_types/main.tf
+++ b/samples/cloudapi/disk/data_disk_list_types/main.tf
@@ -3,7 +3,7 @@
Получение списка типов дисков
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
diff --git a/samples/cloudapi/disk/data_disk_list_types_detailed/main.tf b/samples/cloudapi/disk/data_disk_list_types_detailed/main.tf
index 4edb839..5b32509 100644
--- a/samples/cloudapi/disk/data_disk_list_types_detailed/main.tf
+++ b/samples/cloudapi/disk/data_disk_list_types_detailed/main.tf
@@ -3,7 +3,7 @@
Получение списка типов дисков, но детально
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
diff --git a/samples/cloudapi/disk/data_disk_list_unattached/main.tf b/samples/cloudapi/disk/data_disk_list_unattached/main.tf
index a0a36f5..901b2a0 100644
--- a/samples/cloudapi/disk/data_disk_list_unattached/main.tf
+++ b/samples/cloudapi/disk/data_disk_list_unattached/main.tf
@@ -3,7 +3,7 @@
Получение списка доступных неприсоединенных дисков
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
diff --git a/samples/cloudapi/disk/data_disk_replication/main.tf b/samples/cloudapi/disk/data_disk_replication/main.tf
index 15543e7..7093d38 100644
--- a/samples/cloudapi/disk/data_disk_replication/main.tf
+++ b/samples/cloudapi/disk/data_disk_replication/main.tf
@@ -3,7 +3,7 @@
Получение статуса репликации диска
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
@@ -29,12 +29,12 @@ provider "decort" {
data "decort_disk_replication" "dr" {
- #ID диска для которого подключена репликация
+ #id диска для которого подключена репликация
#обязательный параметр
#тип - целое число
disk_id = 49304
- #ID реплики диска
+ #id реплики диска
#обязательный параметр
#тип - целое число
replica_disk_id = 1213
diff --git a/samples/cloudapi/disk/data_disk_snapshot/main.tf b/samples/cloudapi/disk/data_disk_snapshot/main.tf
index 880cd9a..d017764 100644
--- a/samples/cloudapi/disk/data_disk_snapshot/main.tf
+++ b/samples/cloudapi/disk/data_disk_snapshot/main.tf
@@ -3,7 +3,7 @@
Получение конкретного снапшота
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
@@ -27,12 +27,12 @@ provider "decort" {
}
data "decort_disk_snapshot" "ds" {
- #Номер диска
+ #номер диска
#обязательный параметр
#тип - целое число
disk_id = 20100
- #Ярлык диска
+ #ярлык диска
#обязательный параметр
#тип - строка
label = "label"
diff --git a/samples/cloudapi/disk/data_disk_snapshot_list/main.tf b/samples/cloudapi/disk/data_disk_snapshot_list/main.tf
index fc05f81..7f47e43 100644
--- a/samples/cloudapi/disk/data_disk_snapshot_list/main.tf
+++ b/samples/cloudapi/disk/data_disk_snapshot_list/main.tf
@@ -3,7 +3,7 @@
Получение списка снапшотов диска
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
@@ -27,7 +27,7 @@ provider "decort" {
}
data "decort_disk_snapshot_list" "ds" {
- #Номер диска
+ #номер диска
#обязательный параметр
#тип - целое число
disk_id = 20100
diff --git a/samples/cloudapi/disk/resource_disk/main.tf b/samples/cloudapi/disk/resource_disk/main.tf
index 0af19ce..00d3ef4 100644
--- a/samples/cloudapi/disk/resource_disk/main.tf
+++ b/samples/cloudapi/disk/resource_disk/main.tf
@@ -3,7 +3,7 @@
Получение информации об уже существующем диске.
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
@@ -30,37 +30,38 @@ resource "decort_disk" "acl" {
#id владельца диска
#обязательный параметр
#тип - целое число
+ #используется при создании
account_id = 88366
#имя диска
#обязательный параметр
#тип - строка
+ #используется при создании и обновлении
disk_name = "super-disk-re"
- #размер диска в гигабайтах
+ #размер диска, в ГБ
#обязательный параметр
#тип - целое число
+ #используется при создании и обновлении
size_max = 20
- #id платформы
- #обязательный параметр
- #тип - целое число
- gid = 212
-
#флаг для отключения диска от ВМ при удалении
#опциональный параметр
#тип - булев
- detach = false
+ #используется при удалении
+ #detach = false
- #флаг для удаления реплики диска безвозвратно
+ #флаг для удаления диска, без возможности восстановления
#опциональный параметр
#тип - булев
- permanently = false
+ #используется при удалении
+ #permanently = false
- #Флаг, отвечающий за доступность диска дургим ресурсам
+ #флаг, отвечающий за доступность диска другим ресурсам
#опциональный параметр
#тип - строка
- shareable = false
+ #используется при создании и обновлении
+ #shareable = false
}
diff --git a/samples/cloudapi/disk/resource_disk_snapshot/main.tf b/samples/cloudapi/disk/resource_disk_snapshot/main.tf
index ac8184c..890466f 100644
--- a/samples/cloudapi/disk/resource_disk_snapshot/main.tf
+++ b/samples/cloudapi/disk/resource_disk_snapshot/main.tf
@@ -3,7 +3,7 @@
Ресурс снапшота диска
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
@@ -30,17 +30,20 @@ resource "decort_disk_snapshot" "ds" {
#номер диска
#обязательный параметр
#тип - целое число
+ #используется при создании
disk_id = 20100
#ярлык диска
#обязательный параметр
#тип - строка
+ #используется при создании
label = "label"
#флаг rollback
#опциональный параметр
#тип - булев
- rollback = false
+ #используется при создании и обновлении
+ #rollback = false
}
output "test" {
diff --git a/samples/cloudapi/dpdknet/data_dpdknet/main.tf b/samples/cloudapi/dpdknet/data_dpdknet/main.tf
index 59ec65c..095d964 100644
--- a/samples/cloudapi/dpdknet/data_dpdknet/main.tf
+++ b/samples/cloudapi/dpdknet/data_dpdknet/main.tf
@@ -3,7 +3,7 @@
Получение данных диска
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
diff --git a/samples/cloudapi/dpdknet/data_dpdknet_list/main.tf b/samples/cloudapi/dpdknet/data_dpdknet_list/main.tf
index 1ae79a3..bff81ae 100644
--- a/samples/cloudapi/dpdknet/data_dpdknet_list/main.tf
+++ b/samples/cloudapi/dpdknet/data_dpdknet_list/main.tf
@@ -3,7 +3,7 @@
Получение списка доступных дисков
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
@@ -63,7 +63,7 @@ data "decort_dpdknet_list" "dl" {
#формат - "+поле" по возрастанию / "-поле" по убыванию
#sort_by = "+name"
- #кол-во страниц для вывода
+ #номер страницы для отображения
#опциональный параметр
#тип - целое число
#page = 1
diff --git a/samples/cloudapi/extnet/data_extnet/main.tf b/samples/cloudapi/extnet/data_extnet/main.tf
index dec5e1d..d981de8 100644
--- a/samples/cloudapi/extnet/data_extnet/main.tf
+++ b/samples/cloudapi/extnet/data_extnet/main.tf
@@ -3,7 +3,7 @@
Получение информации о сети
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
diff --git a/samples/cloudapi/extnet/data_extnet_computes_list/main.tf b/samples/cloudapi/extnet/data_extnet_computes_list/main.tf
index 292160d..871bccb 100644
--- a/samples/cloudapi/extnet/data_extnet_computes_list/main.tf
+++ b/samples/cloudapi/extnet/data_extnet_computes_list/main.tf
@@ -3,7 +3,7 @@
Получение информации о вычислительных ресурсах, использующих сеть аккаунта
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
@@ -48,7 +48,7 @@ data "decort_extnet_computes_list" "ecl" {
#формат - "+поле" по возрастанию / "-поле" по убыванию
#sort_by = "+name"
- #кол-во страниц для вывода
+ #номер страницы для отображения
#опциональный параметр
#тип - целое число
#page = 1
diff --git a/samples/cloudapi/extnet/data_extnet_default/main.tf b/samples/cloudapi/extnet/data_extnet_default/main.tf
index 79b03a3..c983e3f 100644
--- a/samples/cloudapi/extnet/data_extnet_default/main.tf
+++ b/samples/cloudapi/extnet/data_extnet_default/main.tf
@@ -1,9 +1,9 @@
/*
Пример использования
-Получение информации о сети по-умолчанию
+Получение информации о сети по умолчанию
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
@@ -27,7 +27,7 @@ provider "decort" {
}
data "decort_extnet_default" "ed" {
-
+ #нет входных параметров
}
output "test" {
diff --git a/samples/cloudapi/extnet/data_extnet_list/main.tf b/samples/cloudapi/extnet/data_extnet_list/main.tf
index ad98a7c..9ea584a 100644
--- a/samples/cloudapi/extnet/data_extnet_list/main.tf
+++ b/samples/cloudapi/extnet/data_extnet_list/main.tf
@@ -3,7 +3,7 @@
Получение списка сетей
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
@@ -28,7 +28,7 @@ provider "decort" {
data "decort_extnet_list" "el" {
#id аккаунта для фильтрации результата
- #необязательный параметр
+ #опциональный параметр
#тип - целое число
#account_id = 1111111
@@ -68,7 +68,7 @@ data "decort_extnet_list" "el" {
#формат - "+поле" по возрастанию / "-поле" по убыванию
#sort_by = "+name"
- #кол-во страниц для вывода
+ #номер страницы для отображения
#опциональный параметр
#тип - целое число
#page = 1
@@ -77,6 +77,11 @@ data "decort_extnet_list" "el" {
#опциональный параметр
#тип - целое число
#size = 1
+
+ #имя моста openVswitch
+ #опциональный параметр
+ #тип - строка
+ #ovs_bridge = "key"
}
output "test" {
diff --git a/samples/cloudapi/extnet/data_extnet_reserved_ip_list/main.tf b/samples/cloudapi/extnet/data_extnet_reserved_ip_list/main.tf
index 25db22e..f0e1365 100644
--- a/samples/cloudapi/extnet/data_extnet_reserved_ip_list/main.tf
+++ b/samples/cloudapi/extnet/data_extnet_reserved_ip_list/main.tf
@@ -3,7 +3,7 @@
Получение информации о зарезервированных IP адресах или пуле адресов
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
diff --git a/samples/cloudapi/flipgroup/data_flipgroup/main.tf b/samples/cloudapi/flipgroup/data_flipgroup/main.tf
index e32c31f..89dbf9f 100644
--- a/samples/cloudapi/flipgroup/data_flipgroup/main.tf
+++ b/samples/cloudapi/flipgroup/data_flipgroup/main.tf
@@ -3,7 +3,7 @@
Получение группы виртуальных машин по id
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
diff --git a/samples/cloudapi/flipgroup/data_flipgroup_list/main.tf b/samples/cloudapi/flipgroup/data_flipgroup_list/main.tf
index 0dc80f4..59c61b4 100644
--- a/samples/cloudapi/flipgroup/data_flipgroup_list/main.tf
+++ b/samples/cloudapi/flipgroup/data_flipgroup_list/main.tf
@@ -3,7 +3,7 @@
Получение группы виртуальных машин, доступных текущему пользователю
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
@@ -57,7 +57,7 @@ data "decort_flipgroup_list" "fg" {
#тип - строка
#by_ip = "1.1.1.1.1"
- #id ресурсной группы, используется для фильтрации
+ #фильтр по id ресурсной группы
#опциональный параметр
#тип - целое число
#если не задан - выводятся все доступные данные
diff --git a/samples/cloudapi/flipgroup/resource_flipgroup/main.tf b/samples/cloudapi/flipgroup/resource_flipgroup/main.tf
index 2740b09..627af6f 100644
--- a/samples/cloudapi/flipgroup/resource_flipgroup/main.tf
+++ b/samples/cloudapi/flipgroup/resource_flipgroup/main.tf
@@ -6,7 +6,7 @@
3. Добавить/удалить клиентов
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
@@ -33,42 +33,50 @@ resource "decort_flipgroup" "fg" {
#id аккаунта
#обязательный параметр
#тип - целое число
+ #используется при создании
account_id = 999
#наименование Flipgroup
#обязательный параметр
#тип - строка
+ #используется при создании и обновлении
name = "flipgroup_name"
#тип сети (EXTNET, ViNS)
#обязательный параметр
#тип - строка
+ #используется при создании
net_type = "EXTNET"
#id сети
#обязательный параметр
#тип - целое число
+ #используется при создании
net_id = 13
#тип клиентов (в данный момент поддерживается только тип 'compute')
#обязательный параметр
#тип - строка
+ #используется при создании
client_type = "compute"
#ip-адрес
#опциональный параметр
#тип - строка
- ip = "127.0.0.1"
+ #используется при создании
+ #ip = "127.0.0.1"
#список клиентов, прикрепленных к флипгруппе
#опциональный параметр
#тип - массив целых чисел
- client_ids = [11269]
+ #используется при создании и обновлении
+ #client_ids = [11269]
#описание флипгруппы
#опциональный параметр
#тип - строка
- desc = "CHANGED"
+ #используется при создании и обновлении
+ #desc = "CHANGED"
}
output "fg_out" {
diff --git a/samples/cloudapi/image/data_image/main.tf b/samples/cloudapi/image/data_image/main.tf
index a98e3df..f70f345 100644
--- a/samples/cloudapi/image/data_image/main.tf
+++ b/samples/cloudapi/image/data_image/main.tf
@@ -3,7 +3,7 @@
Получение информации об образе
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
@@ -34,7 +34,7 @@ data "decort_image" "image" {
#показывать ли информацию об удаленном образе
#опциональный параметр
- #тип - булево значение
+ #тип - булев
#по умолчанию - false
#show_all = false
}
diff --git a/samples/cloudapi/image/data_image_list/main.tf b/samples/cloudapi/image/data_image_list/main.tf
index 6d6130e..5ba93e8 100644
--- a/samples/cloudapi/image/data_image_list/main.tf
+++ b/samples/cloudapi/image/data_image_list/main.tf
@@ -3,7 +3,7 @@
Получение списка доступных образов
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
diff --git a/samples/cloudapi/image/resource_image/main.tf b/samples/cloudapi/image/resource_image/main.tf
index 7d71f19..78d5f89 100644
--- a/samples/cloudapi/image/resource_image/main.tf
+++ b/samples/cloudapi/image/resource_image/main.tf
@@ -5,7 +5,7 @@
1. Управлять образом
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
@@ -32,77 +32,93 @@ resource "decort_image" "img" {
#наименование образа
#обязательный параметр
#тип - строка
+ #используется при создании и обновлении
name = "image_name"
#драйверы компьютов, подходящие для данного образа
#обязательный параметр
#тип - массив строк
+ #используется при создании
drivers = ["KVM_X86"]
#тип образа (linux, windows и др.)
#обязательный параметр
#тип - строка
+ #используется при создании
type = "linux"
#прямая ссылка на образ
#обязательный параметр
#тип - строка
+ #используется при создании
url = "https://dl-cdn.alpinelinux.org/alpine/v3.17/releases/x86_64/alpine-virt-3.17.3-x86_64.iso"
#тип загрузчика (bios/uefi)
#обязательный параметр
#тип - строка
+ #используется при создании
boot_type = "bios"
#id аккаунта
#обязательный параметр
#тип - целое число
+ #используется при создании
account_id = 138
#поддержка hot resize
#опциональный параметр
#тип - булев
- hot_resize = true
+ #используется при создании
+ #hot_resize = true
#юзернейм для образа
#опциональный параметр
#тип - целое число
- username = "userx"
+ #используется при создании
+ #username = "userx"
#пароль для образа
#опциональный параметр
#тип - строка
- password = "passx"
+ #используется при создании
+ #password = "passx"
#юзернейм для загрузки binary media
#опциональный параметр
#тип - строка
- username_dl = "userxdl"
+ #используется при создании
+ #username_dl = "userxdl"
#пароль для загрузки binary media
#опциональный параметр
#тип - строка
- password_dl = "passxdl"
+ #используется при создании
+ #password_dl = "passxdl"
#storage endpoint provider ID
#опциональный параметр
#тип - целое число
- sep_id = 1
+ #используется при создании
+ #sep_id = 1
#pool для образа
#опциональный параметр
#тип - строка
- pool_name = "pool"
+ #используется при создании
+ #pool_name = "pool"
#архитектура образа (X86_64)
#опциональный параметр
#тип - строка
- architecture = "X86_64"
+ #используется при создании
+ #architecture = "X86_64"
- #наименование сетевого интерфейса для вашего компьютера с Linux, eth - встроенный, ens - pci слот
+ #наименование сетевого интерфейса для вашего компьютера с Linux
+ #eth - встроенный, ens - pci слот
#опциональный параметр
#тип - строка
- network_interface_naming = "ens"
+ #используется при создании
+ #network_interface_naming = "ens"
}
output "img_out" {
diff --git a/samples/cloudapi/image/resource_image_from_blank_compute/main.tf b/samples/cloudapi/image/resource_image_from_blank_compute/main.tf
index 606ec7b..ac8083c 100644
--- a/samples/cloudapi/image/resource_image_from_blank_compute/main.tf
+++ b/samples/cloudapi/image/resource_image_from_blank_compute/main.tf
@@ -5,7 +5,7 @@
3. Удалять ресурс
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
@@ -31,68 +31,63 @@ provider "decort" {
resource "decort_image_from_blank_compute" "img" {
#id виртуальной машины, созданной как blank
#обязательный параметр
- #используется для создания образа
#тип - целое число
+ #используется при создании
compute_id = 1234
#наименование образа
#обязательный параметр
- #используется для создания и обновления образа
#тип - строка
+ #используется при создании и обновлении
name = "image_name"
#тип загрузчика (bios/uefi)
#обязательный параметр
- #используется для создания образа
#тип - строка
+ #используется при создании
boot_type = "bios"
#тип образа (linux, windows и др.)
#обязательный параметр
- #используется для создания образа
#тип - строка
+ #используется при создании
type = "linux"
#юзернейм для образа
#опциональный параметр
- #используется для создания образа
#тип - строка
+ #используется при создании
#username = "userx"
#пароль для образа
#опциональный параметр
- #используется для создания образа
#тип - строка
+ #используется при создании
#password = "passx"
#id аккаунта
#опциональный параметр
- #используется для создания образа
#тип - целое число
+ #используется при создании
#account_id = 138
- #storage endpoint provider ID
- #опциональный параметр
- #используется для создания образа
- #тип - целое число
- #sep_id = 1
-
#pool для образа
#опциональный параметр
- #используется для создания образа
#тип - строка
+ #используется при создании
#pool_name = "pool"
#поддержка hot resize
#опциональный параметр
- #используется для создания образа
#тип - булев
+ #используется при создании
#hot_resize = true
#флаг для создания образа в асинхронном режиме
#опциональный параметр
- #дефолтное значение - false
+ #по умолчанию - false
#тип - булев
+ #используется при создании
#async_mode = true
}
diff --git a/samples/cloudapi/image/resource_image_from_platform_disk/main.tf b/samples/cloudapi/image/resource_image_from_platform_disk/main.tf
index 5699ada..fab98eb 100644
--- a/samples/cloudapi/image/resource_image_from_platform_disk/main.tf
+++ b/samples/cloudapi/image/resource_image_from_platform_disk/main.tf
@@ -5,7 +5,7 @@
3. Удалять ресурс
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
@@ -30,90 +30,85 @@ provider "decort" {
resource "decort_image_from_platform_disk" "img" {
#id диска
- #используется для создания образа
#обязательный параметр
#тип - целое число
+ #используется при создании
disk_id = 1234
#наименование образа
- #используется для создания и обновления образа
#обязательный параметр
#тип - строка
+ #используется при создании и обновлении
name = "image_name"
#тип загрузчика
- #используется для создания образа
#обязательный параметр
#возможные значения - bios, uefi
#тип - строка
+ #используется при создании
boot_type = "bios"
#тип образа (linux, windows и др.)
- #используется для создания образа
#обязательный параметр
#тип - строка
+ #используется при создании
type = "linux"
#архитектура образа
- #используется для создания образа
#обязательный параметр
#возможные значения - X86_64
#тип - строка
+ #используется при создании
architecture = "X86_64"
#драйверы компьютов, подходящие для данного образа
- #используется для создания образа
#обязательный параметр
#тип - массив строк
+ #используется при создании
drivers = ["KVM_X86"]
#имя пользователя для образа
- #используется для создания образа
#опциональный параметр
#тип - строка
+ #используется при создании
#username = "userx"
#пароль для образа
- #используется для создания образа
#опциональный параметр
#тип - строка
+ #используется при создании
#password = "passx"
#id аккаунта
- #используется для создания образа
#опциональный параметр
#тип - целое число
+ #используется при создании
#account_id = 138
- #id сепа для образа
- #используется для создания образа
- #опциональный параметр
- #тип - целое число
- #sep_id = 1
-
#pool для образа
- #используется для создания образа
#опциональный параметр
#тип - строка
+ #используется при создании
#pool_name = "pool"
#поддержка hot resize
- #используется для создания образа
#опциональный параметр
#тип - булев
+ #используется при создании
#hot_resize = true
#флаг загрузочного образа
- #используется для создания образа
#опциональный параметр
#по умолчанию - true
#тип - булев
+ #используется при создании
#bootable = true
#флаг для создания образа в асинхронном режиме
#опциональный параметр
#по умолчанию - false
#тип - булев
+ #используется при создании
#async_mode = true
}
diff --git a/samples/cloudapi/image/resource_image_virtual/main.tf b/samples/cloudapi/image/resource_image_virtual/main.tf
index e68e3f1..5df18d4 100644
--- a/samples/cloudapi/image/resource_image_virtual/main.tf
+++ b/samples/cloudapi/image/resource_image_virtual/main.tf
@@ -7,7 +7,7 @@
2. Удалять image virtual
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
@@ -33,14 +33,14 @@ provider "decort" {
resource "decort_image_virtual" "iv" {
#имя виртуального образа
#обязательный параметр
- #при изменении - обновляет имя виртуального образа
#тип - строка
+ #используется при создании и обновлении
name = "iv-name"
- #ID реального образа, на который будет ссылаться виртуальный
+ #id реального образа, на который будет ссылаться виртуальный
#обязательный параметр
- #при изменении - ссылается на другой реальный образ
#тип - целое число
+ #используется при создании и обновлении
link_to = 123
}
diff --git a/samples/cloudapi/k8s/data_k8ci_list/main.tf b/samples/cloudapi/k8s/data_k8ci_list/main.tf
index b692460..509d842 100644
--- a/samples/cloudapi/k8s/data_k8ci_list/main.tf
+++ b/samples/cloudapi/k8s/data_k8ci_list/main.tf
@@ -3,7 +3,7 @@
Получение информации о k8ci
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
@@ -27,56 +27,69 @@ provider "decort" {
}
data "decort_k8ci_list" "k8ci_list" {
- #поиск по ID
+ #фильтр по id кластера
#опциональный параметр
#тип - целое число
- by_id = 12
+ #by_id = 100
- #поиск по наименованию
+ #фильтр по имени кластера
#опциональный параметр
#тип - строка
- name = "name"
+ #name = "test"
- #поиск по статус
+ #фильтр по ip
#опциональный параметр
#тип - строка
- status = "status"
+ #ip_address = "test"
- #поиск по worker драйверу
+ #фильтр по id ресурсной группы
#опциональный параметр
- #тип - строка
- worker_driver = "wdriver"
+ #тип - целое число
+ #rg_id = 100
+
+ #фильтр по id балансировщика нагрузки
+ #опциональный параметр
+ #тип - целое число
+ #lb_id = 100
+
+ #фильтр по id ресурсной группы
+ #опциональный параметр
+ #тип - целое число
+ #bservice_id = 100
- #поиск по master драйверу
+ #фильтр по статусу
#опциональный параметр
#тип - строка
- master_driver = "wdriver"
+ #status = "ENABLED"
- #поиск по network плагину
+ #фильтр по техническому статусу
#опциональный параметр
#тип - строка
- network_plugin = "flannel"
+ #tech_status = "STOPPED"
- #показать выключенные K8CI
+ #включение удаленных k8s в результат
#опциональный параметр
#тип - булев
- include_disabled = true
+ #если не задан - выводятся все неудаленные данные
+ #includedeleted = true
#сортировка по одному из поддерживаемых полей
#опциональный параметр
#тип - строка
#формат - "+поле" по возрастанию / "-поле" по убыванию
- sort_by = "+name"
+ #sort_by = "+name"
- #номер страницы
+ #номер страницы для отображения
#опциональный параметр
#тип - целое число
- page = 1
+ #если не задан - выводятся все доступные данные
+ #page = 1
#размер страницы
#опциональный параметр
#тип - целое число
- size = 5
+ #если не задан - выводятся все доступные данные
+ #size = 1
}
output "output_k8ci" {
diff --git a/samples/cloudapi/k8s/data_k8s/main.tf b/samples/cloudapi/k8s/data_k8s/main.tf
index 370e8e9..8ea2b03 100644
--- a/samples/cloudapi/k8s/data_k8s/main.tf
+++ b/samples/cloudapi/k8s/data_k8s/main.tf
@@ -3,7 +3,7 @@
Получение информации о k8s кластере
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
diff --git a/samples/cloudapi/k8s/data_k8s_computes/main.tf b/samples/cloudapi/k8s/data_k8s_computes/main.tf
index 020f722..9daa4a5 100644
--- a/samples/cloudapi/k8s/data_k8s_computes/main.tf
+++ b/samples/cloudapi/k8s/data_k8s_computes/main.tf
@@ -3,7 +3,7 @@
Получения информации о виртуальных машинах кластера
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
diff --git a/samples/cloudapi/k8s/data_k8s_list/main.tf b/samples/cloudapi/k8s/data_k8s_list/main.tf
index c18c034..70f805b 100644
--- a/samples/cloudapi/k8s/data_k8s_list/main.tf
+++ b/samples/cloudapi/k8s/data_k8s_list/main.tf
@@ -3,7 +3,7 @@
Получение списка доступных кластеров
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
diff --git a/samples/cloudapi/k8s/data_k8s_list_deleted/main.tf b/samples/cloudapi/k8s/data_k8s_list_deleted/main.tf
index b5e3feb..b455c42 100644
--- a/samples/cloudapi/k8s/data_k8s_list_deleted/main.tf
+++ b/samples/cloudapi/k8s/data_k8s_list_deleted/main.tf
@@ -3,7 +3,7 @@
Получение списка удаленных кластеров
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
diff --git a/samples/cloudapi/k8s/data_k8s_wg/main.tf b/samples/cloudapi/k8s/data_k8s_wg/main.tf
index 30d23fe..e666e48 100644
--- a/samples/cloudapi/k8s/data_k8s_wg/main.tf
+++ b/samples/cloudapi/k8s/data_k8s_wg/main.tf
@@ -3,7 +3,7 @@
Получение информации о k8s кластере
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
diff --git a/samples/cloudapi/k8s/data_k8s_wg_cloud_init/main.tf b/samples/cloudapi/k8s/data_k8s_wg_cloud_init/main.tf
index e0ceb59..da8b924 100644
--- a/samples/cloudapi/k8s/data_k8s_wg_cloud_init/main.tf
+++ b/samples/cloudapi/k8s/data_k8s_wg_cloud_init/main.tf
@@ -3,7 +3,7 @@
Получение информации о мета данных рабочей группы k8s кластера
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
diff --git a/samples/cloudapi/k8s/data_k8s_wg_list/main.tf b/samples/cloudapi/k8s/data_k8s_wg_list/main.tf
index b7e2480..bfb5985 100644
--- a/samples/cloudapi/k8s/data_k8s_wg_list/main.tf
+++ b/samples/cloudapi/k8s/data_k8s_wg_list/main.tf
@@ -3,7 +3,7 @@
Получение списка доступных групп воркеров в кластере
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
diff --git a/samples/cloudapi/k8s/resource_k8s/main.tf b/samples/cloudapi/k8s/resource_k8s/main.tf
index fec659c..af2f829 100644
--- a/samples/cloudapi/k8s/resource_k8s/main.tf
+++ b/samples/cloudapi/k8s/resource_k8s/main.tf
@@ -6,7 +6,7 @@
2. Управлять кластером
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
@@ -32,284 +32,311 @@ provider "decort" {
resource "decort_k8s" "cluster" {
#имя кластера
#обязательный параметр
- #при изменении - обновляет имя кластера
#тип - строка
+ #используется при создании и обновлении
name = "tftest"
#id resource group
#обязательный параметр
#тип - целое число
+ #используется при создании
rg_id = 776
#id catalogue item
#обязательный параметр
#тип - целое число
+ #используется при создании
k8sci_id = 9
#сетевой плагин
#обязательный параметр
#тип - строка
+ #используется при создании
network_plugin = "flannel"
#имя для первой worker group, созданной в кластере
#обязательный параметр
#тип - строка
+ #используется при создании
wg_name = "workers"
- # список labels для дефолтной worker группы
- # опциональный параметр
- # тип - массив строк
- labels = ["key1=val1", "key2=val2"]
+ #список labels для дефолтной worker группы
+ #опциональный параметр
+ #тип - массив строк
+ #используется при создании
+ #labels = ["key1=val1", "key2=val2"]
- # список annotations для дефолтной worker группы
- # опциональный параметр
- # В скором времени параметры labels, annotations, taints будут полностью перенесены в блок workers
- # тип - массив строк
- annotations = ["key1=val1", "key2=val2"]
+ #список annotations для дефолтной worker группы
+ #опциональный параметр
+ #в скором времени параметры labels, annotations, taints будут полностью перенесены в блок workers
+ #тип - массив строк
+ #используется при создании
+ #annotations = ["key1=val1", "key2=val2"]
- # список taints для дефолтной worker группы
- # опциональный параметр
- # В скором времени параметры labels, annotations, taints будут полностью перенесены в блок workers
- # тип - массив строк
- taints = ["key1=value1:NoSchedule", "key2=value2:NoExecute"]
+ #список taints для дефолтной worker группы
+ #опциональный параметр
+ #в скором времени параметры labels, annotations, taints будут полностью перенесены в блок workers
+ #тип - массив строк
+ #используется при создании
+ #taints = ["key1=value1:NoSchedule", "key2=value2:NoExecute"]
#настройка мастер node или nodes
#опциональный параметр
#максимальное кол-во элементов - 1
#тип - список нод
- masters {
+ #используется при создании
+ #masters {
#кол-во node (1, 3 или 5)
#обязательный параметр
#тип - целое число
- num = 1
+ #num = 1
#кол-во cpu
#обязательный параметр
#тип - целое число
- cpu = 2
+ #cpu = 2
- #кол-во RAM в Мбайтах
+ #кол-во RAM, в МБ
#обязательный параметр
#тип - целое число
- ram = 2048
+ #ram = 2048
- #размер диска в Гбайтах
+ #размер диска, в ГБ
#обязательный параметр
#тип - целое число
- disk = 10
+ #disk = 10
#идентификатор SEP для создания загрузочных дисков для master узлов
#опциональный параметр
#тип - целое число
- sep_id = 3
+ #sep_id = 3
- #наименование MasterSEPPool используется если установлен master sepId, также может быть пустым
+ #наименование MasterSEPPool, используется если установлен master sepId, также может быть пустым
#опциональный параметр
#тип - строка
- sep_pool = "data_01"
- }
+ #sep_pool = "data_01"
+ #}
#настройка worker группы
#опциональный параметр
- #Первая указанная воркер-группа должна соответствовать изначально созданной вместе с кластером.
+ #первая указанная воркер-группа должна соответствовать изначально созданной вместе с кластером.
+ #используется при создании и обновлении
#labels, annotations, taints для дефолтной worker группы указываются в корне ресурса при создании кластера.
- workers {
+ #workers {
#имя группы
#обязательный параметр
#тип - строка
- name = "test"
+ #name = "test"
#кол-во node
#обязательный параметр
#тип - целое число
- num = 1
+ #num = 1
#кол-во cpu
#обязательный параметр
#тип - целое число
- cpu = 2
+ #cpu = 2
- #кол-во RAM в Мбайтах
+ #кол-во RAM, в МБ
#обязательный параметр
#тип - целое число
- ram = 2048
+ #ram = 2048
- #размер диска в Гбайтах
+ #размер диска, в ГБ
#обязательный параметр
#тип - целое число
- disk = 10
+ #disk = 10
- #Идентификатор SEP
+ #идентификатор SEP
#опциональный параметр
#тип - целое число
- sep_id = 1010
+ #sep_id = 1010
- #Имя SEP pool'a
+ #имя SEP pool'a
#опциональный параметр
#тип - строка
- sep_pool = "data01"
+ #sep_pool = "data01"
#тип эмулируемой системы
#опциональный параметр
#тип - строка
- chipset = "i440fx"
- }
+ #chipset = "i440fx"
+ #}
- #...Далее можно создавать произвольное кол-во дополнительных worker групп
+ #далее можно создавать произвольное кол-во дополнительных worker групп
#labels, annotations и taints для последующих групп указываются непосредственно в блоке workers
- workers {
+ #workers {
#наименование worker группы
#обязательный параметр
#тип - строка
- name = "additional_wg"
+ #name = "additional_wg"
#кол-во node
#обязательный параметр
#тип - целое число
- num = 2
+ #num = 2
#кол-во cpu
#обязательный параметр
#тип - целое число
- cpu = 2
+ #cpu = 2
- #кол-во RAM в Мбайтах
+ #кол-во RAM, в МБ
#обязательный параметр
#тип - целое число
- ram = 4096
+ #ram = 4096
- #размер диска в Гбайтах
+ #размер диска, в ГБ
#обязательный параметр
#тип - целое число
- disk = 10
+ #disk = 10
#идентификатор SEP
#опциональный параметр
#тип - целое число
- sep_id = 1010
+ #sep_id = 1010
#имя SEP pool'a
#опциональный параметр
#тип - строка
- sep_pool = "data01"
+ #sep_pool = "data01"
#тип эмулируемой системы
#опциональный параметр
#тип - строка
- chipset = "i440fx"
+ #chipset = "i440fx"
#список лейблов
#опциональный параметр
#тип - массив строк
- labels = ["label1=value1", "label2=value2"]
+ #labels = ["label1=value1", "label2=value2"]
#список аннотаций
#опциональный параметр
#тип - массив строк
- annotations = ["key1=value1", "key2=value2"]
+ #annotations = ["key1=value1", "key2=value2"]
#список taints
#опциональный параметр
#тип - массив строк
- taints = ["key1=value1:NoSchedule", "key2=value2:NoExecute"]
- }
+ #taints = ["key1=value1:NoSchedule", "key2=value2:NoExecute"]
+ #}
#id extnet
#опциональный параметр
#тип - целое число
- extnet_id = 0
+ #используется при создании
+ #extnet_id = 0
#id vins
#опциональный параметр
#тип - целое число
- vins_id = 1234
+ #используется при создании
+ #vins_id = 1234
#создать Kubernetes cluster с masters nodes с подключенным LB
#опциональный параметр
- #тип - булев
- with_lb = true
-
- # пользовательские значения sysctl для LB
- # опциональный параметр
- # тип - список мап
- lb_sysctl_params = [{ key1 = "value1", key2 = "value2" }]
-
- # позволяет создать схему отказоустройчивой LB
- # опциональный параметр
- # тип - булев
- ha_mode = true
-
- # дополнительные SAN (Subject Alternative Names) для использования в процессе автоматического выписывания сертификата Кластера Kubernetes;
- # возможность взаимодействовать с кластером по FQDN
- # параметр получает список строк – IP-адреса и/или DNS (по формату RFC 1123 c поддержкой wildcard)
- # опциональный параметр
- # тип - массив строк
- additional_sans = ["192.168.201.0", "192.168.201.1"]
-
- # используется для определения настроек и действий, которые должны быть выполнены перед запуском любого другого компонента в кластере
- # это позволяет вам настраивать такие вещи, как регистрация node, настройка network и другие задачи инициализации
- # опциональный параметр
- # тип - строка
- init_config = "{JSON string}"
-
- # используется для определения глобальных настроек и конфигураций для всего кластера
- # он включает в себя такие параметры, как имя кластера, настройки DNS, методы аутентификации и другие конфигурации в масштабах кластера
- # опциональный параметр
- # тип - строка
- cluster_config = "{JSON string}"
-
- # используется для настройки поведения и параметров Kubelet, который является агентом primary node, запускаемым на каждом node кластера
- # он включает в себя такие параметры, как IP-адрес node, распределение ресурсов, политики удаления модулей и другие конфигурации, специфичные для Kubelet
- # опциональный параметр
- # тип - строка
- kubelet_config = "{JSON string}"
-
- # используется для настройки поведения и параметров присоединения node к кластеру
- # он включает в себя такие параметры, как режим прокси-сервера, диапазоны IP-адресов кластера и другие конфигурации, специфичные для Kube-proxy
- # опциональный параметр
- # тип - строка
- kube_proxy_config = "{JSON string}"
-
- # используется для настройки поведения и параметров присоединения node к кластеру
- # он включает в себя такие параметры, как cluster's control plane endpoint, токен и ключ сертификата
- # опциональный параметр
- # тип - строка
- join_config = "{JSON string}"
-
- # описание кластера
- # опциональный параметр
- # тип - строка
- desc = "description"
-
- # перечень аргументов для cloud-init создаваемым группам узлов Worker
- # необязательный параметр
- # тип - файл с форматом в виде yaml
- cloud_init = file("initconfig.tftpl")
-
- # при создании кластре использовать подключение только к сети ExtNet
- # опциональный параметр
- # тип - булев
- extnet_only = true
-
- # добавить ssl-сертификат в формате x509 pem
- # необязательный параметр
- # тип - файл с форматом в виде x509 pem
- oidc_cert = file("ca.crt")
+ #тип - булев
+ #используется при создании
+ #with_lb = true
+
+ #пользовательские значения sysctl для LB
+ #опциональный параметр
+ #тип - список мап
+ #используется при создании и обновлении
+ #lb_sysctl_params = [{ key1 = "value1", key2 = "value2" }]
+
+ #создать схему отказоустойчивой LB
+ #опциональный параметр
+ #тип - булев
+ #используется при создании
+ #ha_mode = true
+
+ #дополнительные SAN (Subject Alternative Names) для использования в процессе автоматического выписывания сертификата Кластера Kubernetes;
+ #возможность взаимодействовать с кластером по FQDN
+ #параметр получает список строк – IP-адреса и/или DNS (по формату RFC 1123 c поддержкой wildcard)
+ #опциональный параметр
+ #тип - массив строк
+ #используется при создании
+ #additional_sans = ["192.168.201.0", "192.168.201.1"]
+
+ #используется для определения настроек и действий, которые должны быть выполнены перед запуском любого другого компонента в кластере
+ #это позволяет вам настраивать такие вещи, как регистрация node, настройка network и другие задачи инициализации
+ #опциональный параметр
+ #тип - строка
+ #используется при создании
+ #init_config = "{JSON string}"
+
+ #используется для определения глобальных настроек и конфигураций для всего кластера
+ #он включает в себя такие параметры, как имя кластера, настройки DNS, методы аутентификации и другие конфигурации в масштабах кластера
+ #опциональный параметр
+ #тип - строка
+ #используется при создании
+ #cluster_config = "{JSON string}"
+
+ #используется для настройки поведения и параметров Kubelet, который является агентом primary node, запускаемым на каждом node кластера
+ #он включает в себя такие параметры, как IP-адрес node, распределение ресурсов, политики удаления модулей и другие конфигурации, специфичные для Kubelet
+ #опциональный параметр
+ #тип - строка
+ #используется при создании
+ #kubelet_config = "{JSON string}"
+
+ #используется для настройки поведения и параметров присоединения node к кластеру
+ #он включает в себя такие параметры, как режим прокси-сервера, диапазоны IP-адресов кластера и другие конфигурации, специфичные для Kube-proxy
+ #опциональный параметр
+ #тип - строка
+ #используется при создании
+ #kube_proxy_config = "{JSON string}"
+
+ #используется для настройки поведения и параметров присоединения node к кластеру
+ #он включает в себя такие параметры, как cluster's control plane endpoint, токен и ключ сертификата
+ #опциональный параметр
+ #тип - строка
+ #используется при создании
+ #join_config = "{JSON string}"
+
+ #описание кластера
+ #опциональный параметр
+ #тип - строка
+ #используется при создании и обновлении
+ #desc = "description"
+
+ #перечень аргументов для cloud-init создаваемым группам узлов Worker
+ #опциональный параметр
+ #тип - файл с форматом в виде yaml
+ #используется при создании
+ #cloud_init = file("initconfig.tftpl")
+
+ #при создании кластера использовать подключение только к сети ExtNet
+ #опциональный параметр
+ #тип - булев
+ #используется при создании
+ #extnet_only = true
+
+ #добавить ssl-сертификат в формате x509 pem
+ #опциональный параметр
+ #тип - файл с форматом в виде x509 pem
+ #используется при создании
+ #oidc_cert = file("ca.crt")
#тип эмулируемой системы
#опциональный параметр
#тип - строка
- chipset = "i440fx"
+ #используется при создании
+ #chipset = "i440fx"
- # запуск,остановка кластера
- # опциональный параметр
- # тип - булев
- start = true
+ #запуск,остановка кластера
+ #опциональный параметр
+ #тип - булев
+ #используется при создании и обновлении
+ #start = true
- # команда destroy удаляет кластер без возможности восстановления
- # опциональный параметр
- # тип - булев
- permanently = true
+ #флаг для удаления кластера, без возможности восстановления
+ #опциональный параметр
+ #тип - булев
+ #используется при удалении
+ #permanently = true
}
diff --git a/samples/cloudapi/k8s/resource_k8s_cp/main.tf b/samples/cloudapi/k8s/resource_k8s_cp/main.tf
index 172ee9a..a291a11 100644
--- a/samples/cloudapi/k8s/resource_k8s_cp/main.tf
+++ b/samples/cloudapi/k8s/resource_k8s_cp/main.tf
@@ -8,7 +8,7 @@
4. Изменить кол-во ВМ в мастер-узле
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
@@ -35,139 +35,165 @@ resource "decort_k8s_cp" "cp" {
#название кластера
#обязательный параметр
#тип - строка
+ #используется при создании и обновлении
name = "k8s-cp"
- #K8sCI ID
+ #k8sCI ID
#обязательный параметр
#тип - целое число
+ #используется при создании
k8sci_id = 55
#плагин сети (flannel, weavenet или calico)
#обязательный параметр
#тип - строка
+ #используется при создании
network_plugin = "flannel"
#id ресурсной группы
#обязательный параметр
#тип - целое число
+ #используется при создании
rg_id = 1387
#кол-во ядер мастер-узла
#опциональный параметр
#тип - целое число
- cpu = 2
+ #используется при создании
+ #cpu = 2
- #объем RAM мастер-узла
+ #объем RAM мастер-узла, в МБ
#опциональный параметр
#тип - целое число
- ram = 2048
+ #используется при создании
+ #ram = 2048
#кол-во ВМ мастер-узла (1, 3 или 5)
#опциональный параметр
#тип - целое число
- num = 1
+ #используется при создании и обновлении
+ #num = 1
- #размер диска мастер-узла
+ #размер диска мастер-узла, в ГБ
#опциональный параметр
#тип - целое число
- disk = 10
+ #используется при создании
+ #disk = 10
#описание кластера
#опциональный параметр
#тип - строка
- desc = ""
+ #используется при создании и обновлении
+ #desc = ""
#id extnet
#опциональный параметр
#тип - целое число
- extnet_id = 0
+ #используется при создании
+ #extnet_id = 0
#id vins
#опциональный параметр
#тип - целое число
- vins_id = 1234
+ #используется при создании
+ #vins_id = 1234
#storage Endpoint ID
#опциональный параметр
#тип - целое число
- sep_id = 0
+ #используется при создании
+ #sep_id = 0
- #SEP Pool
+ #sep pool
#опциональный параметр
#тип - строка
- sep_pool = "pool"
+ #используется при создании
+ #sep_pool = "pool"
#старт/стоп кластера
#опциональный параметр
#тип - булев
- start = true
+ #используется при создании и обновлении
+ #start = true
#создать кластер с/без балансировщика нагрузки
#опциональный параметр
#тип - булев
- with_lb = true
+ #используется при создании
+ #with_lb = true
- #позволяет создать схему отказоустройчивой LB
+ #создать схему отказоустойчивой LB
#опциональный параметр
#тип - булев
- ha_mode = true
+ #используется при создании
+ #ha_mode = true
#дополнительные SAN (Subject Alternative Names) для использования в процессе автоматического выписывания сертификата Кластера Kubernetes;
#возможность взаимодействовать с кластером по FQDN
#параметр получает список строк – IP-адреса и/или DNS (по формату RFC 1123 c поддержкой wildcard)
#опциональный параметр
#тип - массив строк
- additional_sans = ["192.168.201.0","192.168.201.1"]
+ #используется при создании
+ #additional_sans = ["192.168.201.0","192.168.201.1"]
#используется для определения настроек и действий, которые должны быть выполнены перед запуском любого другого компонента в кластере
#это позволяет вам настраивать такие вещи, как регистрация node, настройка network и другие задачи инициализации
#опциональный параметр
#тип - строка
- init_config = "{JSON string}"
+ #используется при создании
+ #init_config = "{JSON string}"
#используется для определения глобальных настроек и конфигураций для всего кластера
#он включает в себя такие параметры, как имя кластера, настройки DNS, методы аутентификации и другие конфигурации в масштабах кластера
#опциональный параметр
#тип - строка
- cluster_config = "{JSON string}"
+ #используется при создании
+ #cluster_config = "{JSON string}"
#используется для настройки поведения и параметров Kubelet, который является агентом primary node, запускаемым на каждом node кластера
#он включает в себя такие параметры, как IP-адрес node, распределение ресурсов, политики удаления модулей и другие конфигурации, специфичные для Kubelet
#опциональный параметр
#тип - строка
- kubelet_config = "{JSON string}"
+ #используется при создании
+ #kubelet_config = "{JSON string}"
#используется для настройки поведения и параметров присоединения node к кластеру
#он включает в себя такие параметры, как режим прокси-сервера, диапазоны IP-адресов кластера и другие конфигурации, специфичные для Kube-proxy
#опциональный параметр
#тип - строка
- kube_proxy_config = "{JSON string}"
+ #используется при создании
+ #kube_proxy_config = "{JSON string}"
#используется для настройки поведения и параметров присоединения node к кластеру
#он включает в себя такие параметры, как cluster's control plane endpoint, токен и ключ сертификата
#опциональный параметр
#тип - строка
- join_config = "{JSON string}"
+ #используется при создании
+ #join_config = "{JSON string}"
#при создании кластре использовать подключение только к сети ExtNet
#опциональный параметр
#тип - булев
- extnet_only = true
+ #используется при создании
+ #extnet_only = true
#добавить ssl-сертификат в формате x509 pem
- #необязательный параметр
+ #опциональный параметр
#тип - файл с форматом в виде x509 pem
- oidc_cert = file("ca.crt")
+ #используется при создании
+ #oidc_cert = file("ca.crt")
#пользовательские значения sysctl для LB
#опциональный параметр
#тип - список мап
- lb_sysctl_params = [{ key1 = "value1", key2 = "value2" }]
+ #используется при создании и обновлении
+ #lb_sysctl_params = [{ key1 = "value1", key2 = "value2" }]
- #команда destroy удаляет кластер без возможности восстановления
+ #флаг для удаления кластера, без возможности восстановления
#опциональный параметр
#тип - булев
- permanently = true
+ #используется при удалении
+ #permanently = true
}
diff --git a/samples/cloudapi/k8s/resource_k8s_wg/main.tf b/samples/cloudapi/k8s/resource_k8s_wg/main.tf
index 49ab513..62770b3 100644
--- a/samples/cloudapi/k8s/resource_k8s_wg/main.tf
+++ b/samples/cloudapi/k8s/resource_k8s_wg/main.tf
@@ -5,7 +5,7 @@
1. Создавать wg
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
@@ -33,48 +33,55 @@ resource "decort_k8s_wg" "wg" {
#id экземпляра k8s
#обязательный параметр
#тип - целое число
+ #используется при создании
k8s_id = 1234
#имя worker group
#обязательный параметр
#тип - строка
+ #используется при создании
name = "workers-2"
- #количество worker node для создания
+ #количество worker node
#опциональный параметр
#тип - целое число
- #по - умолчанию - 1
- num = 2
+ #по умолчанию - 1
+ #используется при создании и обновлении
+ #num = 2
#количество cpu для 1 worker node
#опциональный параметр
#тип - целое число
- #по - умолчанию - 1
- cpu = 1
+ #по умолчанию - 1
+ #используется при создании
+ #cpu = 1
- #количество RAM для одной worker node в Мбайтах
+ #количество RAM для одной worker node, в МБ
#опциональный параметр
#тип - целое число
- #по-умолчанию - 1024
- ram = 1024
+ #по умолчанию - 1024
+ #используется при создании
+ #ram = 1024
#тип эмулируемой системы
#опциональный параметр
#тип - строка
- chipset = "i440fx"
+ #используется при создании
+ #chipset = "i440fx"
- #размер загрузочного диска для worker node, в Гбайтах
+ #размер загрузочного диска для worker node, в ГБ
#опциональный параметр
#тип - целое число
- #по - умолчанию - 0
+ #по умолчанию - 0
#если установлен параметр 0, то размер диска будет равен размеру образа
- disk = 10
+ #используется при создании
+ #disk = 10
- #Перечень аргументов для cloud-init для виртуальных машин worker групп
+ #перечень аргументов для cloud-init для виртуальных машин worker групп
#опциональный параметр
#тип - файл с форматом в виде yaml
- #используется при создании и обновлении ресурса
- cloud_init = file("initconfig.tftpl")
+ #используется при создании и обновлении
+ #cloud_init = file("initconfig.tftpl")
}
diff --git a/samples/cloudapi/kvmvm/data_kvmvm/main.tf b/samples/cloudapi/kvmvm/data_kvmvm/main.tf
index 8b7074c..41307ee 100644
--- a/samples/cloudapi/kvmvm/data_kvmvm/main.tf
+++ b/samples/cloudapi/kvmvm/data_kvmvm/main.tf
@@ -3,7 +3,7 @@
Получение данных о compute (виртуальной машине)
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
diff --git a/samples/cloudapi/kvmvm/data_kvmvm_audits/main.tf b/samples/cloudapi/kvmvm/data_kvmvm_audits/main.tf
index fd2507e..b8a627c 100644
--- a/samples/cloudapi/kvmvm/data_kvmvm_audits/main.tf
+++ b/samples/cloudapi/kvmvm/data_kvmvm_audits/main.tf
@@ -3,7 +3,7 @@
Получение данных об аудитах compute (виртуальной машине)
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
diff --git a/samples/cloudapi/kvmvm/data_kvmvm_get_audits/main.tf b/samples/cloudapi/kvmvm/data_kvmvm_get_audits/main.tf
index 8a5f0b7..0a19488 100644
--- a/samples/cloudapi/kvmvm/data_kvmvm_get_audits/main.tf
+++ b/samples/cloudapi/kvmvm/data_kvmvm_get_audits/main.tf
@@ -3,7 +3,7 @@
Получение данных об аудитах compute (виртуальной машине)
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
diff --git a/samples/cloudapi/kvmvm/data_kvmvm_get_console_url/main.tf b/samples/cloudapi/kvmvm/data_kvmvm_get_console_url/main.tf
index 9c3fdab..e6e00ad 100644
--- a/samples/cloudapi/kvmvm/data_kvmvm_get_console_url/main.tf
+++ b/samples/cloudapi/kvmvm/data_kvmvm_get_console_url/main.tf
@@ -3,7 +3,7 @@
Получение url compute (виртуальной машины)
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
diff --git a/samples/cloudapi/kvmvm/data_kvmvm_get_log/main.tf b/samples/cloudapi/kvmvm/data_kvmvm_get_log/main.tf
index 1593237..14ea3c4 100644
--- a/samples/cloudapi/kvmvm/data_kvmvm_get_log/main.tf
+++ b/samples/cloudapi/kvmvm/data_kvmvm_get_log/main.tf
@@ -3,7 +3,7 @@
Получение логов compute (виртуальной машины)
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
diff --git a/samples/cloudapi/kvmvm/data_kvmvm_list/main.tf b/samples/cloudapi/kvmvm/data_kvmvm_list/main.tf
index 84cbfc4..ed09158 100644
--- a/samples/cloudapi/kvmvm/data_kvmvm_list/main.tf
+++ b/samples/cloudapi/kvmvm/data_kvmvm_list/main.tf
@@ -3,7 +3,7 @@
Получение данных об списке compute (виртуальных машин)
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
@@ -80,7 +80,7 @@ data "decort_kvmvm_list" "compute_list" {
#флаг влючения в результат удаленных балансироващиков нагрузки
#опциональный параметр
#тип - булев
- #значение по-умолчанию - false
+ #по умолчанию - false
#если не задан - выводятся все доступные неудаленные балансировщики
#includedeleted = true
diff --git a/samples/cloudapi/kvmvm/data_kvmvm_list_deleted/main.tf b/samples/cloudapi/kvmvm/data_kvmvm_list_deleted/main.tf
index e56e2c3..853f999 100644
--- a/samples/cloudapi/kvmvm/data_kvmvm_list_deleted/main.tf
+++ b/samples/cloudapi/kvmvm/data_kvmvm_list_deleted/main.tf
@@ -3,7 +3,7 @@
Получение данных о списке удаленных compute (виртуальных машин)
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
diff --git a/samples/cloudapi/kvmvm/data_kvmvm_pci_device_list/main.tf b/samples/cloudapi/kvmvm/data_kvmvm_pci_device_list/main.tf
index fde4f0e..f7c25e0 100644
--- a/samples/cloudapi/kvmvm/data_kvmvm_pci_device_list/main.tf
+++ b/samples/cloudapi/kvmvm/data_kvmvm_pci_device_list/main.tf
@@ -3,7 +3,7 @@
Получение данных о списке подключенных устройств (PCI)
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
diff --git a/samples/cloudapi/kvmvm/data_kvmvm_pfw_list/main.tf b/samples/cloudapi/kvmvm/data_kvmvm_pfw_list/main.tf
index 59dda91..c1cf5cd 100644
--- a/samples/cloudapi/kvmvm/data_kvmvm_pfw_list/main.tf
+++ b/samples/cloudapi/kvmvm/data_kvmvm_pfw_list/main.tf
@@ -3,7 +3,7 @@
Получение данных об списке port forwarding compute (виртуальных машин)
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
diff --git a/samples/cloudapi/kvmvm/data_kvmvm_snapshot_usage/main.tf b/samples/cloudapi/kvmvm/data_kvmvm_snapshot_usage/main.tf
index 46bc66c..2755d6f 100644
--- a/samples/cloudapi/kvmvm/data_kvmvm_snapshot_usage/main.tf
+++ b/samples/cloudapi/kvmvm/data_kvmvm_snapshot_usage/main.tf
@@ -3,7 +3,7 @@
Получение информации об использовании снапшотов
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
diff --git a/samples/cloudapi/kvmvm/data_kvmvm_user_list/main.tf b/samples/cloudapi/kvmvm/data_kvmvm_user_list/main.tf
index 39a8997..f5a0a80 100644
--- a/samples/cloudapi/kvmvm/data_kvmvm_user_list/main.tf
+++ b/samples/cloudapi/kvmvm/data_kvmvm_user_list/main.tf
@@ -3,7 +3,7 @@
Получение данных об юзерах compute (виртуальной машины)
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
diff --git a/samples/cloudapi/kvmvm/data_kvmvm_vgpu_list/main.tf b/samples/cloudapi/kvmvm/data_kvmvm_vgpu_list/main.tf
index 4982a55..4f6a677 100644
--- a/samples/cloudapi/kvmvm/data_kvmvm_vgpu_list/main.tf
+++ b/samples/cloudapi/kvmvm/data_kvmvm_vgpu_list/main.tf
@@ -3,7 +3,7 @@
Получение данных о списке подключенных графических процессоров
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
diff --git a/samples/cloudapi/kvmvm/resource_kvmvm/main.tf b/samples/cloudapi/kvmvm/resource_kvmvm/main.tf
index 4fdf89a..cc652cc 100644
--- a/samples/cloudapi/kvmvm/resource_kvmvm/main.tf
+++ b/samples/cloudapi/kvmvm/resource_kvmvm/main.tf
@@ -7,7 +7,7 @@
3. Удалять compute
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
@@ -22,9 +22,9 @@ terraform {
*/
provider "decort" {
- authenticator = "decs3o"
+ authenticator = "decs3o"
#controller_url =
- controller_url = "https://ds1.digitalenergy.online"
+ controller_url = "https://ds1.digitalenergy.online"
#oauth2_url =
oauth2_url = "https://sso.digitalenergy.online"
allow_unverified_ssl = true
@@ -32,425 +32,499 @@ provider "decort" {
resource "decort_kvmvm" "comp" {
#имя compute
- #может быть изменен
#обязательный параметр
#тип - строка
+ #используется при создании и обновлении
name = "test-tf-compute-update-new"
#id resource group
#обязательный параметр
#тип - целое число
+ #используется при создании
rg_id = 1111
#тип драйвера для compute
#обязательный параметр
#тип - строка
#возможные значения: "SVA_KVM_X86", "KVM_X86"
+ #используется при создании
driver = "KVM_X86"
#число cpu
#обязательный параметр
#тип - целое число
+ #используется при создании и обновлении
cpu = 1
#кол-во оперативной памяти, МБ
#обязательный параметр
#тип - целое число
+ #используется при создании и обновлении
ram = 2048
#тип эмулируемой системы
#опциональный параметр
#тип - строка
#возможные значения: "i440fx", "Q35"
- chipset = "i440fx"
+ #по умолчанию - "Q35"
+ #используется при создании и обновлении
+ #chipset = "i440fx"
#размер загрузочного диска
#опциональный параметр
#тип - целое число
- boot_disk_size = 20
+ #используется при создании и обновлении
+ #boot_disk_size = 20
#id сепа для boot диска
#опциональный параметр
#тип - целое число
- sep_id = 1
+ #используется при создании
+ #sep_id = 1
#название пула
#опциональный параметр
#тип - строка
- pool = "data02"
+ #используется при создании
+ #pool = "data02"
#конфигурация cloud init
#опциональный параметр
#тип - файл в формате JSON
- cloud_init = file("initconfig.tftpl")
+ #используется при создании
+ #cloud_init = file("initconfig.tftpl")
#описание compute
#опциональный параметр
#тип - строка
- description = "test update description in tf words update"
+ #используется при создании и обновлении
+ #description = "test update description in tf words update"
#id образа диска для создания compute
#опциональный параметр
#тип - целое число
- image_id = 111
+ #используется при создании и обновлении
+ #image_id = 111
#создание без загрузочного диска в остановленном состоянии
#опциональный параметр
#если значение равно True, параметры image_id, boot_disk_size, sep_id, pool игнорируются
#тип - булев
- without_boot_disk = true
+ #используется при создании
+ #without_boot_disk = true
#необходимость выравнивать ВМ по NUMA
#опциональный параметр
#возможные значения - "none, "strict", "loose"
- #значение по умолчанию - "none"
+ #по умолчанию - "none"
#тип - строка
- numa_affinity = "loose"
+ #используется при создании и обновлении
+ #numa_affinity = "loose"
#необходимость запускать ВМ на выделенных CPU ядрах
#опциональный параметр
- #значение по умолчанию - false
+ #по умолчанию - false
#тип - булев
- cpu_pin = true
+ #используется при создании и обновлении
+ #cpu_pin = true
#необходимость использовать для выделения RAM виртуальной машины Huge Pages
#опциональный параметр
- #значение по умолчанию - false
+ #по умолчанию - false
#тип - булев
- hp_backed = true
+ #используется при создании и обновлении
+ #hp_backed = true
#список PCI девайсов
#опциональный параметр
#тип - массив целых чисел
- pci_devices = [1,2]
+ #используется при создании и обновлении
+ #pci_devices = [1, 2]
- #создание и добавление диска дял compute
+ #создание и добавление диска для compute
#опциональный параметр
#тип - список дисков
- disks {
- #Имя диска
- #Обязательный для диска параметр
+ #используется при создании и обновлении
+ #disks {
+ #имя диска
+ #обязательный для диска параметр
#тип - строка
- disk_name = "disk_name"
+ #disk_name = "disk_name"
- #Размер диска
- #Обязательный для диска параметр
- #тип - целоетчисло
- size = 5
+ #размер диска
+ #обязательный для диска параметр
+ #тип - целое число
+ #size = 5
#тип диска
#опциональный параметр
#тип - строка
- disk_type = "D"
+ #disk_type = "D"
- #id стораджа
+ #id сепа
#опциональный параметр
#тип - целое число
- sep_id = 1
+ #sep_id = 1
#название пула
#опциональный параметр
#тип - строка
- pool = "data01"
+ #pool = "data01"
#описание диска
#опциональный параметр
#тип - строка
- desc = ""
+ #desc = ""
#id образа
#опциональный параметр
#тип - целое число
- image_id = 378
+ #image_id = 378
#флаг для удаления диска
#опциональный параметр
#тип - булев
- permanently = false
- }
+ #permanently = false
+ #}
#правила affinity
#опциональный параметр
#может быть один, несколько или ни одного блока
#тип - блок правил
- affinity_rules {
+ #используется при создании и обновлении
+ #affinity_rules {
#тип правила
#обязательный параметр
#возможные значения - compute или node
#тип - строка
- topology = "compute"
+ #topology = "compute"
#строгость правила
#обязательный параметр
#возможные значения - RECOMMENDED и REQUIRED
#тип - строка
- policy = "RECOMMENDED"
+ #policy = "RECOMMENDED"
#режим проверки
#обязательный параметр
#возможные значения - ANY, EQ, NE
#тип - строка
- mode = "ANY"
+ #mode = "ANY"
#ключ правила
#обязательный параметр
#тип - строка
- key = "testkey"
+ #key = "testkey"
#ключ правила
- #необязательный параметр
+ #опциональный параметр
#тип - строка
- value = "testvalue"
- }
+ #value = "testvalue"
+ #}
#правила anti-affinity
#опциональный параметр
#может быть один, несколько или ни одного блока
- # тип - список правил
- anti_affinity_rules {
+ #тип - список правил
+ #используется при создании и обновлении
+ #anti_affinity_rules {
#тип правила
#обязательный параметр
#возможные значения - compute или node
#тип - строка
- topology = "compute"
+ #topology = "compute"
#строгость правила
#обязательный параметр
#возможные значения - RECOMMENDED и REQUIRED
#тип - строка
- policy = "RECOMMENDED"
+ #policy = "RECOMMENDED"
#режим проверки
#обязательный параметр
#возможные значения - ANY, EQ, NE
#тип - строка
- mode = "ANY"
+ #mode = "ANY"
#ключ правила
#обязательный параметр
#тип - строка
- key = "testkey"
+ #key = "testkey"
#ключ правила
- #необязательный параметр
+ #опциональный параметр
#тип -строка
- value = "testvalue"
- }
+ #value = "testvalue"
+ #}
#установка метки для вм
#опциональный параметр
#тип - строка
- affinity_label = "test4"
+ #используется при создании и обновлении
+ #affinity_label = "test4"
#наименование системы
#опциональный параметр
- #используется при создании вм
#по умолчанию - не задан
#тип - строка
- is = ""
+ #используется при создании
+ #is = ""
#назначение вм
#опциональный параметр
- #используется при создании вм
#по умолчанию - не задан
#тип - строка
- ipa_type = ""
+ #используется при создании
+ #ipa_type = ""
#id экстра дисков
#опциональный параметр
#тип - список целых чисел
- extra_disks = [1234, 4322, 1344]
+ #используется при создании и обновлении
+ #extra_disks = [1234, 4322, 1344]
- #присоединения сетей и удаление сетей в компьюте
+ #присоединение сетей и удаление сетей в компьюте
#опциональный параметр
#тип - блок сетей
- network {
+ #используется при создании и обновлении
+ #network {
#тип сети
#обязательный параметр
#тип - строка
#возможные значения - "VINS", "EXTNET", "VFNIC", "DPDK" (при выборе типа DPDK, необходимо указать hp_backed = true)
- net_type = "VINS"
+ #net_type = "VINS"
#id сети
#обязательный параметр
#тип - целое число
- net_id = 1234
+ #net_id = 1234
#ip адрес входящий в сеть
#опциональный параметр
#тип - строка
- ip_address = "127.0.0.1"
+ #ip_address = "127.0.0.1"
+
+ #mac-адрес интерфейса компьюта
+ #опциональный параметр
+ #тип - строка
+ #mac = "52:54:01:12:34:60"
#вес сети, указывается при необходимости указания порядка подключения сетей
#первой подключается сеть с наименьшим весом
#сеть с нулевым или неуказанным весом имеет наименьший приоритет
#опциональный параметр
#тип - целое число
- weight = 15
+ #weight = 15
#максимальный объём данных, который может быть передан за одну итерацию
#используется только с сетями типа "DPDK"
#возможные значения - 1-9216
#опциональный параметр
#тип - целое число
- mtu = 1500
- }
+ #mtu = 1500
+ #}
#добавление и удаление тэгов
#опциональный параметр
#тип - блок тэгов
- tags {
- #Ключ для тэга
- #Обязательный параметр
+ #используется при создании и обновлении
+ #tags {
+ #ключ для тэга
+ #обязательный параметр
#тип - строка
- key = "key"
+ #key = "key"
#значения тэга
#обязательный параметр
#тип - строка
- value = "value"
- }
+ #value = "value"
+ #}
#добавление и удаление port forwarding
#опциональный параметр
#тип - блок переадресации портов
- port_forwarding {
+ #используется при создании и обновлении
+ #port_forwarding {
#номер внешнего начального порта для правила
- #Обязательный параметр
+ #обязательный параметр
#тип - целое число
- public_port_start = 2023
+ #public_port_start = 2023
#номер внешнего последнего порта для правила
#опциональный параметр
#тип - целое число
#по умолчанию - -1
- public_port_end = 2023
+ #public_port_end = 2023
#номер внутреннего базового порта
#обязательный параметр
#тип - целое число
- local_port = 80
+ #local_port = 80
#сетевой протокол
- #Обязательный параметр
+ #обязательный параметр
#тип - строка
- proto = "tcp"
- }
+ #proto = "tcp"
+ #}
#предоставить/забрать пользователю доступ к компьюту
#опциональный параметр
#тип - блок прав пользователя
- user_access {
+ #используется при создании и обновлении
+ #user_access {
#имя юзера, которому предоставляем доступ
#обязательный параметр
#тип - строка
- username = "kasim_baybikov_1@decs3o"
+ #username = "kasim_baybikov_1@decs3o"
#права: 'R' - только на чтение, 'RCX' - чтение/запись, 'ARCXDU' - админ
#обязательный параметр
#тип - строка
- access_type = "ARCXDU"
- }
+ #access_type = "ARCXDU"
+ #}
#создать/удалить снапшот компьюта
#опциональный параметр
#тип - блок снапшотов
- snapshot {
+ #используется при создании и обновлении
+ #snapshot {
#лейбл снапшота
#обязательный параметр
#тип - строка
- label = "label1"
- }
+ #label = "label1"
+ #}
#флаг для удаления снапшотов в асинхронном режиме
#опциональный параметр
- #дефолтное значение - false
+ #по умолчанию - false
#тип - булев
- snapshot_delete_async = true
+ #используется при удалении
+ #snapshot_delete_async = true
#rollback на нужный снапшот
#опциональный параметр
- #Не имеет смысла при отсутсвии снапшотов
+ #не имеет смысла при отсутсвии снапшотов
#тип - блок rollback
- rollback {
- #Лейбл снапшота
- #Обязательный параметр
+ #используется при обновлении
+ #rollback {
+ #лейбл снапшота
+ #обязательный параметр
#тип - строка
- label = "label1"
- }
+ #label = "label1"
+ #}
#вставить/удалить СD rom
#опциональный параметр
#максимальное кол-во - 1
#тип - блок cd
- cd {
+ #используется при создании и обновлении
+ #cd {
#id образа диска CD rom
#обязательный параметр
#тип - целое число
- cdrom_id = 344
- }
+ #cdrom_id = 344
+ #}
#добавить компьют на стэк
#опциональный параметр
#тип - булев
- pin_to_stack = true
+ #используется при создании и обновлении
+ #pin_to_stack = true
#список ядер для использования в механизме vcpupinning. Количество указанных ядер должно быть равно количеству виртуальных процессоров ВМ
#игнорируется если cpu_pin=false или pin_to_stack=false
#опциональный параметр
#тип - массив целых чисел
- preferred_cpu = [1234, 456]
+ #используется при создании и обновлении
+ #preferred_cpu = [1234, 456]
#флаг для старта компьюта при рестарте ноды
#опциональный параметр
#тип - булев
- auto_start_w_node = true
+ #используется при создании и обновлении
+ #auto_start_w_node = true
#флаг доступности компьюта для проведения с ним операций
#опциональный параметр
#тип - булев
- enabled = true
+ #используется при создании и обновлении
+ #enabled = true
#pause/resume компьюта
#опциональный параметр
#тип - булев
- pause = true
+ #используется при создании и обновлении
+ #pause = true
#сделать компьют заново
#опциональный параметр
#тип - булев
- reset = true
+ #используется при обновлении
+ #reset = true
#восстановить компьют из корзины
#опциональный параметр
#тип - булев
- restore = true
+ #используется при обновлении
+ #restore = true
#флаг для редеплоя компьюта
#опциональный параметр
#тип - булев
- force_stop = true
+ #используется при обновлении
+ #force_stop = true
#флаг для ресайза компьюта
#опциональный параметр
#тип - булев
- force_resize = true
+ #используется при обновлении
+ #force_resize = true
#запуск/стоп компьюта
#опциональный параметр
#тип - булев
- started = true
+ #используется при создании и обновлении
+ #started = true
#detach диска при удалении компьюта
#опциональный параметр
#тип - булев
- detach_disks = true
+ #используется при удалении
+ #detach_disks = true
+
+ #флаг для удаления компьюта, без возможности восстановления
+ #опциональный параметр
+ #тип - булев
+ #используется при удалении
+ #permanently = false
+
+ #тип вм
+ #возможные значения - linux, windows, unknown
+ #опциональный параметр
+ #тип - строка
+ #используется при создании и обновлении
+ #loader_type = "unknown"
+
+ #тип загрузки образа
+ #возможные значения - bios, uefi
+ #опциональный параметр
+ #тип - строка
+ #используется при создании и обновлении
+ #boot_type = "bios"
- #флаг для удаления компьюта
+ #изменение размера ВМ
#опциональный параметр
#тип - булев
- permanently = false
+ #используется при создании и обновлении
+ #hot_resize = false
+
+ #наименование сетевого интерфейса
+ #возможные значения - eth, ens
+ #опциональный параметр
+ #тип - строка
+ #используется при создании и обновлении
+ #network_interface_naming = "ens"
}
diff --git a/samples/cloudapi/lb/data_lb/main.tf b/samples/cloudapi/lb/data_lb/main.tf
index 03d9377..c3293b7 100644
--- a/samples/cloudapi/lb/data_lb/main.tf
+++ b/samples/cloudapi/lb/data_lb/main.tf
@@ -1,9 +1,9 @@
/*
Пример использования
-Получение информации о load balancer (балансировщик нагрузок)
+Получение информации о load balancer (балансировщик нагрузки)
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
@@ -27,7 +27,7 @@ provider "decort" {
}
data "decort_lb" "lb" {
- #id балансировщика нагрузок
+ #id балансировщика нагрузки
#обязательный параметр
#тип - целое число
lb_id = 238
diff --git a/samples/cloudapi/lb/data_lb_list/main.tf b/samples/cloudapi/lb/data_lb_list/main.tf
index 7ae1af7..0785edd 100644
--- a/samples/cloudapi/lb/data_lb_list/main.tf
+++ b/samples/cloudapi/lb/data_lb_list/main.tf
@@ -3,7 +3,7 @@
Получение списка load balancer (балансировщиков нагрузки)
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
@@ -68,10 +68,10 @@ data "decort_lb_list" "lbl" {
#тип - строка
#back_ip = "ENABLED"
- #флаг влючения в результат удаленных балансировщиков нагрузки
+ #флаг включения в результат удаленных балансировщиков нагрузки
#опциональный параметр
#тип - булев
- #значение по-умолчанию - false
+ #по умолчанию - false
#если не задан - выводятся все доступные неудаленные балансировщики
#includedeleted = true
diff --git a/samples/cloudapi/lb/data_lb_list_deleted/main.tf b/samples/cloudapi/lb/data_lb_list_deleted/main.tf
index dcc862f..a3252a5 100644
--- a/samples/cloudapi/lb/data_lb_list_deleted/main.tf
+++ b/samples/cloudapi/lb/data_lb_list_deleted/main.tf
@@ -3,7 +3,7 @@
Получение списка удаленных load balancer (балансировщиков нагрузок)
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
diff --git a/samples/cloudapi/lb/resource_lb/main.tf b/samples/cloudapi/lb/resource_lb/main.tf
index f3b19ca..56dd6ce 100644
--- a/samples/cloudapi/lb/resource_lb/main.tf
+++ b/samples/cloudapi/lb/resource_lb/main.tf
@@ -7,7 +7,7 @@
3. Удалять load balancer
/*
-#Расскомментируйте этот код
+#Раскомментируйте этот код
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
@@ -31,27 +31,31 @@ provider "decort" {
}
resource "decort_lb" "lb" {
- #id ресурсной группы для со
+ #id ресурсной группы
#обязательный параметр
#тип - целое число
+ #используется при создании
rg_id = 1111
#наименование load balancer
#обязательный параметр
#тип - строка
+ #используется при создании
name = "tf-test-lb"
#id внешней сети
#опциональный параметр
#id внешней сети и id виртуальной сети не могут быть одновременно = 0
#тип - целое число
- extnet_id = 6
+ #используется при создании
+ #extnet_id = 6
#id виртуальной сети
#опциональный параметр
#id внешней сети и id виртуальной сети не могут быть одновременно = 0
#тип - целое число
- vins_id = 758
+ #используется при создании
+ #vins_id = 758
#флаг запуска load balancer
#обязательный параметр
@@ -59,59 +63,68 @@ resource "decort_lb" "lb" {
#то для успешного старта, он должен быть доступен (enable = true)
#по умолчанию - true
#тип - булев
+ #используется при создании и обновлении
start = true
- #позволяет создать схему отказоустройчивой LB
+ #создать схему отказоустойчивой LB
#опциональный параметр
#тип - булев
- ha_mode = true
+ #используется при создании и обновлении
+ #ha_mode = true
#описание
#опциональный параметр
#тип - строка
- desc = "temp super lb for testing tf provider"
+ #используется при создании и обновлении
+ #desc = "temp super lb for testing tf provider"
#флаг доступности load balancer
#опциональный параметр
#тип - булев
- enable = true
+ #используется при создании и обновлении
+ #enable = true
#флаг перезапуска load balancer
#перезагрузка срабатывает только при изменении флага с false на true
#опциональный параметр
#тип - булев
- restart = false
+ #используется при обновлении
+ #restart = false
#флаг сброса конфигурации load balancer
#сброс срабатывает только при изменении флага с false на true
#опциональный параметр
#тип - булев
- config_reset = false
+ #используется при обновлении
+ #config_reset = false
- #флаг моментального удаления load balancer
+ #флаг для удаления load balancer, без возможности восстановления
#опциональный параметр
- #применяется при выполнении команды terraform destroy
#по умолчанию - false
#тип - булев
- permanently = false
+ #используется при удалении
+ #permanently = false
#флаг восстановления load balancer
#опциональный параметр
#восстановить можно load balancer, удаленным с флагом permanently = false
#тип - булев
- restore = true
+ #используется при обновлении
+ #restore = true
#флаг используемый при рестарте load balancer
#опциональный параметр
#при значении "true" рестарт производится на обоих нодах в HA mode
- #значение по умолчанию - true
+ #по умолчанию - true
#тип - булев
- safe = true
+ #используется при обновлении
+ #safe = true
#пользовательские значения sysctl для LB
#опциональный параметр
#тип - список мап
- sysctl_params = [{ key1 = "value1", key2 = "value2" }]
+ #используется при создании и обновлении
+ #sysctl_params = [{ key1 = "value1", key2 = "value2" }]
}
output "test" {
diff --git a/samples/cloudapi/lb/resource_lb_backend/main.tf b/samples/cloudapi/lb/resource_lb_backend/main.tf
index 89e0322..1b15280 100644
--- a/samples/cloudapi/lb/resource_lb_backend/main.tf
+++ b/samples/cloudapi/lb/resource_lb_backend/main.tf
@@ -7,7 +7,7 @@
3. Удалять backend
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
@@ -31,14 +31,16 @@ provider "decort" {
}
resource "decort_lb_backend" "lb" {
- #id балансировщика нагрузок
+ #id балансировщика нагрузки
#обязательный параметр
#тип - целое число
+ #используется при создании
lb_id = 668
#имя бекенда для создания сервера
#обязательный параметр
#тип - строка
+ #используется при создании
name = "testBackend"
#алгоритм балансировки
@@ -46,7 +48,8 @@ resource "decort_lb_backend" "lb" {
#по умолчанию - "roundrobin"
#доступные значения - "roundrobin", "static-rr", "leastconn"
#тип - строка
- lgorithm = "roundrobin"
+ #используется при создании и обновлении
+ #algorithm = "roundrobin"
#-------------------
#настройки для серверов по умолчанию
@@ -56,43 +59,50 @@ resource "decort_lb_backend" "lb" {
#опциональный параметр
#по умолчанию - 5000
#тип - целое число
- inter = 5000
+ #используется при создании и обновлении
+ #inter = 5000
#интервал между проверками доступности сервера после восстановления, в миллисекундах
#опциональный параметр
#по умолчанию - 1000
#тип - целое число
- downinter = 1000
+ #используется при создании и обновлении
+ #downinter = 1000
#кол-во проверок, которые сервер должен успешно пройти
#опциональный параметр
#по умолчанию - 2
#тип - целое число
- rise = 2
+ #используется при создании и обновлении
+ #rise = 2
#кол-во проверок, которые сервер может не пройти и после этого получить статус "unavailable"
#опциональный параметр
#по умолчанию - 2
#тип - целое число
- fall = 2
+ #используется при создании и обновлении
+ #fall = 2
#кол-во миллисекунд - время между получением сервера статуса "available" и открытием соединений
#опциональный параметр
#по умолчанию - 60000
#тип - целое число
- slowstart = 60000
+ #используется при создании и обновлении
+ #slowstart = 60000
#максимальное кол-во соединений сервера, при достижении этого кол-ва, сервер выходит из схемы балансирования
#опциональный параметр
#по умолчанию - 250
#тип - целое число
- maxconn = 250
+ #используется при создании и обновлении
+ #maxconn = 250
#максимальное кол-во соединений в очереди серевера, при достижении этого кол-ва, соединения будут перенаправлены на другой сервер
#опциональный параметр
#по умолчанию - 256
#тип - целое число
- maxqueue = 256
+ #используется при создании и обновлении
+ #maxqueue = 256
#вес сервера для балансировки
#опциональный параметр
@@ -100,7 +110,8 @@ resource "decort_lb_backend" "lb" {
#макс - 255
#по умолчанию - 100
#тип - целое число
- weight = 100
+ #используется при создании и обновлении
+ #weight = 100
timeouts {
create = "5m"
diff --git a/samples/cloudapi/lb/resource_lb_backend_server/main.tf b/samples/cloudapi/lb/resource_lb_backend_server/main.tf
index b796d38..dd63ff8 100644
--- a/samples/cloudapi/lb/resource_lb_backend_server/main.tf
+++ b/samples/cloudapi/lb/resource_lb_backend_server/main.tf
@@ -7,7 +7,7 @@
3. Удалять server
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
@@ -31,29 +31,34 @@ provider "decort" {
}
resource "decort_lb_backend_server" "lb" {
- #id балансировщика нагрузок
+ #id балансировщика нагрузки
#обязательный параметр
#тип - целое число
+ #используется при создании
lb_id = 668
#имя бекенда для создания сервера
#обязательный параметр
#тип - строка
+ #используется при создании
backend_name = "testBackend"
#имя сервера
#обязательный параметр
#тип - строка
+ #используется при создании и обновлении
name = "testServer"
#ip адрес сервера
#обязательный параметр
#тип - строка
+ #используется при создании и обновлении
address = "192.168.5.33"
#порт сервера
#обязательный параметр
#тип - целое число
+ #используется при создании и обновлении
port = 6553
#проверка доступности сервера
@@ -61,48 +66,56 @@ resource "decort_lb_backend_server" "lb" {
#по умолчанию - "enabled"
#доступные значения - "disabled", "enabled"
#тип - строка
+ #используется при создании и обновлении
#check = "enabled"
#интервал между проверками, в миллисекундах
#опциональный параметр
#по умолчанию - 5000
#тип - целое число
+ #используется при создании и обновлении
#inter = 5000
#интервал между проверками доступности сервера после восстановления, в миллисекундах
#опциональный параметр
#по умолчанию - 1000
#тип - целое число
+ #используется при создании и обновлении
#downinter = 1000
#кол-во проверок, которые сервер должен успешно пройти
#опциональный параметр
#тип - целое число
#по умолчанию - 2
+ #используется при создании и обновлении
#rise = 2
#кол-во проверок, которые сервер может не пройти и после этого получить статус "unavailable"
#опциональный параметр
#по умолчанию - 2
#тип - целое число
+ #используется при создании и обновлении
#fall = 2
#кол-во миллисекунд - время между получением сервера статуса "available" и открытием соединений
#опциональный параметр
#по умолчанию - 60000
#тип - целое число
+ #используется при создании и обновлении
#slowstart = 60000
#максимальное кол-во соединений сервера, при достижении этого кол-ва, сервер выходит из схемы балансирования
#опциональный параметр
#по умолчанию - 250
#тип - целое число
+ #используется при создании и обновлении
#maxconn = 250
#максимальное кол-во соединений в очереди серевера, при достижении этого кол-ва, соединения будут перенаправлены на другой сервер
#опциональный параметр
#по умолчанию - 256
#тип - целое число
+ #используется при создании и обновлении
#maxqueue = 256
#вес сервера для балансировки
@@ -111,6 +124,7 @@ resource "decort_lb_backend_server" "lb" {
#макс - 255
#по умолчанию - 100
#тип - целое число
+ #используется при создании и обновлении
#weight = 100
timeouts {
diff --git a/samples/cloudapi/lb/resource_lb_frontend/main.tf b/samples/cloudapi/lb/resource_lb_frontend/main.tf
index 718419d..5a874cb 100644
--- a/samples/cloudapi/lb/resource_lb_frontend/main.tf
+++ b/samples/cloudapi/lb/resource_lb_frontend/main.tf
@@ -6,7 +6,7 @@
2. Удалять frontend
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
@@ -30,19 +30,22 @@ provider "decort" {
}
resource "decort_lb_frontend" "lb" {
- #id балансировщика нагрузок
+ #id балансировщика нагрузки
#обязательный параметр
#тип - целое число
+ #используется при создании
lb_id = 668
#имя бекенда для создания фронтенда
#обязательный параметр
#тип - строка
+ #используется при создании
backend_name = "testBackend"
#имя фронтенда
#обязательный параметр
#тип - строка
+ #используется при создании
name = "testFrontend"
timeouts {
diff --git a/samples/cloudapi/lb/resource_lb_frontend_bind/main.tf b/samples/cloudapi/lb/resource_lb_frontend_bind/main.tf
index 582fd9f..253bcd3 100644
--- a/samples/cloudapi/lb/resource_lb_frontend_bind/main.tf
+++ b/samples/cloudapi/lb/resource_lb_frontend_bind/main.tf
@@ -7,7 +7,7 @@
3. Удалять привязку
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
@@ -31,29 +31,34 @@ provider "decort" {
}
resource "decort_lb_frontend_bind" "lb" {
- #id балансировщика нагрузок
+ #id балансировщика нагрузки
#обязательный параметр
#тип - целое число
+ #используется при создании
lb_id = 668
#имя фронтенда для создания привязки
#обязательный параметр
#тип - строка
+ #используется при создании
frontend_name = "testFrontend"
#наименование привязки
#обязательный параметр
#тип - строка
+ #используется при создании и обновлении
name = "testBinding"
#адрес привязки фронтенда
#обязательный параметр
#тип - строка
+ #используется при создании и обновлении
address = "111.111.111.111"
#порт для привязки фронтенда
#обязательный параметр
#тип - целое число
+ #используется при создании и обновлении
port = 1111
timeouts {
diff --git a/samples/cloudapi/location/data_location_url/main.tf b/samples/cloudapi/location/data_location_url/main.tf
index ca85b20..7c16a00 100644
--- a/samples/cloudapi/location/data_location_url/main.tf
+++ b/samples/cloudapi/location/data_location_url/main.tf
@@ -5,7 +5,7 @@
1. получать информацию об url площадки (grid/location).
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
@@ -29,6 +29,7 @@ provider "decort" {
}
data "decort_location_url" "lu" {
+ #нет входных параметров
}
output "test" {
diff --git a/samples/cloudapi/location/data_locations_list/main.tf b/samples/cloudapi/location/data_locations_list/main.tf
index 4135371..cdef3c2 100644
--- a/samples/cloudapi/location/data_locations_list/main.tf
+++ b/samples/cloudapi/location/data_locations_list/main.tf
@@ -5,7 +5,7 @@
1) получать информацию о grid_id для создания ресурсов
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
@@ -30,7 +30,7 @@ provider "decort" {
data "decort_locations_list" "ll" {
#фильтр по флагу
- #опицональный параметр
+ #опциональный параметр
#тип - строка
#flag = "some"
@@ -55,13 +55,13 @@ data "decort_locations_list" "ll" {
#формат - "+поле" по возрастанию / "-поле" по убыванию
#sort_by = "+name"
- #кол-во страниц для вывода
- #опицональный параметр
+ #номер страницы для отображения
+ #опциональный параметр
#тип - целое число
#page = 1
#размер страницы
- #опицональный параметр
+ #опциональный параметр
#тип - целое число
#size = 1
}
diff --git a/samples/cloudapi/pfw/resource_pfw/main.tf b/samples/cloudapi/pfw/resource_pfw/main.tf
index 618b788..b94e189 100644
--- a/samples/cloudapi/pfw/resource_pfw/main.tf
+++ b/samples/cloudapi/pfw/resource_pfw/main.tf
@@ -5,7 +5,7 @@
1. Создавать правила для трансляции сетевых портов
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
@@ -32,27 +32,32 @@ resource "decort_pfw" "pfw" {
#id виртуальной машины
#обязательный параметр
#тип - целое число
+ #используется при создании
compute_id = 11269
#начальный порт правила
#обязательный параметр
#тип - целое число
+ #используется при создании
public_port_start = 200
#внутренний порт
#обязательный параметр
#тип - целое число
+ #используется при создании
local_base_port = 22
#протокол соединения (tcp / udp)
#обязательный параметр
##тип - строка
+ #используется при создании
proto = "tcp"
#конечный порт (включительно)
#опциональный параметр
#тип - целое число
- public_port_end = 21321
+ #используется при создании
+ #public_port_end = 21321
}
diff --git a/samples/cloudapi/rg/data_rg/main.tf b/samples/cloudapi/rg/data_rg/main.tf
index 1703737..8f74a0f 100644
--- a/samples/cloudapi/rg/data_rg/main.tf
+++ b/samples/cloudapi/rg/data_rg/main.tf
@@ -3,7 +3,7 @@
Получение информации о ресурсной группе (RG)
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
diff --git a/samples/cloudapi/rg/data_rg_affinity_group_computes/main.tf b/samples/cloudapi/rg/data_rg_affinity_group_computes/main.tf
index 6549bb9..76c4c26 100644
--- a/samples/cloudapi/rg/data_rg_affinity_group_computes/main.tf
+++ b/samples/cloudapi/rg/data_rg_affinity_group_computes/main.tf
@@ -3,7 +3,7 @@
Получение информации о специальной группе компьютов
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
@@ -33,7 +33,7 @@ data "decort_rg_affinity_group_computes" "lc" {
rg_id = 123
#название специальной группы компьютов
- #обязательное поле
+ #обязательный параметр
#тип - строка
affinity_group = "TEST"
}
diff --git a/samples/cloudapi/rg/data_rg_affinity_groups_get/main.tf b/samples/cloudapi/rg/data_rg_affinity_groups_get/main.tf
index 3733b8e..235d226 100644
--- a/samples/cloudapi/rg/data_rg_affinity_groups_get/main.tf
+++ b/samples/cloudapi/rg/data_rg_affinity_groups_get/main.tf
@@ -3,7 +3,7 @@
Получение информации о списке компьютов из определенной группы
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
@@ -33,7 +33,7 @@ data "decort_rg_affinity_groups_get" "get_groups" {
rg_id = 123
#название специальной группы компьютов
- #обязательное поле
+ #обязательный параметр
#тип - строка
affinity_group = "TEST"
}
diff --git a/samples/cloudapi/rg/data_rg_affinity_groups_list/main.tf b/samples/cloudapi/rg/data_rg_affinity_groups_list/main.tf
index 6b8e6a4..fc633fb 100644
--- a/samples/cloudapi/rg/data_rg_affinity_groups_list/main.tf
+++ b/samples/cloudapi/rg/data_rg_affinity_groups_list/main.tf
@@ -3,7 +3,7 @@
Получение информации о списке специальных групп компьютов
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
diff --git a/samples/cloudapi/rg/data_rg_audits/main.tf b/samples/cloudapi/rg/data_rg_audits/main.tf
index 612bc19..48140d3 100644
--- a/samples/cloudapi/rg/data_rg_audits/main.tf
+++ b/samples/cloudapi/rg/data_rg_audits/main.tf
@@ -3,7 +3,7 @@
Получение информации о списке аудитов ресурсной группы
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
diff --git a/samples/cloudapi/rg/data_rg_get_resource_consumption/main.tf b/samples/cloudapi/rg/data_rg_get_resource_consumption/main.tf
index 2544904..9213eb0 100644
--- a/samples/cloudapi/rg/data_rg_get_resource_consumption/main.tf
+++ b/samples/cloudapi/rg/data_rg_get_resource_consumption/main.tf
@@ -3,7 +3,7 @@
Получение списка текущего потребления ресурсов ресурсной группы
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
diff --git a/samples/cloudapi/rg/data_rg_list/main.tf b/samples/cloudapi/rg/data_rg_list/main.tf
index 4cb7035..d311fc5 100644
--- a/samples/cloudapi/rg/data_rg_list/main.tf
+++ b/samples/cloudapi/rg/data_rg_list/main.tf
@@ -3,7 +3,7 @@
Получение информации о списке всех ресурсных групп к которым есть доступ
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
@@ -67,7 +67,7 @@ data "decort_rg_list" "rg_list" {
#lock_status = "UNLOCKED"
#отображать удаленные ресурсные группы или нет
- #необязательный параметр
+ #опциональный параметр
#тип - булев
#includedeleted = false
@@ -77,13 +77,13 @@ data "decort_rg_list" "rg_list" {
#формат - "+поле" по возрастанию / "-поле" по убыванию
#sort_by = "+name"
- #номер страницы
- #необязательный параметр
+ #номер страницы для отображения
+ #опциональный параметр
#тип - целое число
#page = 1
#размер страницы
- #необязательный параметр
+ #опциональный параметр
#тип - целое число
#size = 2
}
diff --git a/samples/cloudapi/rg/data_rg_list_computes/main.tf b/samples/cloudapi/rg/data_rg_list_computes/main.tf
index cc0cc8e..8d9f0e9 100644
--- a/samples/cloudapi/rg/data_rg_list_computes/main.tf
+++ b/samples/cloudapi/rg/data_rg_list_computes/main.tf
@@ -3,7 +3,7 @@
Получение информации о списке компьютов в ресурсной группе
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
diff --git a/samples/cloudapi/rg/data_rg_list_deleted/main.tf b/samples/cloudapi/rg/data_rg_list_deleted/main.tf
index ec1998d..cc3bac8 100644
--- a/samples/cloudapi/rg/data_rg_list_deleted/main.tf
+++ b/samples/cloudapi/rg/data_rg_list_deleted/main.tf
@@ -3,7 +3,7 @@
Получение информации о списке удаленных ресурсных групп
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
@@ -68,13 +68,13 @@ data "decort_rg_list_deleted" "list_deleted" {
#формат - "+поле" по возрастанию / "-поле" по убыванию
#sort_by = "+name"
- #номер страницы
- #необязательный параметр
+ #номер страницы для отображения
+ #опциональный параметр
#тип - целое число
#page = 1
#размер страницы
- #необязательный параметр
+ #опциональный параметр
#тип - целое число
#size = 2
}
diff --git a/samples/cloudapi/rg/data_rg_list_lb/main.tf b/samples/cloudapi/rg/data_rg_list_lb/main.tf
index 8b6e758..1233775 100644
--- a/samples/cloudapi/rg/data_rg_list_lb/main.tf
+++ b/samples/cloudapi/rg/data_rg_list_lb/main.tf
@@ -2,7 +2,7 @@
Пример использования
Получение информации о списке балансировщиков в ресурсной группе
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
diff --git a/samples/cloudapi/rg/data_rg_list_pfw/main.tf b/samples/cloudapi/rg/data_rg_list_pfw/main.tf
index 5f83a68..4747fd8 100644
--- a/samples/cloudapi/rg/data_rg_list_pfw/main.tf
+++ b/samples/cloudapi/rg/data_rg_list_pfw/main.tf
@@ -3,7 +3,7 @@
Получение информации о списке правил переадресации портов для ресурсной группы.
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
diff --git a/samples/cloudapi/rg/data_rg_list_vins/main.tf b/samples/cloudapi/rg/data_rg_list_vins/main.tf
index ddbeaa1..0fe5777 100644
--- a/samples/cloudapi/rg/data_rg_list_vins/main.tf
+++ b/samples/cloudapi/rg/data_rg_list_vins/main.tf
@@ -3,7 +3,7 @@
Получение информации о списке винсов в ресурсной группе
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
diff --git a/samples/cloudapi/rg/data_rg_resource_consumption_list/main.tf b/samples/cloudapi/rg/data_rg_resource_consumption_list/main.tf
index 22f768e..be6a1f1 100644
--- a/samples/cloudapi/rg/data_rg_resource_consumption_list/main.tf
+++ b/samples/cloudapi/rg/data_rg_resource_consumption_list/main.tf
@@ -3,7 +3,7 @@
Получение списка текущего потребления ресурсов
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
diff --git a/samples/cloudapi/rg/data_rg_usage/main.tf b/samples/cloudapi/rg/data_rg_usage/main.tf
index e2f22b9..74638ef 100644
--- a/samples/cloudapi/rg/data_rg_usage/main.tf
+++ b/samples/cloudapi/rg/data_rg_usage/main.tf
@@ -2,7 +2,7 @@
Пример использования
Получение информации об использовании ресурсов в ресурсной группе
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
diff --git a/samples/cloudapi/rg/resource_rg/main.tf b/samples/cloudapi/rg/resource_rg/main.tf
index 191ed51..f34969a 100644
--- a/samples/cloudapi/rg/resource_rg/main.tf
+++ b/samples/cloudapi/rg/resource_rg/main.tf
@@ -7,7 +7,7 @@
3. Удалять RG
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
@@ -34,79 +34,91 @@ resource "decort_resgroup" "rg" {
#имя ресурсной группы
#обязательный параметр
#тип - строка
+ #используется при создании и обновлении
name = "testing_rg_1"
#id аккаунта которому будет принадлежать ресурсная группа
#обязательный параметр
#тип - целое число
+ #используется при создании
account_id = 123
- #id сети
+ #id платформы
#обязательный параметр
#тип - целое число
+ #используется при создании
gid = 1234
#тип сети по умолчанию для этой ресурсной группы
#опциональный параметр
#виртуальные машины, созданные в этой RG, по умолчанию будут подключены к этой сети
#допустимые значения: PRIVATE, PUBLIC, NONE
- #по умолчанию: PRIVATE
+ #по умолчанию - PRIVATE
#тип - строка
- def_net_type = "NONE"
+ #используется при создании
+ #def_net_type = "NONE"
#ip cidr частной сети, если сеть по умолчанию PRIVATE
#опциональный параметр
#тип - строка
- ipcidr = "1.1.1.1"
+ #используется при создании
+ #ipcidr = "1.1.1.1"
#id внешней сети
#опциональный параметр
#тип - целое число
- ext_net_id = 123
+ #используется при создании
+ #ext_net_id = 123
#ip внешней сети
#опциональный параметр
#тип - строка
- ext_ip = "1.1.1.1"
+ #используется при создании
+ #ext_ip = "1.1.1.1"
#описание
#опциональный параметр
#тип - строка
- description = "qwerty"
+ #используется при создании и обновлении
+ #description = "qwerty"
#флаг доступности ресурсной группы
#опциональный параметр
#тип - булев
- enable = true
+ #используется при создании и обновлении
+ #enable = true
#имя пользователя
#опциональный параметр
#тип - строка
- owner = "name_user"
+ #используется при создании
+ #owner = "name_user"
#блок для предоставления прав на ресурсную группу
#опциональный параметр
#тип - блок прав доступа
- access {
+ #используется при создании и обновлении
+ #access {
#имя юзера предоставляемому права
#обязательный параметр при использовании блока
#тип - строка
- user = "kasim_baybikov_1@decs3o"
+ #user = "kasim_baybikov_1@decs3o"
#тип прав
#опциональный параметр
#тип - строка
- right = "RCX"
- }
+ #right = "RCX"
+ #}
#установить сеть по умолчанию
#опциональный параметр
#тип - блок сетей
- def_net {
+ #используется при создании и обновлении
+ #def_net {
#тип сети
#обязательный параметр при использовании блока
#тип - строка
- net_type = "PUBLIC"
+ #net_type = "PUBLIC"
#id сети
#опциональный параметр
@@ -115,67 +127,72 @@ resource "decort_resgroup" "rg" {
#имеет значение PRIVATE и net_id=0, будет выбран первый vins, определенный для этой ресурсной группы
#в противном случае net_id идентифицирует либо существующий сегмент внешней сети, либо vins
#тип - целое число
- net_id = 1234
+ #net_id = 1234
- }
+ #}
#лимиты ресурсов для ресурсной группы
#опциональный параметр
#тип - блок конфигураций
- quota {
+ #используется при создании и обновлении
+ #quota {
#максимальное количество ядер процессора
#опциональный параметр
- #значение по умолчанию: -1
+ #по умолчанию: -1
#тип - целое число
- cpu = 5
+ #cpu = 5
- #максимальный размер памяти в мегабайтах
+ #максимальный размер памяти, в МБ
#опциональный параметр
- #значение по умолчанию: -1
+ #по умолчанию: -1
#тип - целое число
- ram = 1024
+ #ram = 1024
#максимальный размер объединенных виртуальных дисков в ГБ
#опциональный параметр
- #значение по умолчанию: -1
+ #по умолчанию: -1
#тип - целое число
- disk = 180
+ #disk = 180
#максимальное количество отправленных/полученных сетевых узлов
#опциональный параметр
- #значение по умолчанию: -1
+ #по умолчанию: -1
#тип - целое число
- ext_traffic = 21
+ #ext_traffic = 21
#максимальное количество назначенных общедоступных IP-адресов
#опциональный параметр
- #значение по умолчанию: -1
+ #по умолчанию: -1
#тип - целое число
- ext_ips = 29
- }
+ #ext_ips = 29
+ #}
#список названий pools
- #необязательный параметр
+ #опциональный параметр
#игнорируется при создании ресурса, применяется только при обновлении
#тип - массив строк
+ #используется при обновлении
#uniq_pools = ["sep1_poolName1", "sep2_poolName2"]
#флаг для принудительного удаления ресурсной группы
#опциональный параметр
#тип - булев
- force = true
+ #используется при удалении
+ #force = true
- #флаг для моментального удаления ресурсной группы
+ #флаг для удаления ресурсной группы, без возможности восстановления
#опциональный параметр
#тип - булев
- permanently = true
+ #используется при удалении
+ #permanently = true
#восстановление группы после удаления
#опциональный параметр
#используется при редактировании ресурса
- #по-умолачанию - false
+ #по умолчанию - false
#тип - булев
- restore = true
+ #используется при обновлении
+ #restore = true
}
diff --git a/samples/cloudapi/sep/data_available_sep_and_pools_list/main.tf b/samples/cloudapi/sep/data_available_sep_and_pools_list/main.tf
new file mode 100644
index 0000000..91feae0
--- /dev/null
+++ b/samples/cloudapi/sep/data_available_sep_and_pools_list/main.tf
@@ -0,0 +1,44 @@
+/*
+Пример использования
+Получение данных доступных sep и pools
+*/
+
+#Раскомментируйте код ниже,
+#и внесите необходимые правки в версию и путь,
+#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
+/*
+terraform {
+ required_providers {
+ decort = {
+ source = "basis/decort/decort"
+ version = ""
+ }
+ }
+}
+*/
+
+provider "decort" {
+ authenticator = "decs3o"
+ #controller_url =
+ controller_url = "https://ds1.digitalenergy.online"
+ #oauth2_url =
+ oauth2_url = "https://sso.digitalenergy.online"
+ allow_unverified_ssl = true
+}
+
+data "decort_sep_and_pools_available_list" "ap" {
+ #идентификатор аккаунта
+ #обязательный параметр
+ #тип - целое число
+ account_id = 1111
+
+ #идентификатор ресурсной группы
+ #опциональный параметр
+ #тип - целое число
+ #rg_id = 1111
+}
+
+output "test" {
+ value = data.decort_sep_and_pools_available_list.ap
+}
+
diff --git a/samples/cloudapi/snapshot/data_snapshot_list/main.tf b/samples/cloudapi/snapshot/data_snapshot_list/main.tf
index a50181e..6ccc3e6 100644
--- a/samples/cloudapi/snapshot/data_snapshot_list/main.tf
+++ b/samples/cloudapi/snapshot/data_snapshot_list/main.tf
@@ -3,7 +3,7 @@
Получение списка snapshot
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
diff --git a/samples/cloudapi/snapshot/resource_snapshot/main.tf b/samples/cloudapi/snapshot/resource_snapshot/main.tf
index 621d819..1c5f2b5 100644
--- a/samples/cloudapi/snapshot/resource_snapshot/main.tf
+++ b/samples/cloudapi/snapshot/resource_snapshot/main.tf
@@ -7,7 +7,7 @@
3. Откатывать snapshot
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
@@ -31,28 +31,32 @@ provider "decort" {
}
resource "decort_snapshot" "s" {
- #обязательный параметр
#id вычислительной мощности
+ #обязательный параметр
#тип - целое число
+ #используется при создании
compute_id = 24074
- #обязательный параметр
#наименование snapshot
+ #обязательный параметр
#тип - строка
+ #используется при создании
label = "test_ssht_3"
#флаг отката
#опциональный параметр
- #если флаг был измеен с false на true, то произойдет откат
- #по-уолчанию - false
+ #если флаг был изменен с false на true, то произойдет откат
+ #по умолчанию - false
#тип - булев
- rollback = false
+ #используется при обновлении
+ #rollback = false
- #флаг для удаление снапшота асинхронном режиме
+ #флаг для удаления снапшота в асинхронном режиме
#опциональный параметр
#по умолчанию - false
#тип - булев
- delete_async_mode = true
+ #используется при удалении
+ #delete_async_mode = true
}
diff --git a/samples/cloudapi/stack/data_stack/main.tf b/samples/cloudapi/stack/data_stack/main.tf
index 4bd56be..c22c395 100644
--- a/samples/cloudapi/stack/data_stack/main.tf
+++ b/samples/cloudapi/stack/data_stack/main.tf
@@ -3,7 +3,7 @@
Получение stack по его id
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
@@ -27,9 +27,9 @@ provider "decort" {
}
data "decort_stack" "stack" {
+ #идентификатор стека
#обязательный параметр
#тип - целое число
- #идентификатор стека
stack_id = 2
}
diff --git a/samples/cloudapi/stack/data_stack_list/main.tf b/samples/cloudapi/stack/data_stack_list/main.tf
index 32347e5..9b91597 100644
--- a/samples/cloudapi/stack/data_stack_list/main.tf
+++ b/samples/cloudapi/stack/data_stack_list/main.tf
@@ -3,7 +3,7 @@
Получение списка stack
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
@@ -26,24 +26,24 @@ provider "decort" {
allow_unverified_ssl = true
}
data "decort_stack_list" "stack_list" {
- #необязательный параметр
- #тип - целое число
#фильтрация списка для получения информации о конкретном stack по его id
+ #опциональный параметр
+ #тип - целое число
#by_id = 2
- #необязательный параметр
- #тип - строка
#фильтрация списка для получения информации о конкретном stack по его имени
+ #опциональный параметр
+ #тип - строка
#name = "alpha-cpu-04"
- #необязательный параметр
- #тип - строка
#фильтрация списка для получения информации о конкретном stack по его типу
+ #опциональный параметр
+ #тип - строка
#type = "KVM"
- #необязательный параметр
- #тип - строка
#фильтрация списка для получения информации о конкретном stack по его статусу
+ #опциональный параметр
+ #тип - строка
#status = "ENABLED"
#сортировка по одному из поддерживаемых полей
diff --git a/samples/cloudapi/vfpool/data_vfpool/main.tf b/samples/cloudapi/vfpool/data_vfpool/main.tf
index c9b1560..b3da232 100644
--- a/samples/cloudapi/vfpool/data_vfpool/main.tf
+++ b/samples/cloudapi/vfpool/data_vfpool/main.tf
@@ -3,7 +3,7 @@
Получение информации о vfpool по его id
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
@@ -26,9 +26,9 @@ provider "decort" {
}
data "decort_vfpool" "vfpool" {
+ #идентификатор vfpool
#обязательный параметр
#тип - целое число
- #идентификатор vfpool
vfpool_id = 2
}
diff --git a/samples/cloudapi/vfpool/data_vfpool_list/main.tf b/samples/cloudapi/vfpool/data_vfpool_list/main.tf
index 3f18e1f..df516c3 100644
--- a/samples/cloudapi/vfpool/data_vfpool_list/main.tf
+++ b/samples/cloudapi/vfpool/data_vfpool_list/main.tf
@@ -3,7 +3,7 @@
Получение списка vfpool
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
@@ -28,37 +28,37 @@ provider "decort" {
data "decort_vfpool_list" "vfpool_list" {
#фильтрация списка для получения информации о конкретном vfpool по его id
- #необязательный параметр
+ #опциональный параметр
#тип - целое число
#by_id = 1
#фильтрация списка для получения информации о vfpool, которые принадлежат к определенному GRID
- #необязательный параметр
+ #опциональный параметр
#тип - целое число
#gid = 1
#фильтрация списка для получения информации о конкретном vfpool по его имени
- #необязательный параметр
+ #опциональный параметр
#тип - строка
#name = "alpha-cpu-04"
#фильтрация списка для получения информации о конкретном vfpool по его описанию
- #необязательный параметр
+ #опциональный параметр
#тип - строка
#description = "some"
#фильтрация списка для получения информации о vfpool, которые имеют соответствующий статус
- #необязательный параметр
+ #опциональный параметр
#тип - строка
#status = "ENABLED"
#фильтрация списка для получения информации о vfpool, которые доступны конкретному аккаунту
- #необязательный параметр
+ #опциональный параметр
#тип - целое число
#account_access = 1
#фильтрация списка для получения информации о vfpool, которые доступны конкретной ресурсной группе
- #необязательный параметр
+ #опциональный параметр
#тип - целое число
#rg_access = 1
diff --git a/samples/cloudapi/vgpu/data_vgpu/main.tf b/samples/cloudapi/vgpu/data_vgpu/main.tf
index 90c155f..dfe40fc 100644
--- a/samples/cloudapi/vgpu/data_vgpu/main.tf
+++ b/samples/cloudapi/vgpu/data_vgpu/main.tf
@@ -3,7 +3,7 @@
Получение данных vgpu
*/
-#Расскомментируйте код ниже,
+#Раскомментируйте код ниже,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
diff --git a/samples/cloudapi/vins/data_vins/main.tf b/samples/cloudapi/vins/data_vins/main.tf
index eb91c52..89bf771 100644
--- a/samples/cloudapi/vins/data_vins/main.tf
+++ b/samples/cloudapi/vins/data_vins/main.tf
@@ -3,7 +3,7 @@
Получение информации об уже существующем виртуальном сетевом сегменте (Virtual Network Segment, ViNS).
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
diff --git a/samples/cloudapi/vins/data_vins_audits/main.tf b/samples/cloudapi/vins/data_vins_audits/main.tf
index 4c96eff..bd3c997 100644
--- a/samples/cloudapi/vins/data_vins_audits/main.tf
+++ b/samples/cloudapi/vins/data_vins_audits/main.tf
@@ -3,7 +3,7 @@
Получение списка записей аудита для внутренней сети vins.
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
diff --git a/samples/cloudapi/vins/data_vins_ext_net_list/main.tf b/samples/cloudapi/vins/data_vins_ext_net_list/main.tf
index 5ed476d..dba2b7b 100644
--- a/samples/cloudapi/vins/data_vins_ext_net_list/main.tf
+++ b/samples/cloudapi/vins/data_vins_ext_net_list/main.tf
@@ -3,7 +3,7 @@
Получение информации о внешних сетях виртуальной сети (Vins).
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
diff --git a/samples/cloudapi/vins/data_vins_ip_list/main.tf b/samples/cloudapi/vins/data_vins_ip_list/main.tf
index 2c01628..2d377c7 100644
--- a/samples/cloudapi/vins/data_vins_ip_list/main.tf
+++ b/samples/cloudapi/vins/data_vins_ip_list/main.tf
@@ -3,7 +3,7 @@
Получение информации о списке зарезервированных IP адресов виртуальной сети (Vins)
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
diff --git a/samples/cloudapi/vins/data_vins_list/main.tf b/samples/cloudapi/vins/data_vins_list/main.tf
index 003ed51..ebd0ce7 100644
--- a/samples/cloudapi/vins/data_vins_list/main.tf
+++ b/samples/cloudapi/vins/data_vins_list/main.tf
@@ -3,7 +3,7 @@
Получение списка удаленных виртуальных сетей (Vins).
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
@@ -69,6 +69,11 @@ data "decort_vins_list" "vl" {
#формат - "+поле" по возрастанию / "-поле" по убыванию
#sort_by = "+name"
+ #поиск по статусу
+ #опциональный параметр
+ #тип - строка
+ #status = "ENABLED"
+
#номер страницы для отображения
#опциональный параметр
#тип - целое число
diff --git a/samples/cloudapi/vins/data_vins_list_deleted/main.tf b/samples/cloudapi/vins/data_vins_list_deleted/main.tf
index 67906b3..3798082 100644
--- a/samples/cloudapi/vins/data_vins_list_deleted/main.tf
+++ b/samples/cloudapi/vins/data_vins_list_deleted/main.tf
@@ -3,7 +3,7 @@
Получение списка удаленных vins
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
@@ -63,13 +63,13 @@ data "decort_vins_list_deleted" "vins_list_deleted" {
#формат - "+поле" по возрастанию / "-поле" по убыванию
#sort_by = "+name"
- #кол-во страниц для вывода
- #опицональный параметр
+ #номер страницы для отображения
+ #опциональный параметр
#тип - целое число
#page = 1
#размер страницы
- #опицональный параметр
+ #опциональный параметр
#тип - целое число
#size = 1
}
diff --git a/samples/cloudapi/vins/data_vins_nat_rule_list/main.tf b/samples/cloudapi/vins/data_vins_nat_rule_list/main.tf
index d0568cf..0e40600 100644
--- a/samples/cloudapi/vins/data_vins_nat_rule_list/main.tf
+++ b/samples/cloudapi/vins/data_vins_nat_rule_list/main.tf
@@ -3,7 +3,7 @@
Получение списка natRule vins
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
@@ -27,8 +27,8 @@ provider "decort" {
}
data "decort_vins_nat_rule_list" "vins_nat_rule_list" {
- #обязательный параметр
#id желаемого vins
+ #обязательный параметр
#тип - целое число
vins_id = 10101
diff --git a/samples/cloudapi/vins/data_vins_static_route/main.tf b/samples/cloudapi/vins/data_vins_static_route/main.tf
index e8a5b45..545c66e 100644
--- a/samples/cloudapi/vins/data_vins_static_route/main.tf
+++ b/samples/cloudapi/vins/data_vins_static_route/main.tf
@@ -3,7 +3,7 @@
Получение информации о статическом пути
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
@@ -27,13 +27,13 @@ provider "decort" {
}
data "decort_vins_static_route" "route" {
- #обязательный параметр
#id vins в котором добавлены routes
+ #обязательный параметр
#тип - целое число
vins_id = 1111
+ #id route
#обязательный параметр
- #id route
#тип - целое число
route_id = 1
}
diff --git a/samples/cloudapi/vins/data_vins_static_route_list/main.tf b/samples/cloudapi/vins/data_vins_static_route_list/main.tf
index da504b6..7143cf1 100644
--- a/samples/cloudapi/vins/data_vins_static_route_list/main.tf
+++ b/samples/cloudapi/vins/data_vins_static_route_list/main.tf
@@ -3,7 +3,7 @@
Получение информации о списке статических путей
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
@@ -27,8 +27,8 @@ provider "decort" {
}
data "decort_vins_static_route_list" "list" {
- #обязательный параметр
#id vins в котором добавлены routes
+ #обязательный параметр
#тип - целое число
vins_id = 1111
}
diff --git a/samples/cloudapi/vins/resource_vins/main.tf b/samples/cloudapi/vins/resource_vins/main.tf
index dccfd42..9c48c03 100644
--- a/samples/cloudapi/vins/resource_vins/main.tf
+++ b/samples/cloudapi/vins/resource_vins/main.tf
@@ -11,7 +11,7 @@
7. Перезапускать и редеплоить vnfdev
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
@@ -39,135 +39,154 @@ resource "decort_vins" "vins" {
#имя создаваемого ресурса
#обязательный параметр
#тип - строка
+ #используется при создании
name = "Test_name"
- #id ресурсной группы для создаения ресурса
+ #id ресурсной группы для создания ресурса
+ #должен быть указан или rg_id или account_id
#опциональный параметр
#тип - целое число
+ #используется при создании
rg_id = 10101
- #id аккаунта для создаения ресруса
+ #id аккаунта для создания ресурса
+ #должен быть указан или rg_id или account_id
#опциональный параметр
#тип - целое число
+ #используется при создании
account_id = 2023
#id внешней сети для подключения к ней ресурса
#опциональный параметр
#тип - целое число
- ext_net_id = 2222
+ #используется при создании и обновлении
+ #ext_net_id = 2222
#ip внешней сети для подключения к нему ресурса
#опциональный параметр
#тип - строка
- ext_ip_addr = "1.1.1.1"
+ #используется при создании
+ #ext_ip_addr = "1.1.1.1"
#private network IP CIDR
#опциональный параметр
#тип - строка
- ipcidr = "192.168.0.1"
+ #используется при создании
+ #ipcidr = "192.168.0.1"
#количество зарезервированных адресов на момент создания
#опциональный параметр
- #значение по умолчанию 32
+ #по умолчанию 32
#тип - целое число
- pre_reservations_num = 2
+ #используется при создании
+ #pre_reservations_num = 2
#grid (platform) ID
#опциональный параметр
#тип - целое число
- gid = 2002
+ #используется при создании
+ #gid = 2002
#описание
#опциональный параметр
#тип - строка
- desc = "Description"
+ #используется при создании и обновлении
+ #desc = "Description"
#ручное подключение и отключение ресурса
#опциональный параметр
#тип - булев
- enable = true
+ #используется при создании и обновлении
+ #enable = true
- #удаление навсегда
+ #флаг для удаления VINS, без возможности восстановления
#опциональный параметр
#тип - булев
- permanently = true
+ #используется при удалении
+ #permanently = true
#удаляет за собой все зависимые ресурсы
#опциональный параметр
#тип - булев
- force = true
+ #используется при удалении
+ #force = true
#блок для резервирования ip
#опциональный параметр
#тип - блок ip
- ip {
+ #используется при создании и обновлении
+ #ip {
#тип подключения
#обязательный параметр
#тип - строка
- type = "DHCP"
+ #type = "DHCP"
#ip который необходимо зарезервировать
#опциональный параметр
#тип - строка
- ip_addr = "192.168.5.5"
+ #ip_addr = "192.168.5.5"
#mac который необходимо зарезервировать
#опциональный параметр
#тип - строка
- mac_addr = "ff:ff:ff:ff:ff:ff"
- }
+ #mac_addr = "ff:ff:ff:ff:ff:ff"
+ #}
#блок для добавления natRule
#опциональный параметр
#тип - блок правил nat
- nat_rule {
+ #используется при создании и обновлении
+ #nat_rule {
#ip внутренний
#опциональный параметр
#тип - строка
- int_ip = "192.168.0.28"
+ #int_ip = "192.168.0.28"
#внутренний порт
#опциональный параметр
#тип - целое число
- int_port = 80
+ #int_port = 80
#начало диапазона внешних портов
#опциональный параметр
#тип - целое число
- ext_port_start = 8001
+ #ext_port_start = 8001
#конец диапазона внешних портов
#опциональный параметр
#тип - целое число
- ext_port_end = 8001
+ #ext_port_end = 8001
#протокол natRule
#опциональный параметр
#тип - строка
- proto = "tcp"
- }
+ #proto = "tcp"
+ #}
#восстановление ресурса
#опциональный параметр
#тип - булев
- restore = true
+ #используется при обновлении
+ #restore = true
#перезапуск vnfDev
#опциональный параметр
#тип - булев
- vnfdev_restart = true
+ #используется при обновлении
+ #vnfdev_restart = true
#редеплой vnfDev
#опциональный параметр
#тип - булев
- vnfdev_redeploy = true
+ #используется при обновлении
+ #vnfdev_redeploy = true
#список dns
#опциональный параметр
- #применяется при создании и редактировании ресурса
#если при создании указать пустой список, то ресурс создается с полем vnfs.dhcp.config.dns, имеющим значение по умолчанию
#если при обновлении указать пустой список, то ресурс обновит в модели поле vnfs.dhcp.config.dns с текущего значения на пустой список
#тип - список строк
+ #используется при создании и обновлении
#dns = ["1.1.1.1", "2.2.2.2"]
}
diff --git a/samples/cloudapi/vins/resource_vins_static_route/main.tf b/samples/cloudapi/vins/resource_vins_static_route/main.tf
index 2378e2c..5171ce3 100644
--- a/samples/cloudapi/vins/resource_vins_static_route/main.tf
+++ b/samples/cloudapi/vins/resource_vins_static_route/main.tf
@@ -9,7 +9,7 @@
5. Удалять доступ виртуальным машинам к static routes
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
@@ -33,24 +33,28 @@ provider "decort" {
}
resource "decort_vins_static_route" "sr" {
- #id Vins
+ #id VINS
#обязательный параметр
#тип - целое число
+ #используется при создании
vins_id = 1111
#destination network
#обязательный параметр
#тип - строка
+ #используется при создании
destination = "192.168.201.0"
#destination network mask
#обязательный параметр
#тип - строка
+ #используется при создании
netmask = "255.255.255.255"
#ip-адрес из пула свободных IP-адресов ViNS ID
#обязательный параметр
#тип - строка
+ #используется при создании
gateway = "192.168.201.40"
}
diff --git a/samples/cloudbroker/account/data_account/main.tf b/samples/cloudbroker/account/data_account/main.tf
index ebdf6ef..8ef19c1 100644
--- a/samples/cloudbroker/account/data_account/main.tf
+++ b/samples/cloudbroker/account/data_account/main.tf
@@ -3,7 +3,7 @@
Получение информации об аккаунте
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
diff --git a/samples/cloudbroker/account/data_account_audits_list/main.tf b/samples/cloudbroker/account/data_account_audits_list/main.tf
index a92dc34..83e69ec 100644
--- a/samples/cloudbroker/account/data_account_audits_list/main.tf
+++ b/samples/cloudbroker/account/data_account_audits_list/main.tf
@@ -3,7 +3,7 @@
Получение информации об использовании аккаунта
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
diff --git a/samples/cloudbroker/account/data_account_available_templates/main.tf b/samples/cloudbroker/account/data_account_available_templates/main.tf
index 80d4cfe..3281ca6 100644
--- a/samples/cloudbroker/account/data_account_available_templates/main.tf
+++ b/samples/cloudbroker/account/data_account_available_templates/main.tf
@@ -3,7 +3,7 @@
Получение информации о доступных образах, которые использует аккаунт
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
diff --git a/samples/cloudbroker/account/data_account_computes_list/main.tf b/samples/cloudbroker/account/data_account_computes_list/main.tf
index 5c79928..3faa400 100644
--- a/samples/cloudbroker/account/data_account_computes_list/main.tf
+++ b/samples/cloudbroker/account/data_account_computes_list/main.tf
@@ -3,7 +3,7 @@
Получение списка computes, используемых аккаунтом
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
diff --git a/samples/cloudbroker/account/data_account_disks_list/main.tf b/samples/cloudbroker/account/data_account_disks_list/main.tf
index ee98198..0e393cf 100644
--- a/samples/cloudbroker/account/data_account_disks_list/main.tf
+++ b/samples/cloudbroker/account/data_account_disks_list/main.tf
@@ -3,7 +3,7 @@
Получение информации о дисках, которые использует аккаунт
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
@@ -59,13 +59,13 @@ data "decort_cb_account_disks_list" "adl" {
#тип - строка
#sort_by = "+name"
- #кол-во страниц для вывода
- #опицональный параметр
+ #номер страницы для отображения
+ #опциональный параметр
#тип - целое число
#page = 1
#размер страницы
- #опицональный параметр
+ #опциональный параметр
#тип - целое число
#size = 1
diff --git a/samples/cloudbroker/account/data_account_flipgroups_list/main.tf b/samples/cloudbroker/account/data_account_flipgroups_list/main.tf
index adc6534..f953c5e 100644
--- a/samples/cloudbroker/account/data_account_flipgroups_list/main.tf
+++ b/samples/cloudbroker/account/data_account_flipgroups_list/main.tf
@@ -3,7 +3,7 @@
Получение информации о flipgroups, используемых аккаунтом
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
@@ -68,13 +68,13 @@ data "decort_cb_account_flipgroups_list" "afgl" {
#тип - строка
#sort_by = "+name"
- #кол-во страниц для вывода
- #опицональный параметр
+ #номер страницы для отображения
+ #опциональный параметр
#тип - целое число
#page = 1
#размер страницы
- #опицональный параметр
+ #опциональный параметр
#тип - целое число
#size = 1
diff --git a/samples/cloudbroker/account/data_account_get_resource_consumption/main.tf b/samples/cloudbroker/account/data_account_get_resource_consumption/main.tf
index 68d8ec6..1e03723 100644
--- a/samples/cloudbroker/account/data_account_get_resource_consumption/main.tf
+++ b/samples/cloudbroker/account/data_account_get_resource_consumption/main.tf
@@ -3,7 +3,7 @@
Получение списка текущего потребления ресурсов аккаунта
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
diff --git a/samples/cloudbroker/account/data_account_list/main.tf b/samples/cloudbroker/account/data_account_list/main.tf
index 5a70a6a..324ba0c 100644
--- a/samples/cloudbroker/account/data_account_list/main.tf
+++ b/samples/cloudbroker/account/data_account_list/main.tf
@@ -3,7 +3,7 @@
Получение всех аккаунтов,имеющихся в системе
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
diff --git a/samples/cloudbroker/account/data_account_list_deleted/main.tf b/samples/cloudbroker/account/data_account_list_deleted/main.tf
index 2b40a3c..5f19028 100644
--- a/samples/cloudbroker/account/data_account_list_deleted/main.tf
+++ b/samples/cloudbroker/account/data_account_list_deleted/main.tf
@@ -4,7 +4,7 @@
Информация предоставляется только по аккаунтам, удаленным без флага permanently
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
diff --git a/samples/cloudbroker/account/data_account_resource_consumption_list/main.tf b/samples/cloudbroker/account/data_account_resource_consumption_list/main.tf
index b156ac6..fbec27a 100644
--- a/samples/cloudbroker/account/data_account_resource_consumption_list/main.tf
+++ b/samples/cloudbroker/account/data_account_resource_consumption_list/main.tf
@@ -3,7 +3,7 @@
Получение списка текущего потребления ресурсов
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
@@ -27,6 +27,7 @@ provider "decort" {
}
data "decort_cb_account_resource_consumption_list" "rc_list" {
+ #нет входных параметров
}
output "test" {
diff --git a/samples/cloudbroker/account/data_account_rg_list/main.tf b/samples/cloudbroker/account/data_account_rg_list/main.tf
index 50794d0..357203b 100644
--- a/samples/cloudbroker/account/data_account_rg_list/main.tf
+++ b/samples/cloudbroker/account/data_account_rg_list/main.tf
@@ -3,7 +3,7 @@
Получение информации о ресурных группах, используемых аккаунтом
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
diff --git a/samples/cloudbroker/account/data_account_vins_list/main.tf b/samples/cloudbroker/account/data_account_vins_list/main.tf
index 23526cb..18c42e0 100644
--- a/samples/cloudbroker/account/data_account_vins_list/main.tf
+++ b/samples/cloudbroker/account/data_account_vins_list/main.tf
@@ -3,7 +3,7 @@
Получение списка vins, используемых аккаунтом
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
diff --git a/samples/cloudbroker/account/resource_account/main.tf b/samples/cloudbroker/account/resource_account/main.tf
index cb80e56..e5924ff 100644
--- a/samples/cloudbroker/account/resource_account/main.tf
+++ b/samples/cloudbroker/account/resource_account/main.tf
@@ -7,7 +7,7 @@
3. Удалять аккаунт
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
@@ -31,47 +31,55 @@ provider "decort" {
}
resource "decort_cb_account" "acc" {
- #имя аккаунта
+ #отображаемое имя аккаунта
#обязательный параметр
#тип - строка
- #используется при создании и редактировании аккаунта
+ #используется при создании и обновлении
account_name = "new_my_account"
- #имя пользователя - создателя аккаунта
+ #имя пользователя, для которого создается аккаунт
#обязательный параметр
#тип - строка
+ #используется при создании
username = "username@decs3o"
+ #описание
+ #опциональный параметр
+ #тип - строка
+ #используется при создании и обновлении
+ #desc = "description"
+
#доступность аккаунта
#опциональный параметр
#тип - булев
- #может применяться при создании аккаунта и редактировании аккаунта
- enable = true
+ #используется при создании и обновлении
+ #enable = true
#электронная почта, на которую будет отправлена информация о доступе
#опциональный параметр
#тип - строка
#применяется при создании аккаунта
- emailaddress = "fff@fff.ff"
+ #используется при создании
+ #emailaddress = "example@basis.ru"
#отправлять ли на электронную почту письмо о доступе
#опциональный параметр
#тип - булев
- #применяется при создании аккаунта и редактировании аккаунта
- send_access_emails = true
+ #используется при создании и обновлении
+ #send_access_emails = true
#пары sep_id и sep_pool_name
#опциональный параметр
#тип - массив строк
- #применяется при создании аккаунта и редактировании аккаунта
+ #используется при создании и обновлении
#каждая строка представляет собой пару, sepID_sepPoolName
- uniq_pools = ["sep1_poolName1", "sep2_poolName2"]
+ #uniq_pools = ["sep1_poolName1", "sep2_poolName2"]
#ограничение используемых ресурсов
#опциональный параметр
#тип - блок
- #используется при создании и редактировании
- resource_limits {
+ #используется при создании и обновлении
+ #resource_limits {
#кол-во используемых ядер cpu
#опциональный параметр
#тип - целое число
@@ -107,16 +115,17 @@ resource "decort_cb_account" "acc" {
#тип - целое число
#если установлена -1 - кол-во неограничено
#gpu_units = 2
- }
+ #}
#добавление/редактирование/удаление пользователей, к которым привязан аккаунт
#опциональный параметр
#тип - блок, кол-во таких блоков не ограничено
- /*users {
+ #используется при создании и обновлении
+ #users {
#id пользователя
#обязательный параметр
#тип - строка
- user_id = "username_2@decs3o"
+ #user_id = "username_2@decs3o"
#тип доступа пользователя
#обязательный параметр
@@ -125,45 +134,55 @@ resource "decort_cb_account" "acc" {
#R - чтение
#RCX - запись
#ARCXDU - админ
- access_type = "R"
+ #access_type = "R"
+ #}
- }
- */
#параметр распределения CPU
#опциональный параметр
#тип - строка
#если "strict" виртуальная машина не может быть запущена из-за нехватки ресурсов.
#"loose" позволяет запускать виртуальную машину, если недостаточно ресурсов.
+ #используется при создании и обновлении
#cpu_allocation_parameter = "strict"
#параметр коэффициента распределения CPU
#опциональный параметр
#тип - целое число
#один pCPU = коэффициент*vCPU (принимает нулевое или положительное значение)
+ #используется при создании и обновлении
#cpu_allocation_ratio = 1
- #мгновенное удаление аккаунта, если да - то аккаунт невозможно будет восстановить
+ #флаг для удаления аккаунта, без возможности восстановления
#опциональный параметр
#тип - булев
- #используется при удалении аккаунта
- #по-умолчанию - false
+ #по умолчанию - false
+ #используется при удалении
#permanently = true
+ #причина восстановления после удаления или отключения
+ #опциональный параметр
+ #тип - строка
+ #используется при обновлении и удалении
+ #reason = "something_reason"
+
#флаг для восстановление аккаунта из корзины
#опциональный параметр
#тип - булев
+ #используется при обновлении
#restore = true
#предоставление аккаунту доступа к конкретным образам
#опциональный параметр
#тип - массив целых чисел
+ #используется при создании и обновлении
#available_templates = [1,2]
#доступ к дополнительным функциям управления ВМ
#опциональный параметр
- #возможные значенния - "hugepages", "numa", "cpupin", "vfnic"
+ #возможные значенния - "hugepages", "numa", "cpupin", "vfnic", "dpdk, "changemac"
#тип - массив строк
+ #используется при создании и обновлении
#compute_features = ["hugepages", "numa", "cpupin", "vfnic"]
}
diff --git a/samples/cloudbroker/audit/data_audit/main.tf b/samples/cloudbroker/audit/data_audit/main.tf
index d63a5c8..f0d715e 100644
--- a/samples/cloudbroker/audit/data_audit/main.tf
+++ b/samples/cloudbroker/audit/data_audit/main.tf
@@ -3,7 +3,7 @@
Получение аудита по guid
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
diff --git a/samples/cloudbroker/audit/data_audit_linked_jobs/main.tf b/samples/cloudbroker/audit/data_audit_linked_jobs/main.tf
index e8c750a..65326d2 100644
--- a/samples/cloudbroker/audit/data_audit_linked_jobs/main.tf
+++ b/samples/cloudbroker/audit/data_audit_linked_jobs/main.tf
@@ -3,7 +3,7 @@
Получение списка заданий, связанных с указанный событием.
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
diff --git a/samples/cloudbroker/audit/data_audit_list/main.tf b/samples/cloudbroker/audit/data_audit_list/main.tf
index de2846f..9277a4e 100644
--- a/samples/cloudbroker/audit/data_audit_list/main.tf
+++ b/samples/cloudbroker/audit/data_audit_list/main.tf
@@ -3,7 +3,7 @@
Получение списка аудитов
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
@@ -68,6 +68,11 @@ data "decort_cb_audit_list" "al" {
#тип - целое число
#page = 2
+ #идентификатор запроса
+ #опциональный параметр
+ #тип - строка
+ #request_id = "35"
+
#размер страницы
#опциональный параметр
#тип - целое число
diff --git a/samples/cloudbroker/audit/data_audits_export_to_file/main.tf b/samples/cloudbroker/audit/data_audits_export_to_file/main.tf
index a5f2290..95372db 100644
--- a/samples/cloudbroker/audit/data_audits_export_to_file/main.tf
+++ b/samples/cloudbroker/audit/data_audits_export_to_file/main.tf
@@ -3,7 +3,7 @@
Получения списка аудитов в виде архива csv файлов
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
@@ -27,7 +27,8 @@ provider "decort" {
}
data "decort_cb_audits_export_to_file" "audit" {
- #путь, где будет создан архив, если не указан, создается в директории с main.tf с именем "audits.tar.gz"
+ #путь, где будет создан архив
+ #если не указан, создается в директории с main.tf с именем "audits.tar.gz"
#обязательный параметр
#тип - строка
file_path = "abcdefg.tar.gz"
diff --git a/samples/cloudbroker/disk/data_disk/main.tf b/samples/cloudbroker/disk/data_disk/main.tf
index 073383b..94116d0 100644
--- a/samples/cloudbroker/disk/data_disk/main.tf
+++ b/samples/cloudbroker/disk/data_disk/main.tf
@@ -3,7 +3,7 @@
Получение информации об уже существующем диске.
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
diff --git a/samples/cloudbroker/disk/data_disk_list/main.tf b/samples/cloudbroker/disk/data_disk_list/main.tf
index 09f9e01..b47372d 100644
--- a/samples/cloudbroker/disk/data_disk_list/main.tf
+++ b/samples/cloudbroker/disk/data_disk_list/main.tf
@@ -3,7 +3,7 @@
Получение списка доступных дисков
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
@@ -84,7 +84,7 @@ data "decort_cb_disk_list" "dl" {
#формат - "+поле" по возрастанию / "-поле" по убыванию
#sort_by = "+name"
- #кол-во страниц для вывода
+ #номер страницы для отображения
#опциональный параметр
#тип - целое число
#page = 1
diff --git a/samples/cloudbroker/disk/data_disk_list_deleted/main.tf b/samples/cloudbroker/disk/data_disk_list_deleted/main.tf
index a74192c..25060c6 100644
--- a/samples/cloudbroker/disk/data_disk_list_deleted/main.tf
+++ b/samples/cloudbroker/disk/data_disk_list_deleted/main.tf
@@ -3,7 +3,7 @@
Получение списка удаленных дисков
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
@@ -69,7 +69,7 @@ data "decort_cb_disk_list_deleted" "dld" {
#тип - строка
#sort_by = "+name"
- #кол-во страниц для вывода
+ #номер страницы для отображения
#опциональный параметр
#тип - целое число
#page = 1
diff --git a/samples/cloudbroker/disk/data_disk_list_types/main.tf b/samples/cloudbroker/disk/data_disk_list_types/main.tf
index a543b2e..41a34fb 100644
--- a/samples/cloudbroker/disk/data_disk_list_types/main.tf
+++ b/samples/cloudbroker/disk/data_disk_list_types/main.tf
@@ -3,7 +3,7 @@
Получение списка типов дисков (недетализированное)
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
diff --git a/samples/cloudbroker/disk/data_disk_list_types_detailed/main.tf b/samples/cloudbroker/disk/data_disk_list_types_detailed/main.tf
index 141785f..d366a17 100644
--- a/samples/cloudbroker/disk/data_disk_list_types_detailed/main.tf
+++ b/samples/cloudbroker/disk/data_disk_list_types_detailed/main.tf
@@ -3,7 +3,7 @@
Получение списка типов дисков, но детально
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
diff --git a/samples/cloudbroker/disk/data_disk_list_unattached/main.tf b/samples/cloudbroker/disk/data_disk_list_unattached/main.tf
index eb90678..d8cf80f 100644
--- a/samples/cloudbroker/disk/data_disk_list_unattached/main.tf
+++ b/samples/cloudbroker/disk/data_disk_list_unattached/main.tf
@@ -3,7 +3,7 @@
Получение списка доступных неприсоединенных дисков
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
diff --git a/samples/cloudbroker/disk/data_disk_replication/main.tf b/samples/cloudbroker/disk/data_disk_replication/main.tf
index 7ece417..5a0b2e8 100644
--- a/samples/cloudbroker/disk/data_disk_replication/main.tf
+++ b/samples/cloudbroker/disk/data_disk_replication/main.tf
@@ -3,7 +3,7 @@
Получение статуса репликации диска
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
diff --git a/samples/cloudbroker/disk/data_disk_snapshot/main.tf b/samples/cloudbroker/disk/data_disk_snapshot/main.tf
index 2bca628..2372758 100644
--- a/samples/cloudbroker/disk/data_disk_snapshot/main.tf
+++ b/samples/cloudbroker/disk/data_disk_snapshot/main.tf
@@ -3,7 +3,7 @@
Получение конкретного снапшота
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
diff --git a/samples/cloudbroker/disk/data_disk_snapshot_list/main.tf b/samples/cloudbroker/disk/data_disk_snapshot_list/main.tf
index 7e39ba2..87a7cd7 100644
--- a/samples/cloudbroker/disk/data_disk_snapshot_list/main.tf
+++ b/samples/cloudbroker/disk/data_disk_snapshot_list/main.tf
@@ -3,7 +3,7 @@
Получение списка снапшотов диска
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
diff --git a/samples/cloudbroker/disk/resource_disk/main.tf b/samples/cloudbroker/disk/resource_disk/main.tf
index 6dcbc45..65a0562 100644
--- a/samples/cloudbroker/disk/resource_disk/main.tf
+++ b/samples/cloudbroker/disk/resource_disk/main.tf
@@ -22,116 +22,112 @@ terraform {
*/
provider "decort" {
- authenticator = "decs3o"
+ authenticator = "decs3o"
#controller_url =
- controller_url = "https://ds1.digitalenergy.online"
+ controller_url = "https://ds1.digitalenergy.online"
#oauth2_url =
oauth2_url = "https://sso.digitalenergy.online"
allow_unverified_ssl = true
}
-resource "decort_cb_disk" "acl" {
+resource "decort_cb_disk" "my_disk01" {
#id аккаунта
#обязательный параметр
#тип - целое число
- account_id = 88366
-
- #gid
- #обязательный параметр
- #тип - целое число
- gid = 212
+ #используется при создании
+ account_id = 88366
#название диска
#обязательный параметр
#тип - строка
- disk_name = "super-disk-re"
-
- #тип диска
- #обязательный параметр
- #тип - строка
- #допустимые значения: "D", "B", "T"
- type = "D"
+ #используется при создании и обновлении
+ disk_name = "super-disk-re"
- #максимальный размер диска
+ #максимальный размер диска, в ГБ
#обязательный параметр
#тип - целое число
- #значение по умолчанию 10
- size_max = 20
+ #по умолчанию - 10
+ #используется при создании и обновлении
+ size_max = 20
#описание диска
#опциональный параметр
#тип - строка
- #desc = "description"
-
- #размер ssd
- #опциональный параметр
- #тип - целое число
- #значение по умолчанию 0
- #ssd_size = 1
+ #используется при создании и обновлении
+ #desc = "description"
#max IOPS disk can perform
#опциональный параметр
#тип - целое число
- #значение по умолчанию 2000
- #iops = 1
+ #по умолчанию - 2000
+ #используется при создании
+ #iops = 1
#sep id
#опциональный параметр
#тип - целое число
- #значение по умолчанию 0
- #sep_id = 1
+ #по умолчанию - 0
+ #используется при создании
+ #sep_id = 1
#название pool
#опциональный параметр
#тип - строка
- #pool = 1
+ #используется при создании
+ #pool = 1
#список node
#опциональный параметр
#тип - массив целых чисел
+ #используется при создании и обновлении
#node_ids = [10,11]
#флаг для восстановления диска
#опциональный параметр
#тип - булев
- #restore = true
+ #используется при обновлении
+ #restore = true
- #флаг для удаления диска
+ #флаг для удаления диска, без возможности восстановления
#опциональный параметр
#тип - булев
+ #используется при удалении
#permanently = true
#флаг поделиться диском
#опциональный параметр
#тип - булев
- #shareable = true
+ #используется при создании и обновлении
+ #shareable = true
#флаг отсоединения диска от машины перед удалением
#опциональный параметр
#тип - булев
- #detach = true
+ #используется при удалении
+ #detach = true
#настройки лимитов операций записи/чтения с диска
#опциональный параметр
#тип - блок
#тип вложенных полей - целое число
- iotune {
- read_bytes_sec = 0
- read_bytes_sec_max = 0
- read_iops_sec = 0
- read_iops_sec_max = 0
- size_iops_sec = 0
- total_bytes_sec = 0
- total_bytes_sec_max = 0
- total_iops_sec = 3000
- total_iops_sec_max = 0
- write_bytes_sec = 0
- write_bytes_sec_max = 0
- write_iops_sec = 0
- write_iops_sec_max = 0
- }
+ #используется при создании и обновлении
+ #iotune {
+ #read_bytes_sec = 0
+ #read_bytes_sec_max = 0
+ #read_iops_sec = 0
+ #read_iops_sec_max = 0
+ #size_iops_sec = 0
+ #total_bytes_sec = 0
+ #total_bytes_sec_max = 0
+ #total_iops_sec = 3000
+ #total_iops_sec_max = 0
+ #write_bytes_sec = 0
+ #write_bytes_sec_max = 0
+ #write_iops_sec = 0
+ #write_iops_sec_max = 0
+ #}
}
output "test" {
- value = decort_cb_disk.acl
+ value = decort_cb_disk.my_disk01
}
diff --git a/samples/cloudbroker/disk/resource_disk_snapshot/main.tf b/samples/cloudbroker/disk/resource_disk_snapshot/main.tf
index 757fb55..8060c01 100644
--- a/samples/cloudbroker/disk/resource_disk_snapshot/main.tf
+++ b/samples/cloudbroker/disk/resource_disk_snapshot/main.tf
@@ -3,7 +3,7 @@
Ресурс снапшота диска
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
@@ -31,23 +31,27 @@ resource "decort_cb_disk_snapshot" "ds" {
#номер диска
#обязательный параметр
#тип - целое число
+ #используется при создании
disk_id = 20100
#ярлык диска
#обязательный параметр
#тип - строка
+ #используется при создании
label = "label"
#флаг rollback
#опциональный параметр
#тип - булев
- #значение по умолчанию - false
+ #по умолчанию - false
+ #используется при создании и обновлении
#rollback = true
#timestamp
#опциональный параметр
#тип - целое число
#применимо совместно с rollback = true
+ #используется при создании и обновлении
#timestamp = 15
}
diff --git a/samples/cloudbroker/dpdknet/data_dpdknet/main.tf b/samples/cloudbroker/dpdknet/data_dpdknet/main.tf
index 719016c..d2550ee 100644
--- a/samples/cloudbroker/dpdknet/data_dpdknet/main.tf
+++ b/samples/cloudbroker/dpdknet/data_dpdknet/main.tf
@@ -3,7 +3,7 @@
Получение данных диска
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
diff --git a/samples/cloudbroker/dpdknet/data_dpdknet_list/main.tf b/samples/cloudbroker/dpdknet/data_dpdknet_list/main.tf
index 4950a18..da385d1 100644
--- a/samples/cloudbroker/dpdknet/data_dpdknet_list/main.tf
+++ b/samples/cloudbroker/dpdknet/data_dpdknet_list/main.tf
@@ -3,7 +3,7 @@
Получение списка доступных дисков
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
@@ -73,7 +73,7 @@ data "decort_cb_dpdknet_list" "dl" {
#формат - "+поле" по возрастанию / "-поле" по убыванию
#sort_by = "+name"
- #кол-во страниц для вывода
+ #номер страницы для отображения
#опциональный параметр
#тип - целое число
#page = 1
diff --git a/samples/cloudbroker/dpdknet/resource_dpdknet/main.tf b/samples/cloudbroker/dpdknet/resource_dpdknet/main.tf
index b716521..d04c945 100644
--- a/samples/cloudbroker/dpdknet/resource_dpdknet/main.tf
+++ b/samples/cloudbroker/dpdknet/resource_dpdknet/main.tf
@@ -34,42 +34,50 @@ resource "decort_cb_dpdknet" "dpdk" {
#название
#обязательный параметр
#тип - строка
+ #используется при создании и обновлении
name = "dpdk-name"
#gid
#обязательный параметр
#тип - целое число
+ #используется при создании
gid = 212
- #vlanid для тегирования траффика на интерфейсе для компьюта
+ #vlanid для тегирования трафика на интерфейсе для компьюта
#обязательный параметр
#тип - целое число
+ #используется при создании и обновлении
vlan_id = 123
- #OVS bridge в котором будут создаваться интерфейсы для компьютов, созданные из этой сети
+ #ovs bridge в котором будут создаваться интерфейсы для компьютов, созданные из этой сети
#обязательный параметр
#тип - строка
+ #используется при создании и обновлении
ovs_bridge = "OVSBridge"
#описание сети
#опциональный параметр
#тип - строка
+ #используется при создании и обновлении
#desc = "description"
#список id аккаунтов, которым может быть выделена сеть в эксклюзивное пользование
#опциональный параметр
#тип - массив целых чисел
+ #используется при создании и обновлении
#account_access = [10,11]
#список id ресурсных групп, которым может быть выделена сеть в эксклюзивное пользование
#опциональный параметр
#тип - массив целых чисел
+ #используется при создании и обновлении
#rg_access = [10,11]
#флаг доступности сети для проведения с ней операций
#опциональный параметр
#по умолчанию - false
#тип - булев
+ #используется при создании и обновлении
#enabled = true
}
diff --git a/samples/cloudbroker/extnet/data_extnet/main.tf b/samples/cloudbroker/extnet/data_extnet/main.tf
index 898d83f..9e34247 100644
--- a/samples/cloudbroker/extnet/data_extnet/main.tf
+++ b/samples/cloudbroker/extnet/data_extnet/main.tf
@@ -3,7 +3,7 @@
Получение информации о внешней сети
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
diff --git a/samples/cloudbroker/extnet/data_extnet_default/main.tf b/samples/cloudbroker/extnet/data_extnet_default/main.tf
index 3bdfa5a..0864151 100644
--- a/samples/cloudbroker/extnet/data_extnet_default/main.tf
+++ b/samples/cloudbroker/extnet/data_extnet_default/main.tf
@@ -1,9 +1,9 @@
/*
Пример использования
-Получение информации о доступной внешней сети по-умолчанию
+Получение информации о доступной внешней сети по умолчанию
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
@@ -27,6 +27,7 @@ provider "decort" {
}
data "decort_cb_extnet_default" "ed" {
+ #нет входных параметров
}
output "default_net_id_out" {
diff --git a/samples/cloudbroker/extnet/data_extnet_list/main.tf b/samples/cloudbroker/extnet/data_extnet_list/main.tf
index c77bf50..a48392d 100644
--- a/samples/cloudbroker/extnet/data_extnet_list/main.tf
+++ b/samples/cloudbroker/extnet/data_extnet_list/main.tf
@@ -3,7 +3,7 @@
Получение списка внешних сетей
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
@@ -68,7 +68,7 @@ data "decort_cb_extnet_list" "ex_list" {
#формат - "+поле" по возрастанию / "-поле" по убыванию
#sort_by = "+name"
- #кол-во страниц для вывода
+ #номер страницы для отображения
#опциональный параметр
#тип - целое число
#page = 1
diff --git a/samples/cloudbroker/extnet/data_extnet_reserved_ip_list/main.tf b/samples/cloudbroker/extnet/data_extnet_reserved_ip_list/main.tf
index 5341a8d..62dab23 100644
--- a/samples/cloudbroker/extnet/data_extnet_reserved_ip_list/main.tf
+++ b/samples/cloudbroker/extnet/data_extnet_reserved_ip_list/main.tf
@@ -3,7 +3,7 @@
Получение информации о зарезервированных IP адресах или пуле адресов
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
diff --git a/samples/cloudbroker/extnet/data_extnet_static_route/main.tf b/samples/cloudbroker/extnet/data_extnet_static_route/main.tf
index 985e6ed..0e2c7f2 100644
--- a/samples/cloudbroker/extnet/data_extnet_static_route/main.tf
+++ b/samples/cloudbroker/extnet/data_extnet_static_route/main.tf
@@ -3,7 +3,7 @@
Получение информации о static routes по id в данном extnet
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
@@ -27,13 +27,13 @@ provider "decort" {
}
data "decort_cb_extnet_static_route" "route" {
- #обязательный параметр
#id extnet в котором добавлены routes
+ #обязательный параметр
#тип - целое число
extnet_id = 1111
+ #id route
#обязательный параметр
- #id route
#тип - целое число
route_id = 1
}
diff --git a/samples/cloudbroker/extnet/data_extnet_static_route_list/main.tf b/samples/cloudbroker/extnet/data_extnet_static_route_list/main.tf
index 9fb387d..3ec48b1 100644
--- a/samples/cloudbroker/extnet/data_extnet_static_route_list/main.tf
+++ b/samples/cloudbroker/extnet/data_extnet_static_route_list/main.tf
@@ -3,7 +3,7 @@
Получение списка static routes в данном extnet
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
@@ -27,8 +27,8 @@ provider "decort" {
}
data "decort_cb_extnet_static_route_list" "list" {
- #обязательный параметр
#id extnet в котором добавлены routes
+ #обязательный параметр
#тип - целое число
extnet_id = 1111
}
diff --git a/samples/cloudbroker/extnet/resource_extnet/main.tf b/samples/cloudbroker/extnet/resource_extnet/main.tf
index 69462a7..00de923 100644
--- a/samples/cloudbroker/extnet/resource_extnet/main.tf
+++ b/samples/cloudbroker/extnet/resource_extnet/main.tf
@@ -9,7 +9,7 @@
5. Удалять доступ аккаунтов к extnet
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
@@ -25,9 +25,9 @@
*/
provider "decort" {
- authenticator = "decs3o"
+ authenticator = "decs3o"
#controller_url =
- controller_url = "https://ds1.digitalenergy.online"
+ controller_url = "https://ds1.digitalenergy.online"
#oauth2_url =
oauth2_url = "https://sso.digitalenergy.online"
allow_unverified_ssl = true
@@ -37,165 +37,189 @@ resource "decort_cb_extnet" "new_extnet" {
#наименование внешней сети
#обязательный параметр
#тип - строка
+ #используется при создании
name = "test_extnet"
#id платформы
#обязательный параметр
#тип - целое число
+ #используется при создании
gid = 500
- #CIDR
+ #cidr
#обязательный параметр
#тип - строка
+ #используется при создании
ipcidr = "192.168.0.0/24"
#id виртуальной локальной сети
#обязательный параметр
#тип - целое число
+ #используется при создании
vlan_id = 111
- #IP-адрес шлюза внешней сети
+ #ip-адрес шлюза внешней сети
#опциональный параметр
#тип - строка
- #gateway = "test desc"
+ #используется при создании
+ #gateway = "1.1.1.1"
#cписок DNS адресов
#опциональный параметр
#тип - массив строк
+ #используется при создании и обновлении
#dns = ["8.8.8.8", "9.9.9.9"]
#список NTP адресов
#опциональный параметр
#тип - массив строк
+ #используется при создании и обновлении
#ntp = ["ntp0.ntp-servers.net", "ntp1.ntp-servers.net"]
- #IP-адреса для проверки доступности сети
+ #ip-адреса для проверки доступности сети
#опциональный параметр
#тип - массив строк
+ #используется при создании
#check_ips = ["191.255.0.0,", "191.255.0.0,"]
#если true - DHCP-сервер создан не будет
#опциональный параметр
#тип - булев
+ #используется при создании
#virtual = true
#описание
#опциональный параметр
#тип - строка
+ #используется при создании и обновлении
#desc = "test desc"
#начало диапазона IP-адресов
#опциональный параметр
#тип - строка
+ #используется при создании
#start_ip = "191.255.0.0"
#окончание диапазона IP-адресов
#опциональный параметр
#тип - строка
+ #используется при создании
#end_ip = "191.255.0.40"
- #IP с которым будет создан vnfdev
+ #ip с которым будет создан vnfdev
#опциональный параметр
#тип - строка
+ #используется при создании
#vnfdev_ip = "191.255.0.20"
#количество предварительно созданных бронирований
#опциональный параметр
#тип - целое число
#по умолчанию - 128
+ #используется при создании
#pre_reservations_num = 128
-
+
#имя bridge Openvswitch для подключения к внешней сети
#опциональный параметр
#тип - строка
+ #используется при создании
#ovs_bridge = "some"
#включение/выключение внешней сети
#опциональный параметр
#тип - булев
+ #используется при создании и обновлении
#enable = true
#сделать сеть сетью по умолчанию
#опциональный параметр
#тип - булев
+ #используется при обновлении
#set_default = true
#список исключенных IP адресов
#опциональный параметр
#тип - массив строк
+ #используется при создании и обновлении
#excluded_ips = ["192.168.0.4", "192.168.0.5"]
#диапазон исключенных IP адресов
#опциональный параметр
- #тип - блок,
+ #тип - блок
#тип вложенных полей - строка
- excluded_ips_range {
- #начало диапазона
- #обязательный параметр
- #тип - строка
- ip_start = "192.168.0.4"
+ #используется при создании и обновлении
+ #excluded_ips_range {
+ #начало диапазона
+ #обязательный параметр
+ #тип - строка
+ #ip_start = "192.168.0.4"
+
+ #окончание диапазона
+ #обязательный параметр
+ #тип - строка
+ #ip_end = "192.168.0.50"
+ #}
- #окончание диапазона
- #обязательный параметр
- #тип - строка
- ip_end = "192.168.0.50"
- }
-
#список id аккаунтов, которым предоставлен доступ к extnet
#опциональный параметр
#тип - массив целых чисел
+ #используется при создании и обновлении
#shared_with = [112, 123]
-
+
#изменение настроек ограничения трафика сети
- #значение по умолчанию 0, то есть без ограничений
+ #по умолчанию - 0, т.е. без ограничений
#опциональный параметр
#тип - блок,
#тип вложенных полей - целое число
- default_qos {
- #ограничение внутреннего трафика в кбит
- #опциональный параметр
- #тип - целое число
- #in_rate = 0
+ #используется при обновлении
+ #default_qos {
+ #ограничение внутреннего трафика в кбит
+ #опциональный параметр
+ #тип - целое число
+ #in_rate = 0
- #ограничение внутреннего burst трафика в кбит
- #опциональный параметр
- #тип - целое число
- #in_burst = 0
+ #ограничение внутреннего burst трафика в кбит
+ #опциональный параметр
+ #тип - целое число
+ #in_burst = 0
- #ограничение внешнего трафика в кбит
- #опциональный параметр
- #тип - целое число
- #e_rate = 0
- }
+ #ограничение внешнего трафика в кбит
+ #опциональный параметр
+ #тип - целое число
+ #e_rate = 0
+ #}
#список зарезервированных IP или пула адресов
#опциональный параметр
#тип - блок
- reserved_ip {
+ #используется при создании и обновлении
+ #reserved_ip {
#идентификатор аккаунта, для которого резервируются ресурсы
#обязательный параметр
#тип - целое число
- account_id = 11111
+ #account_id = 11111
#количество резервируемых IP
#опциональный параметр
#тип - целое число
- ip_count = 15
+ #ip_count = 15
#список резервируемых IP
#опциональный параметр
#тип - массив строк
- ips = ["192.168.10.10", "192.168.10.20"]
- }
+ #ips = ["192.168.10.10", "192.168.10.20"]
+ #}
- #ID stack на который происходит миграция
+ #id stack на который происходит миграция
#опциональный параметр
#тип - целое число
+ #используется при обновлении
#migrate = 1
#перезапустить сеть
#опциональный параметр
#тип - булев
+ #используется при обновлении
#restart = true
}
diff --git a/samples/cloudbroker/extnet/resource_extnet_static_route/main.tf b/samples/cloudbroker/extnet/resource_extnet_static_route/main.tf
index 7056ec3..7baca1c 100644
--- a/samples/cloudbroker/extnet/resource_extnet_static_route/main.tf
+++ b/samples/cloudbroker/extnet/resource_extnet_static_route/main.tf
@@ -9,7 +9,7 @@
5. Удалять доступ виртуальным машинам к static routes
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
@@ -33,30 +33,34 @@ provider "decort" {
}
resource "decort_cb_extnet_static_route" "sr" {
-
#id extnet
#обязательный параметр
#тип - целое число
+ #используется при создании
extnet_id = 1111
#destination network
#обязательный параметр
#тип - строка
+ #используется при создании
destination = "192.168.201.0"
#destination network mask
#обязательный параметр
#тип - строка
+ #используется при создании
netmask = "255.255.255.255"
- #IP-адрес из пула свободных IP-адресов extnet ID
+ #ip-адрес из пула свободных IP-адресов extnet ID
#обязательный параметр
#тип - строка
+ #используется при создании
gateway = "192.168.201.40"
#список виртуальных машин, которым будет предоставлен доступ к роуту
#опциональный параметр
#тип - массив целых чисел
+ #используется при создании и обновлении
#compute_ids = [111,222]
}
diff --git a/samples/cloudbroker/flipgroup/data_flipgroup/main.tf b/samples/cloudbroker/flipgroup/data_flipgroup/main.tf
index 4a5d8dd..f7dde1f 100644
--- a/samples/cloudbroker/flipgroup/data_flipgroup/main.tf
+++ b/samples/cloudbroker/flipgroup/data_flipgroup/main.tf
@@ -3,7 +3,7 @@
Получение flipgroup по id
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
diff --git a/samples/cloudbroker/flipgroup/data_flipgroup_list/main.tf b/samples/cloudbroker/flipgroup/data_flipgroup_list/main.tf
index fefa060..cd30bb4 100644
--- a/samples/cloudbroker/flipgroup/data_flipgroup_list/main.tf
+++ b/samples/cloudbroker/flipgroup/data_flipgroup_list/main.tf
@@ -3,7 +3,7 @@
Получение списка flipgroup
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
diff --git a/samples/cloudbroker/flipgroup/resource_flipgroup/main.tf b/samples/cloudbroker/flipgroup/resource_flipgroup/main.tf
index e10b631..ecc1851 100644
--- a/samples/cloudbroker/flipgroup/resource_flipgroup/main.tf
+++ b/samples/cloudbroker/flipgroup/resource_flipgroup/main.tf
@@ -7,7 +7,7 @@
3. Удалять flipgroup
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
@@ -33,43 +33,51 @@ resource "decort_cb_flipgroup" "fg" {
#id аккаунта
#обязательный параметр
#тип - целое число
+ #используется при создании
account_id = 999
#наименование Flipgroup
#обязательный параметр
#тип - строка
+ #используется при создании и обновлении
name = "flipgroup_name"
#тип сети
#обязательный параметр
#возможные значенния - "EXTNET", "VINS"
#тип - строка
+ #используется при создании
net_type = "EXTNET"
#id сети
#обязательный параметр
#тип - целое число
+ #используется при создании
net_id = 13
#тип клиентов
#обязательный параметр
#тип - строка
#в данный момент поддерживается только тип 'compute'
+ #используется при создании
client_type = "compute"
#ip-адрес
#опциональный параметр
#тип - строка
+ #используется при создании
#ip = "127.0.0.1"
#cписок клиентов, прикрепленных к флипгруппе
#опциональный параметр
#тип - массив целых чисел
+ #используется при создании и обновлении
#client_ids = [11269]
#описание флипгруппы
#опциональный параметр
#тип - строка
+ #используется при создании и обновлении
#desc = "CHANGED"
}
diff --git a/samples/cloudbroker/grid/data_grid/main.tf b/samples/cloudbroker/grid/data_grid/main.tf
index a836c1b..8e5adb0 100644
--- a/samples/cloudbroker/grid/data_grid/main.tf
+++ b/samples/cloudbroker/grid/data_grid/main.tf
@@ -3,7 +3,7 @@
Получение data source grid по id
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
diff --git a/samples/cloudbroker/grid/data_grid_get_consumption/main.tf b/samples/cloudbroker/grid/data_grid_get_consumption/main.tf
index 5b163e9..1568345 100644
--- a/samples/cloudbroker/grid/data_grid_get_consumption/main.tf
+++ b/samples/cloudbroker/grid/data_grid_get_consumption/main.tf
@@ -3,7 +3,7 @@
Получение информации и потребленных и зарезервированных ресурсах grid по id
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
diff --git a/samples/cloudbroker/grid/data_grid_get_post_status/main.tf b/samples/cloudbroker/grid/data_grid_get_post_status/main.tf
index 1d0ce80..0326d76 100644
--- a/samples/cloudbroker/grid/data_grid_get_post_status/main.tf
+++ b/samples/cloudbroker/grid/data_grid_get_post_status/main.tf
@@ -3,7 +3,7 @@
Проверка статуса активности текущей среды.
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
@@ -27,11 +27,11 @@ provider "decort" {
}
data "decort_cb_grid_get_status" "gs" {
- #нет входящих параметров
+ #нет входных параметров
}
data "decort_cb_grid_post_status" "ps" {
- #нет входящих параметров
+ #нет входных параметров
}
output "test-gs" {
diff --git a/samples/cloudbroker/grid/data_grid_get_settings/main.tf b/samples/cloudbroker/grid/data_grid_get_settings/main.tf
index 52607fd..c4c74e7 100644
--- a/samples/cloudbroker/grid/data_grid_get_settings/main.tf
+++ b/samples/cloudbroker/grid/data_grid_get_settings/main.tf
@@ -3,7 +3,7 @@
Получение настроек grid (платформы) по id
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
diff --git a/samples/cloudbroker/grid/data_grid_list/main.tf b/samples/cloudbroker/grid/data_grid_list/main.tf
index ce595e1..a443fd6 100644
--- a/samples/cloudbroker/grid/data_grid_list/main.tf
+++ b/samples/cloudbroker/grid/data_grid_list/main.tf
@@ -3,7 +3,7 @@
Получение списка grid
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
diff --git a/samples/cloudbroker/grid/data_grid_list_consumption/main.tf b/samples/cloudbroker/grid/data_grid_list_consumption/main.tf
index dc22a09..201e34b 100644
--- a/samples/cloudbroker/grid/data_grid_list_consumption/main.tf
+++ b/samples/cloudbroker/grid/data_grid_list_consumption/main.tf
@@ -3,7 +3,7 @@
Получение информации и потребленных и зарезервированных ресурсах во всех grid
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
@@ -27,7 +27,7 @@ provider "decort" {
}
data "decort_cb_grid_list_consumption" "lc" {
- #нет входящих параметров
+ #нет входных параметров
}
output "test" {
diff --git a/samples/cloudbroker/grid/data_grid_list_emails/main.tf b/samples/cloudbroker/grid/data_grid_list_emails/main.tf
index 6209cf5..137d40b 100644
--- a/samples/cloudbroker/grid/data_grid_list_emails/main.tf
+++ b/samples/cloudbroker/grid/data_grid_list_emails/main.tf
@@ -3,7 +3,7 @@
Получение списка email-адресов пользователей.
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
diff --git a/samples/cloudbroker/grid/decort_cb_grid_get_diagnosis/main.tf b/samples/cloudbroker/grid/decort_cb_grid_get_diagnosis/main.tf
index ca473da..4f0e135 100644
--- a/samples/cloudbroker/grid/decort_cb_grid_get_diagnosis/main.tf
+++ b/samples/cloudbroker/grid/decort_cb_grid_get_diagnosis/main.tf
@@ -3,7 +3,7 @@
Получение снимка платформы с дополнительной диагностической информацией, такой как журналы и т.д.
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
@@ -32,7 +32,8 @@ data "decort_cb_grid_get_diagnosis" "grid" {
#тип - целое число
gid = 215
- #путь, где будет создан архив, если не указан, создается в директории с main.tf с именем "diagnosis.tar.gz"
+ #путь, где будет создан архив
+ #если не указан, создается в директории с main.tf с именем "diagnosis.tar.gz"
#обязательный параметр
#тип - строка
file_path = "abcdefg.tar.gz"
diff --git a/samples/cloudbroker/image/data_image/main.tf b/samples/cloudbroker/image/data_image/main.tf
index a5defe9..d2fdcc7 100644
--- a/samples/cloudbroker/image/data_image/main.tf
+++ b/samples/cloudbroker/image/data_image/main.tf
@@ -3,7 +3,7 @@
Получение образа по id
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
diff --git a/samples/cloudbroker/image/data_image_list/main.tf b/samples/cloudbroker/image/data_image_list/main.tf
index 63093b2..e7ac636 100644
--- a/samples/cloudbroker/image/data_image_list/main.tf
+++ b/samples/cloudbroker/image/data_image_list/main.tf
@@ -3,7 +3,7 @@
Получение списка образов
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
diff --git a/samples/cloudbroker/image/data_image_list_stacks/main.tf b/samples/cloudbroker/image/data_image_list_stacks/main.tf
index 95f74dc..914d667 100644
--- a/samples/cloudbroker/image/data_image_list_stacks/main.tf
+++ b/samples/cloudbroker/image/data_image_list_stacks/main.tf
@@ -3,7 +3,7 @@
Получение списка stack по id образа
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
@@ -53,7 +53,7 @@ data "decort_cb_image_list_stacks" "im" {
#тип - строка
#sort_by = "+name"
- #номер страницы для отображения информации
+ #номер страницы для отображения
#опциональный параметр
#если не задан - отображается вся доступная информация
#тип - целое число
diff --git a/samples/cloudbroker/image/resource_delete_images/main.tf b/samples/cloudbroker/image/resource_delete_images/main.tf
deleted file mode 100644
index a9e4d0f..0000000
--- a/samples/cloudbroker/image/resource_delete_images/main.tf
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
-Пример использования
-Ресурса delete images
-Ресурс является служебным
-Его можно использоваться для быстрого удаления нескольких образов
-*/
-
-#Расскомментируйте этот код,
-#и внесите необходимые правки в версию и путь,
-#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
-/*
-terraform {
- required_providers {
- decort = {
- source = "basis/decort/decort"
- version = ""
- }
- }
-}
-*/
-
-provider "decort" {
- authenticator = "decs3o"
- #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
-}
-
-output "test" {
- value = decort_delete_images.my_images
-}
-
-/*
-Применение:
-1. terraform plan
-2. terraform apply
-3. terraform destroy
-
-
-Примечание:
-Данный ресурс не поддерживает обновления параметров, поэтому, для переиспользования
-необходимо удалить старое состояние и повторить шаги выше.
-*/
diff --git a/samples/cloudbroker/image/resource_image/main.tf b/samples/cloudbroker/image/resource_image/main.tf
index f9db50b..8acb5e1 100644
--- a/samples/cloudbroker/image/resource_image/main.tf
+++ b/samples/cloudbroker/image/resource_image/main.tf
@@ -7,7 +7,7 @@
3. Удалять образ
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
@@ -22,9 +22,9 @@ terraform {
*/
provider "decort" {
- authenticator = "decs3o"
+ authenticator = "decs3o"
#controller_url =
- controller_url = "https://ds1.digitalenergy.online"
+ controller_url = "https://ds1.digitalenergy.online"
#oauth2_url =
oauth2_url = "https://sso.digitalenergy.online"
allow_unverified_ssl = true
@@ -34,130 +34,140 @@ resource "decort_cb_image" "my_image" {
#имя образа
#обязательный параметр
#тип - строка
- #при изменении - изменяет название созданного образа
+ #используется при создании и обновлении
name = "test_image_rename"
#адрес образа
#опциональный параметр
- #внимание, для создания ресурса обязательно должен быть указан или url, или image_file
+ #внимание, для создания ресурса обязательно должен быть указан или url, или file_path
#тип - строка
+ #используется при создании
url = "https://colba.decs.online/index.php/s/G3H7AREngzeKGw2/download"
#путь к образу для загрузки
#опциональный параметр
- #внимание, для создания ресурса обязательно должен быть указан или url, или image_file
+ #внимание, для создания ресурса обязательно должен быть указан или url, или file_path
#тип - строка
+ #используется при создании
file_path = "img.iso"
- #grid id образа
- #обязательный параметр
- #тип - целое число
- gid = 212
-
#тип загрузки образа
#обязательный параметр
#тип - строка
#возможные варианты: "bios" или "uefi"
+ #используется при создании
boot_type = "bios"
#тип образа
#обязательный параметр
#тип - строка
- #возможные варианты - "linux", "windows"
+ #возможные варианты - "linux", "windows", "unknown"
+ #используется при создании
image_type = "linux"
#драйвера
#обязательный параметр
#тип - массив строк
#возможные варианты - ["KVM_X86", "SVA_KVM_X86"], ["KVM_X86"], ["SVA_KVM_X86"]
+ #используется при создании
drivers = ["KVM_X86", "SVA_KVM_X86"]
#поддержка hot resize
#опциональный параметр
#тип - булев
+ #используется при создании и обновлении
#hot_resize = true
#id аккаунта владельца образа
#опциональный параметр
- #может быть использован как при создании,
- #так и при редактировании образа
#тип данных - целое число
+ #используется при создании и обновлении
#account_id = 57252
#имя пользователя и пароль
- #опциональные параметры,
- #могут быть использованы как при создании образа,
- #так и при его редактировании
+ #опциональные параметры
#тип - строка
+ #используется при создании и обновлении
#username = "Valera"
#password = "123"
#имя пользователя и пароль для загрузки бинарных данных
- #опциональные параметры,
- #могут быть использованы как при создании образа,
- #так и при его редактировании
+ #опциональные параметры
#тип - строка
+ #используется при создании
#username_dl = "Valera1"
#password_dl = "1231"
#sep id
- #опциональный параметр, используется при создании
+ #опциональный параметр
#тип - целое число
- #sep_id = 1206
+ #используется при создании
+ #sep_id = 1206
#пул для создания образа
- #опциональный тип, используется при создании образа
+ #опциональный параметр
#тип - строка
- #pool_name = "vmstor"
+ #используется при создании
+ #pool_name = "vmstor"
#архитектура системы образа
- #опциональный параметр, используется при создании
+ #опциональный параметр
#тип - строка
#доступные значения: "X86_64"
+ #используется при создании
#architecture = "X86_64"
#доступность образа
- #опциональный параметр, используется на уже созданном ресурсе
+ #опциональный параметр
#тип - булев
+ #используется при создании и обновлении
#enabled = true
#является ли образ загрузочным
- #опциональный параметр, используется на уже созданном ресурсе
+ #опциональный параметр
#тип - булев
+ #используется при создании и обновлении
#bootable = true
#позволяет создавать образ в синхронном режиме
#опциональный параметр
#тип - булев
+ #используется при создании
#sync_mode = true
#настройка доступа образа аккаунтам
- #опциональный параметр, используется на уже созданном ресурсе
+ #опциональный параметр
#тип - массив целых чисел
#пустой массив - удаление всех доступов, если они были
+ #используется при обновлении
#shared_with = [28096, 57121]
#установка computeci
- #опциональный параметр, используется на уже созданном ресурсе
+ #опциональный параметр
#тип - целое число
#чтобы сбросить, необходимо передать 0
+ #используется при обновлении
#computeci_id = 1
#доступные стаки
- #опциональный параметр, используется на уже созданном ресурсе
+ #опциональный параметр
#тип - массив целых чисел
#для удаления всех доступных стаков, необходимо передать пустой массив
+ #используется при обновлении
#enabled_stacks = [9]
#аккаунты, которым предоставляется доступ к образу
#опциональный параметр
#тип - массив целых чисел
#для удаления всех доступных аккаунтов, необходимо передать пустой массив
+ #используется при обновлении
#accounts = [9, 5]
- #наименование сетевого интерфейса для вашего компьютера с Linux, eth - встроенный, ens - pci слот
+ #наименование сетевого интерфейса для вашего компьютера с Linux
+ #eth - встроенный, ens - pci слот
#опциональный параметр
#тип - строка
+ #используется при создании и обновлении
#network_interface_naming = "ens"
}
diff --git a/samples/cloudbroker/image/resource_image_cdrom/main.tf b/samples/cloudbroker/image/resource_image_cdrom/main.tf
index 1ae097e..85ff075 100644
--- a/samples/cloudbroker/image/resource_image_cdrom/main.tf
+++ b/samples/cloudbroker/image/resource_image_cdrom/main.tf
@@ -7,7 +7,7 @@
3. Удалять образ
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
@@ -34,87 +34,91 @@ resource "decort_cb_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"]
+ #используется при создании
+ #drivers = ["KVM_X86", "SVA_KVM_X86"]
#поддержка hot resize
#опциональный параметр
#тип - булев
+ #используется при создании и обновлении
#hot_resize = true
#id аккаунта владельца образа
#опциональный параметр
- #может быть использован как при создании,
- #так и при редактировании образа
- #тип данных - целое число
+ #тип - целое число
+ #используется при создании и обновлении
#account_id = 57252
#имя пользователя и пароль для загрузки бинарных данных
- #опциональные параметры,
- #могут быть использованы как при создании образа,
- #так и при его редактировании
+ #опциональные параметры
#тип - строка
+ #используется при создании и обновлении
#username_dl = "Valera1"
#password_dl = "1231"
#sep id
- #опциональный параметр, используется при создании
+ #опциональный параметр
#тип - целое число
+ #используется при создании
#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]
#является ли образ загрузочным
- #опциональный параметр, используется на уже созданном ресурсе
+ #опциональный параметр
#тип - булев
+ #используется при обновлении
#bootable = true
}
diff --git a/samples/cloudbroker/image/resource_image_from_blank_compute/main.tf b/samples/cloudbroker/image/resource_image_from_blank_compute/main.tf
index f840f60..634744e 100644
--- a/samples/cloudbroker/image/resource_image_from_blank_compute/main.tf
+++ b/samples/cloudbroker/image/resource_image_from_blank_compute/main.tf
@@ -5,7 +5,7 @@
3. Удалять ресурс
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
@@ -29,114 +29,115 @@ provider "decort" {
}
resource "decort_cb_image_from_blank_compute" "my_image" {
- #ID виртуальной машины, созданной как blank
- #используется для создания образа
+ #id виртуальной машины, созданной как blank
#обязательный параметр
#тип - целое число
+ #используется при создании
compute_id = 1234
#имя образа
- #используется для обновления и создания образа
#обязательный параметр
#тип - строка
#при изменении - изменяет название созданного образа
+ #используется при создании и обновлении
name = "test_image_rename"
#тип загрузки образа
- #используется для создания образа
#обязательный параметр
#тип - строка
#возможные варианты: "bios" или "uefi"
+ #используется при создании
boot_type = "bios"
#тип образа
- #используется для создания образа
#обязательный параметр
#тип - строка
- #возможные варианты - "linux", "windows"
+ #возможные варианты - "linux", "windows", "unknown"
+ #используется при создании
image_type = "linux"
#имя пользователя для образа
- #используется для обновления и создания образа
#опциональный параметр
#тип - строка
+ #используется при создании и обновлении
#username = "userx"
#пароль для образа
- #используется для обновления и создания образа
#опциональный параметр
#тип - строка
+ #используется при создании и обновлении
#password = "passx"
- #ID аккаунта
- #используется для обновления и создания образа
+ #id аккаунта
#опциональный параметр
#тип - целое число
+ #используется при создании и обновлении
#account_id = 138
- #sep id
- #используется для создания образа
- #опциональный параметр
- #тип - целое число
- #sep_id = 1
-
#название pool
- #используется для создания образа
#опциональный параметр
#тип - строка
+ #используется при создании
#pool_name = "pool"
#поддержка hot resize
- #используется для обновления и создания образа
#опциональный параметр
#тип - булев
+ #используется при создании и обновлении
#hot_resize = true
#флаг для создания образа в асинхронном режиме
#опциональный параметр
#по умолчанию - false
#тип - булев
+ #используется при создании
#async_mode = true
#доступность образа
- #опциональный параметр, используется на уже созданном ресурсе
+ #опциональный параметр
#тип - булев
+ #используется при обновлении
#enabled = true
#является ли образ загрузочным
- #опциональный параметр, используется на уже созданном ресурсе
+ #опциональный параметр
#тип - булев
+ #используется при обновлении
#bootable = true
#настройка доступа образа аккаунтам
- #опциональный параметр, используется на уже созданном ресурсе
+ #опциональный параметр
#тип - массив целых чисел
#пустой массив - удаление всех доступов, если они были
+ #используется при обновлении
#shared_with = [28096, 57121]
#установка computeci
- #опциональный параметр, используется на уже созданном ресурсе
+ #опциональный параметр
#тип - целое число
#чтобы сбросить, необходимо передать 0
+ #используется при обновлении
#computeci_id = 1
#доступные стаки
- #опциональный параметр, используется на уже созданном ресурсе
+ #опциональный параметр
#тип - массив целых чисел
#для удаления всех доступных стаков, необходимо передать пустой массив
+ #используется при обновлении
#enabled_stacks = [9]
#аккаунты, которым предоставляется доступ к образу
- #Используется для обновления и создания образа
#опциональный параметр
#тип - массив целых чисел
#для удаления всех доступных аккаунтов, необходимо передать пустой массив
+ #используется при создании и обновлении
#accounts = [9, 5]
- #наименование сетевого интерфейса для вашего компьютера с Linux, eth - встроенный, ens - pci слот
- #используется для обновления образа
+ #наименование сетевого интерфейса для вашего компьютера с Linux
+ #eth - встроенный, ens - pci слот
#опциональный параметр
#тип - строка
+ #используется при обновлении
#network_interface_naming = "ens"
}
diff --git a/samples/cloudbroker/image/resource_image_from_platform_disk/main.tf b/samples/cloudbroker/image/resource_image_from_platform_disk/main.tf
index 03ee91b..3542fd2 100644
--- a/samples/cloudbroker/image/resource_image_from_platform_disk/main.tf
+++ b/samples/cloudbroker/image/resource_image_from_platform_disk/main.tf
@@ -5,7 +5,7 @@
3. Удалять ресурс
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
@@ -29,127 +29,127 @@ provider "decort" {
}
resource "decort_cb_image_from_platform_disk" "my_image" {
- #ID платформенного диска
- #используется для создания образа
+ #id платформенного диска
#обязательный параметр
#тип - целое число
+ #используется при создании
disk_id = 1234
#имя образа
- #используется для обновления и создания образа
#обязательный параметр
#тип - строка
#при изменении - изменяет название созданного образа
+ #используется при создании и обновлении
name = "test_image_rename"
#тип загрузки образа
- #используется для создания образа
#обязательный параметр
#тип - строка
#возможные варианты: "bios" или "uefi"
+ #используется при создании
boot_type = "bios"
#тип образа
- #используется для создания образа
#обязательный параметр
#тип - строка
- #возможные варианты - "linux", "windows"
+ #возможные варианты - "linux", "windows", "unknown"
+ #используется при создании
image_type = "linux"
#архитектура образа
- #используется для создания образа
#обязательный параметр
#возможные значения - X86_64
#тип - строка
+ #используется при создании
architecture = "X86_64"
#драйверы компьютов, подходящие для данного образа
- #используется для создания образа
#обязательный параметр
#тип - массив строк
+ #используется при создании
drivers = ["KVM_X86"]
#имя пользователя для образа
- #используется для обновления и создания образа
#опциональный параметр
#тип - строка
+ #используется при создании и обновлении
#username = "userx"
#пароль для образа
- #используется для обновления и создания образа
#опциональный параметр
#тип - строка
+ #используется при создании и обновлении
#password = "passx"
- #ID аккаунта
- #используется для обновления и создания образа
+ #id аккаунта
#опциональный параметр
#тип - целое число
+ #используется при создании и обновлении
#account_id = 138
- #sep id
- #используется для создания образа
- #опциональный параметр
- #тип - целое число
- #sep_id = 1
-
#название pool
- #используется для создания образа
#опциональный параметр
#тип - строка
+ #используется при создании
#pool_name = "pool"
#поддержка hot resize
- #используется для обновления и создания образа
#опциональный параметр
#тип - булев
+ #используется при создании и обновлении
#hot_resize = true
#является ли образ загрузочным
- #опциональный параметр, используется на уже созданном ресурсе или при создании ресурса
#тип - булев
+ #используется при создании и обновлении
#bootable = true
#флаг для создания образа в асинхронном режиме
#опциональный параметр
#по умолчанию - false
#тип - булев
+ #используется при создании
#async_mode = true
#доступность образа
- #опциональный параметр, используется на уже созданном ресурсе
+ #опциональный параметр
#тип - булев
+ #используется при обновлении
#enabled = true
#настройка доступа образа аккаунтам
- #опциональный параметр, используется на уже созданном ресурсе
+ #опциональный параметр
#тип - массив целых чисел
#пустой массив - удаление всех доступов, если они были
+ #используется при обновлении
#shared_with = [28096, 57121]
#установка computeci
- #опциональный параметр, используется на уже созданном ресурсе
+ #опциональный параметр
#тип - целое число
#чтобы сбросить, необходимо передать 0
+ #используется при обновлении
#computeci_id = 1
#доступные стаки
- #опциональный параметр, используется на уже созданном ресурсе
+ #опциональный параметр
#тип - массив целых чисел
#для удаления всех доступных стаков, необходимо передать пустой массив
+ #используется при обновлении
#enabled_stacks = [9]
#аккаунты, которым предоставляется доступ к образу
- #Используется для обновления и создания образа
#опциональный параметр
#тип - массив целых чисел
#для удаления всех доступных аккаунтов, необходимо передать пустой массив
+ #используется при создании и обновлении
#accounts = [9, 5]
- #наименование сетевого интерфейса для вашего компьютера с Linux, eth - встроенный, ens - pci слот
- #используется для обновления образа
+ #наименование сетевого интерфейса для вашего компьютера с Linux
+ #eth - встроенный, ens - pci слот
#опциональный параметр
#тип - строка
+ #используется при обновлении
#network_interface_naming = "ens"
}
diff --git a/samples/cloudbroker/image/resource_virtual_image/main.tf b/samples/cloudbroker/image/resource_virtual_image/main.tf
index d5c6b0b..c31d8ea 100644
--- a/samples/cloudbroker/image/resource_virtual_image/main.tf
+++ b/samples/cloudbroker/image/resource_virtual_image/main.tf
@@ -7,7 +7,7 @@
3. Удалять образ
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
@@ -34,66 +34,70 @@ resource "decort_cb_virtual_image" "my_image" {
#имя виртуального образа
#обязательный параметр
#тип - строка
+ #используется при создании и обновлении
name = "test_vi_im_new_rename"
- #id образа, на основе котрого будет создан виртуальный
+ #id образа, на основе которого будет создан виртуальный
#обязательный параметр
- #может быть также использован при редактировании
#тип - целое число
+ #используется при создании и обновлении
link_to = 6125
#id аккаунта владельца образа
#опциональный параметр
- #может быть использован при редактировании образа
#тип данных - целое число
+ #используется при обновлении
#account_id = 57252
#является ли образ загрузочным
#опциональный параметр
- #используется на уже созданном ресурсе
#тип - булев
+ #используется при обновлении
#bootable = true
#поддержка hot resize
#опциональный параметр
#тип - булев
+ #используется при обновлении
#hot_resize = true
#имя пользователя
#опциональный параметр
- #может быть использован при редактировании образа
#тип - строка
+ #используется при обновлении
#username = "Valera"
#пароль пользователя
#опциональный параметр
- #может быть использован при редактировании образа
#тип - строка
+ #используется при обновлении
#password = "123"
#доступность образа
#опциональный параметр
- #используется на уже созданном ресурсе
#тип - булев
+ #используется при обновлении
#enabled = false
#настройка доступа образа аккаунтам
#опциональный параметр
- #используется на уже созданном ресурсе
- #пустой маасив - удаление всех доступов, если они были
+ #пустой массив - удаление всех доступов, если они были
#тип - массив целых чисел
+ #используется при обновлении
#shared_with = [28096, 57121]
#установка computeci
- #опциональный параметр, используется на уже созданном ресурсе
+ #опциональный параметр
#чтобы сбросить, необходимо передать 0
#тип - целое число
+ #используется при обновлении
#computeci_id = 1
#доступные стаки
- #опциональный параметр, используется на уже созданном ресурсе
+ #опциональный параметр
#для удаления всех доступных стаков, необходимо передать пустой массив
#тип - массив целых чисел
+ #используется при обновлении
#enabled_stacks = [9]
}
diff --git a/samples/cloudbroker/k8s/data_k8ci/main.tf b/samples/cloudbroker/k8s/data_k8ci/main.tf
index 691d74d..44ac28b 100644
--- a/samples/cloudbroker/k8s/data_k8ci/main.tf
+++ b/samples/cloudbroker/k8s/data_k8ci/main.tf
@@ -3,7 +3,7 @@
Получение информации о k8ci
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
diff --git a/samples/cloudbroker/k8s/data_k8ci_list/main.tf b/samples/cloudbroker/k8s/data_k8ci_list/main.tf
index d9e7c32..b2d936c 100644
--- a/samples/cloudbroker/k8s/data_k8ci_list/main.tf
+++ b/samples/cloudbroker/k8s/data_k8ci_list/main.tf
@@ -3,7 +3,7 @@
Получение списка k8ci
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
diff --git a/samples/cloudbroker/k8s/data_k8ci_list_deleted/main.tf b/samples/cloudbroker/k8s/data_k8ci_list_deleted/main.tf
index fc3c74b..f6dd184 100644
--- a/samples/cloudbroker/k8s/data_k8ci_list_deleted/main.tf
+++ b/samples/cloudbroker/k8s/data_k8ci_list_deleted/main.tf
@@ -3,7 +3,7 @@
Получение списка удаленных k8ci
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
diff --git a/samples/cloudbroker/k8s/data_k8s/main.tf b/samples/cloudbroker/k8s/data_k8s/main.tf
index d7aae23..2b5ca80 100644
--- a/samples/cloudbroker/k8s/data_k8s/main.tf
+++ b/samples/cloudbroker/k8s/data_k8s/main.tf
@@ -3,7 +3,7 @@
Получение информации о k8s кластере
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
diff --git a/samples/cloudbroker/k8s/data_k8s_computes/main.tf b/samples/cloudbroker/k8s/data_k8s_computes/main.tf
index 545dab0..761ef6a 100644
--- a/samples/cloudbroker/k8s/data_k8s_computes/main.tf
+++ b/samples/cloudbroker/k8s/data_k8s_computes/main.tf
@@ -3,7 +3,7 @@
Получение информации о компьютах k8s кластера
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
diff --git a/samples/cloudbroker/k8s/data_k8s_list/main.tf b/samples/cloudbroker/k8s/data_k8s_list/main.tf
index 5688118..c5014f6 100644
--- a/samples/cloudbroker/k8s/data_k8s_list/main.tf
+++ b/samples/cloudbroker/k8s/data_k8s_list/main.tf
@@ -3,7 +3,7 @@
Получение списка доступных кластеров
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
diff --git a/samples/cloudbroker/k8s/data_k8s_list_deleted/main.tf b/samples/cloudbroker/k8s/data_k8s_list_deleted/main.tf
index df7336a..7543c6b 100644
--- a/samples/cloudbroker/k8s/data_k8s_list_deleted/main.tf
+++ b/samples/cloudbroker/k8s/data_k8s_list_deleted/main.tf
@@ -3,7 +3,7 @@
Получение списка удаленных кластеров
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
diff --git a/samples/cloudbroker/k8s/data_k8s_wg/main.tf b/samples/cloudbroker/k8s/data_k8s_wg/main.tf
index 396a7cd..4ae7da7 100644
--- a/samples/cloudbroker/k8s/data_k8s_wg/main.tf
+++ b/samples/cloudbroker/k8s/data_k8s_wg/main.tf
@@ -3,7 +3,7 @@
Получение информации о k8s кластере
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
diff --git a/samples/cloudbroker/k8s/data_k8s_wg_cloud_init/main.tf b/samples/cloudbroker/k8s/data_k8s_wg_cloud_init/main.tf
index aeeaf83..9f3ea0d 100644
--- a/samples/cloudbroker/k8s/data_k8s_wg_cloud_init/main.tf
+++ b/samples/cloudbroker/k8s/data_k8s_wg_cloud_init/main.tf
@@ -3,7 +3,7 @@
Получение информации о мета данных рабочей группы k8s кластера
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
diff --git a/samples/cloudbroker/k8s/data_k8s_wg_list/main.tf b/samples/cloudbroker/k8s/data_k8s_wg_list/main.tf
index f54e273..bae2513 100644
--- a/samples/cloudbroker/k8s/data_k8s_wg_list/main.tf
+++ b/samples/cloudbroker/k8s/data_k8s_wg_list/main.tf
@@ -3,7 +3,7 @@
Получение списка доступных рабочих групп в кластере
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
diff --git a/samples/cloudbroker/k8s/resource_k8ci/main.tf b/samples/cloudbroker/k8s/resource_k8ci/main.tf
index 00c483a..74dfc42 100644
--- a/samples/cloudbroker/k8s/resource_k8ci/main.tf
+++ b/samples/cloudbroker/k8s/resource_k8ci/main.tf
@@ -7,7 +7,7 @@
3. Удалять k8ci
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
@@ -34,66 +34,79 @@ resource "decort_cb_k8ci" "k8ci" {
#имя k8ci
#обязательный параметр
#тип - строка
+ #используется при создании
name = "test"
#тег версии
#обязательный параметр
#тип - строка
+ #используется при создании
version = "1.1.1"
#тип master driver
#обязательный параметр
#тип - строка
+ #используется при создании
master_driver = "KVM_X86"
#тип worker driver
#обязательный параметр
#тип - строка
+ #используется при создании
worker_driver = "KVM_X86"
- #максимальное число master компутов
+ #максимальное число master компьютов
#обязательный параметр
#тип - целое число
+ #используется при создании
max_master_count = 1
- #максимальное число worker компутов
+ #максимальное число worker компьютов
#обязательный параметр
#тип - целое число
+ #используется при создании
max_worker_count = 1
#id образа для master
#обязательный параметр
#тип - целое число
+ #используется при создании
master_image_id = 4
#id образа для worker
#обязательный параметр
#тип - целое число
+ #используется при создании
worker_image_id = 4
#network plugins
#обязательный параметр
#тип - массив строк
+ #используется при создании
network_plugins = ["flannel"]
#доступность k8ci
#опциональный параметр
#тип - булев
+ #используется при создании и обновлении
#enabled = false
- #флаг для моментального удаления k8ci
+ #флаг для удаления k8ci, без возможности восстановления
#опциональный параметр
#тип - булев
+ #используется при удалении
#permanently = true
#описание
#опциональный параметр
#тип - строка
+ #используется при создании
#desc = "some"
#доступность k8ci другим аккаунтам
#опциональный параметр
#тип - массив целых чисел
+ #используется при создании и обновлении
#shared_with = [1111]
}
diff --git a/samples/cloudbroker/k8s/resource_k8s_cp/main.tf b/samples/cloudbroker/k8s/resource_k8s_cp/main.tf
index 5ac19e5..61f9df0 100644
--- a/samples/cloudbroker/k8s/resource_k8s_cp/main.tf
+++ b/samples/cloudbroker/k8s/resource_k8s_cp/main.tf
@@ -9,7 +9,7 @@
5. Изменить кол-во ВМ в мастер-узле
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
@@ -35,155 +35,184 @@ resource "decort_cb_k8s_cp" "cp" {
#название кластера
#обязательный параметр
#тип - строка
+ #используется при создании и обновлении
name = "k8s-cp"
#k8sCI ID
#обязательный параметр
#тип - целое число
+ #используется при создании
k8sci_id = 55
#плагин сети
#обязательный параметр
#возможные значения - "flannel", "weavenet", "calico"
#тип - строка
+ #используется при создании
network_plugin = "flannel"
#id ресурсной группы
#обязательный параметр
#тип - целое число
+ #используется при создании
rg_id = 1387
#кол-во ядер мастер-узла
#опциональный параметр
#тип - целое число
- cpu = 2
+ #используется при создании
+ #cpu = 2
#объем RAM мастер-узла
#опциональный параметр
#тип - целое число
- ram = 2048
+ #используется при создании
+ #ram = 2048
#кол-во ВМ мастер-узла (1, 3 или 5)
#опциональный параметр
#тип - целое число
- num = 1
+ #используется при создании и обновлении
+ #num = 1
#размер диска мастер-узла
#опциональный параметр
#тип - целое число
- disk = 10
+ #используется при создании
+ #disk = 10
#описание кластера
#опциональный параметр
#тип - строка
- desc = ""
+ #используется при создании и обновлении
+ #desc = ""
#id extnet
#опциональный параметр
#тип - целое число
- extnet_id = 0
+ #используется при создании
+ #extnet_id = 0
#id vins
#опциональный параметр
#тип - целое число
- vins_id = 1234
+ #используется при создании
+ #vins_id = 1234
#sep ip
#опциональный параметр
#тип - целое число
- sep_id = 0
+ #используется при создании
+ #sep_id = 0
#название пула
#опциональный параметр
#тип - строка
- sep_pool = "pool"
+ #используется при создании
+ #sep_pool = "pool"
#старт/стоп кластера
#опциональный параметр
#тип - булев
- start = true
+ #используется при создании и обновлении
+ #start = true
#включить/отключить кластер
#опциональный параметр
#тип - булев
- enabled = true
+ #используется при создании и обновлении
+ #enabled = true
- #удалить кластер безвозвратно
+ #флаг для удаления k8s_cp, без возможности восстановления
#опциональный параметр
#тип - булев
- permanently = true
+ #используется при удалении
+ #permanently = true
#восстановить кластер из корзины
#опциональный параметр
#тип - булев
- restore = true
+ #используется при обновлении
+ #restore = true
#создать кластер с/без балансировщика нагрузки
#опциональный параметр
#тип - булев
- with_lb = true
+ #используется при создании
+ #with_lb = true
- #позволяет создать схему отказоустройчивой LB
+ #создать схему отказоустройчивой LB
#опциональный параметр
#тип - булев
- ha_mode = true
+ #используется при создании
+ #ha_mode = true
#дополнительные SAN (Subject Alternative Names) для использования в процессе автоматического выписывания сертификата Кластера Kubernetes;
#возможность взаимодействовать с кластером по FQDN
#параметр получает список строк – IP-адреса и/или DNS (по формату RFC 1123 c поддержкой wildcard)
#опциональный параметр
#тип - массив строк
- additional_sans = ["192.168.201.0","192.168.201.1"]
+ #используется при создании
+ #additional_sans = ["192.168.201.0","192.168.201.1"]
#используется для определения настроек и действий, которые должны быть выполнены перед запуском любого другого компонента в кластере
#это позволяет вам настраивать такие вещи, как регистрация node, настройка network и другие задачи инициализации
#опциональный параметр
#тип - строка
- init_config = "{JSON string}"
+ #используется при создании
+ #init_config = "{JSON string}"
#используется для определения глобальных настроек и конфигураций для всего кластера
#он включает в себя такие параметры, как имя кластера, настройки DNS, методы аутентификации и другие конфигурации в масштабах кластера
#опциональный параметр
#тип - строка
- cluster_config = "{JSON string}"
+ #используется при создании
+ #cluster_config = "{JSON string}"
#используется для настройки поведения и параметров Kubelet, который является агентом primary node, запускаемым на каждом node кластера
#он включает в себя такие параметры, как IP-адрес node, распределение ресурсов, политики удаления модулей и другие конфигурации, специфичные для Kubelet
#опциональный параметр
#тип - строка
- kubelet_config = "{JSON string}"
+ #используется при создании
+ #kubelet_config = "{JSON string}"
#используется для настройки поведения и параметров присоединения node к кластеру
#он включает в себя такие параметры, как режим прокси-сервера, диапазоны IP-адресов кластера и другие конфигурации, специфичные для Kube-proxy
#опциональный параметр
#тип - строка
- kube_proxy_config = "{JSON string}"
+ #используется при создании
+ #kube_proxy_config = "{JSON string}"
#используется для настройки поведения и параметров присоединения node к кластеру
#он включает в себя такие параметры, как cluster's control plane endpoint, токен и ключ сертификата
#опциональный параметр
#тип - строка
- join_config = "{JSON string}"
+ #используется при создании
+ #join_config = "{JSON string}"
#при создании кластере использовать подключение только к сети ExtNet
#опциональный параметр
#тип - булев
- extnet_only = true
+ #используется при создании
+ #extnet_only = true
#добавить ssl-сертификат в формате x509 pem
#опциональный параметр
#тип - файл с форматом в виде .crt
- oidc_cert = file("ca.crt")
+ #используется при создании
+ #oidc_cert = file("ca.crt")
#тип эмулируемой системы
#опциональный параметр
#тип - строка
- chipset = "i440fx"
+ #используется при создании
+ #chipset = "i440fx"
#пользовательские значения sysctl для LB
#опциональный параметр
#тип - массив мап
- lb_sysctl_params = [{ key1 = "value1", key2 = "value2" }]
+ #используется при создании и обновлении
+ #lb_sysctl_params = [{ key1 = "value1", key2 = "value2" }]
}
output "cp_out" {
diff --git a/samples/cloudbroker/k8s/resource_k8s_wg/main.tf b/samples/cloudbroker/k8s/resource_k8s_wg/main.tf
index d8cd2ad..c4c1ad1 100644
--- a/samples/cloudbroker/k8s/resource_k8s_wg/main.tf
+++ b/samples/cloudbroker/k8s/resource_k8s_wg/main.tf
@@ -3,7 +3,7 @@
Получение информации о группе воркеров кластера Kubernetes(k8s)
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
@@ -31,73 +31,85 @@ resource "decort_cb_k8s_wg" "wg" {
#обязательный параметр
#это значение должно быть и результат вызова decort_cb_k8s.cluster.k8s_id
#тип - целое число
+ #используется при создании
k8s_id = 1234
#имя worker group
#обязательный параметр
#тип - строка
+ #используется при создании
name = "workers-2"
#количество worker node для создания
#опциональный параметр
#тип - целое число
#по умолчанию - 1
- num = 2
+ #используется при создании и обновлении
+ #num = 2
#количество cpu для 1 worker node
#опциональный параметр
#тип - целое число
#по умолчанию - 1
- cpu = 1
+ #используется при создании
+ #cpu = 1
- #количество RAM для одной worker node в Мбайтах
+ #количество RAM для одной worker node в МБ
#опциональный параметр
#тип - целое число
#по умолчанию - 1024
- ram = 1024
+ #используется при создании
+ #ram = 1024
- #размер загрузочного диска для worker node, в Гбайтах
+ #размер загрузочного диска для worker node, в ГБ
#опциональный параметр
#по умолчанию - 0
#если установлен параметр 0, то размер диска будет равен размеру образа
#тип - целое число
- disk = 10
+ #используется при создании
+ #disk = 10
#список строк с labels для worker группы, в формате: ["label1=value1", "label2=value2"]
#опциональный параметр
#тип - массив строк
- labels = ["label1=value1", "label2=value2"]
+ #используется при создании
+ #labels = ["label1=value1", "label2=value2"]
#список строк с annotations для worker группы, в формате: ["key1=value1", "key2=value2"]
#опциональный параметр
#тип - массив строк
- annotations = ["key1=value1", "key2=value2"]
+ #используется при создании
+ #annotations = ["key1=value1", "key2=value2"]
#список строк с taints для worker группы, в формате: ["key1=value1:NoSchedule", "key2=value2:NoExecute"]
#опциональный параметр
#тип - массив строк
- taints = ["key1=value1", "key2=value2"]
+ #используется при создании
+ #taints = ["key1=value1", "key2=value2"]
#id СХД для создания загрузочных дисков для Worker-групп по умолчанию. Использует sepId образа, если не указан.
#опциональный параметр
#тип - целое число
- worker_sep_id = 1
+ #используется при создании
+ #worker_sep_id = 1
#пул для хранения Workers. Если не заполнить, будет выбран системой
#опциональный параметр
#тип - целое число
- worker_sep_pool = "worker_pool"
+ #используется при создании
+ #worker_sep_pool = "worker_pool"
#перечень аргументов для cloud-init для виртуальных машин worker групп
#опциональный параметр
#тип - файл в формате YAML
- #используется при создании и обновлении ресурса
- cloud_init = file("initconfig.tftpl")
+ #используется при создании и обновлении
+ #cloud_init = file("initconfig.tftpl")
#тип эмулируемой системы
#опциональный параметр
#тип - строка
- chipset = "i440fx"
+ #используется при создании
+ #chipset = "i440fx"
}
diff --git a/samples/cloudbroker/kvmvm/data_kvmvm/main.tf b/samples/cloudbroker/kvmvm/data_kvmvm/main.tf
index 08badf3..851d8ca 100644
--- a/samples/cloudbroker/kvmvm/data_kvmvm/main.tf
+++ b/samples/cloudbroker/kvmvm/data_kvmvm/main.tf
@@ -3,7 +3,7 @@
Получение данных о compute (виртуальной машине).
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
@@ -27,12 +27,10 @@ provider "decort" {
}
data "decort_cb_kvmvm" "comp" {
- #получение информации по идентификатору машины - compute_id
#id виртуальной машины
#обязательный параметр
#тип - целое число
compute_id = 11346
-
}
output "test" {
diff --git a/samples/cloudbroker/kvmvm/data_kvmvm_affinity_relations/main.tf b/samples/cloudbroker/kvmvm/data_kvmvm_affinity_relations/main.tf
index 735309a..f79f5d4 100644
--- a/samples/cloudbroker/kvmvm/data_kvmvm_affinity_relations/main.tf
+++ b/samples/cloudbroker/kvmvm/data_kvmvm_affinity_relations/main.tf
@@ -3,7 +3,7 @@
Получение словаря ВМ (виртуальных машин), разделенного по правилам affinity и anti-affinity.
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
diff --git a/samples/cloudbroker/kvmvm/data_kvmvm_audits/main.tf b/samples/cloudbroker/kvmvm/data_kvmvm_audits/main.tf
index f2336ad..1084ae2 100644
--- a/samples/cloudbroker/kvmvm/data_kvmvm_audits/main.tf
+++ b/samples/cloudbroker/kvmvm/data_kvmvm_audits/main.tf
@@ -3,7 +3,7 @@
Получение данных об аудитах compute (виртулаьной машине)
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
diff --git a/samples/cloudbroker/kvmvm/data_kvmvm_boot_order_get/main.tf b/samples/cloudbroker/kvmvm/data_kvmvm_boot_order_get/main.tf
index 7f8ff2e..248f625 100644
--- a/samples/cloudbroker/kvmvm/data_kvmvm_boot_order_get/main.tf
+++ b/samples/cloudbroker/kvmvm/data_kvmvm_boot_order_get/main.tf
@@ -3,7 +3,7 @@
Получение информации о текущем порядке загрузки ВМ (виртуальной машины).
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
diff --git a/samples/cloudbroker/kvmvm/data_kvmvm_get_audits/main.tf b/samples/cloudbroker/kvmvm/data_kvmvm_get_audits/main.tf
index 3d1628d..1a58268 100644
--- a/samples/cloudbroker/kvmvm/data_kvmvm_get_audits/main.tf
+++ b/samples/cloudbroker/kvmvm/data_kvmvm_get_audits/main.tf
@@ -3,7 +3,7 @@
Получение данных об аудитах compute (виртулаьной машины)
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
diff --git a/samples/cloudbroker/kvmvm/data_kvmvm_get_console_url/main.tf b/samples/cloudbroker/kvmvm/data_kvmvm_get_console_url/main.tf
index 7529366..67a02f4 100644
--- a/samples/cloudbroker/kvmvm/data_kvmvm_get_console_url/main.tf
+++ b/samples/cloudbroker/kvmvm/data_kvmvm_get_console_url/main.tf
@@ -3,7 +3,7 @@
Получение url compute (виртуальной машины)
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
diff --git a/samples/cloudbroker/kvmvm/data_kvmvm_get_log/main.tf b/samples/cloudbroker/kvmvm/data_kvmvm_get_log/main.tf
index 543008c..0d46433 100644
--- a/samples/cloudbroker/kvmvm/data_kvmvm_get_log/main.tf
+++ b/samples/cloudbroker/kvmvm/data_kvmvm_get_log/main.tf
@@ -3,7 +3,7 @@
Получение логов compute (виртуальной машины)
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
diff --git a/samples/cloudbroker/kvmvm/data_kvmvm_list/main.tf b/samples/cloudbroker/kvmvm/data_kvmvm_list/main.tf
index bfadf31..39939ac 100644
--- a/samples/cloudbroker/kvmvm/data_kvmvm_list/main.tf
+++ b/samples/cloudbroker/kvmvm/data_kvmvm_list/main.tf
@@ -3,7 +3,7 @@
Получение данных о списке compute (виртуальных машин)
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
@@ -56,6 +56,11 @@ data "decort_cb_kvmvm_list" "compute_list" {
#тип - строка
#tech_status = "STOPPED"
+ #фильтр по названию вычислительного узла
+ #опциональный параметр
+ #тип - строка
+ #stack_name = "stack_name"
+
#фильтр по статусу
#опциональный параметр
#тип - строка
@@ -91,10 +96,10 @@ data "decort_cb_kvmvm_list" "compute_list" {
#тип - целое число
#extnet_id = 100
- #флаг влючения в результат удаленных балансироващиков нагрузки
+ #флаг включения в результат удаленных балансировщиков нагрузки
#опциональный параметр
#если не задан - выводятся все доступные неудаленные балансировщики
- #значение по-умолчанию - false
+ #по умолчанию - false
#тип - булев
#includedeleted = true
diff --git a/samples/cloudbroker/kvmvm/data_kvmvm_list_deleted/main.tf b/samples/cloudbroker/kvmvm/data_kvmvm_list_deleted/main.tf
index 3992b73..f212bc4 100644
--- a/samples/cloudbroker/kvmvm/data_kvmvm_list_deleted/main.tf
+++ b/samples/cloudbroker/kvmvm/data_kvmvm_list_deleted/main.tf
@@ -3,7 +3,7 @@
Получение данных о списке удаленных compute (виртуальных машин)
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
diff --git a/samples/cloudbroker/kvmvm/data_kvmvm_migrate_storage_info/main.tf b/samples/cloudbroker/kvmvm/data_kvmvm_migrate_storage_info/main.tf
index 6961c23..f9b01de 100644
--- a/samples/cloudbroker/kvmvm/data_kvmvm_migrate_storage_info/main.tf
+++ b/samples/cloudbroker/kvmvm/data_kvmvm_migrate_storage_info/main.tf
@@ -3,7 +3,7 @@
Получение информации о последней (включая текущую) миграции хранилища.
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
diff --git a/samples/cloudbroker/kvmvm/data_kvmvm_pci_device_list/main.tf b/samples/cloudbroker/kvmvm/data_kvmvm_pci_device_list/main.tf
index c337bae..7d23822 100644
--- a/samples/cloudbroker/kvmvm/data_kvmvm_pci_device_list/main.tf
+++ b/samples/cloudbroker/kvmvm/data_kvmvm_pci_device_list/main.tf
@@ -3,7 +3,7 @@
Получение данных о списке подключенных устройств (PCI)
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
diff --git a/samples/cloudbroker/kvmvm/data_kvmvm_pfw_list/main.tf b/samples/cloudbroker/kvmvm/data_kvmvm_pfw_list/main.tf
index 1306a6e..64260d7 100644
--- a/samples/cloudbroker/kvmvm/data_kvmvm_pfw_list/main.tf
+++ b/samples/cloudbroker/kvmvm/data_kvmvm_pfw_list/main.tf
@@ -3,7 +3,7 @@
Получение данных об списке port forwarding compute (виртулаьных машин)
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
diff --git a/samples/cloudbroker/kvmvm/data_kvmvm_snapshot_list/main.tf b/samples/cloudbroker/kvmvm/data_kvmvm_snapshot_list/main.tf
index 2fecc38..4d96c5f 100644
--- a/samples/cloudbroker/kvmvm/data_kvmvm_snapshot_list/main.tf
+++ b/samples/cloudbroker/kvmvm/data_kvmvm_snapshot_list/main.tf
@@ -3,7 +3,7 @@
Получение списка моментальных снимков ВМ (виртуальных машин).
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
diff --git a/samples/cloudbroker/kvmvm/data_kvmvm_snapshot_usage/main.tf b/samples/cloudbroker/kvmvm/data_kvmvm_snapshot_usage/main.tf
index 7273313..c21087b 100644
--- a/samples/cloudbroker/kvmvm/data_kvmvm_snapshot_usage/main.tf
+++ b/samples/cloudbroker/kvmvm/data_kvmvm_snapshot_usage/main.tf
@@ -3,7 +3,7 @@
Получение настоящего размера снимка ВМ (виртуальной машины) в хранилище.
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
@@ -35,7 +35,7 @@ data "decort_cb_kvmvm_snapshot_usage" "snp_usage" {
#label снимка
#опциональный параметр
#тип - строка
- label = "test"
+ #label = "test"
}
diff --git a/samples/cloudbroker/kvmvm/data_kvmvm_user_list/main.tf b/samples/cloudbroker/kvmvm/data_kvmvm_user_list/main.tf
index 06cb064..dd88f43 100644
--- a/samples/cloudbroker/kvmvm/data_kvmvm_user_list/main.tf
+++ b/samples/cloudbroker/kvmvm/data_kvmvm_user_list/main.tf
@@ -3,7 +3,7 @@
Получение данных об юзерах compute (виртуальной машины)
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
diff --git a/samples/cloudbroker/kvmvm/data_kvmvm_vgpu_list/main.tf b/samples/cloudbroker/kvmvm/data_kvmvm_vgpu_list/main.tf
index 659fcb3..b14b0f6 100644
--- a/samples/cloudbroker/kvmvm/data_kvmvm_vgpu_list/main.tf
+++ b/samples/cloudbroker/kvmvm/data_kvmvm_vgpu_list/main.tf
@@ -3,7 +3,7 @@
Получение данных о списке подключенных графических процессоров
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
diff --git a/samples/cloudbroker/kvmvm/resource_kvmvm/main.tf b/samples/cloudbroker/kvmvm/resource_kvmvm/main.tf
index 92acc28..9de6947 100644
--- a/samples/cloudbroker/kvmvm/resource_kvmvm/main.tf
+++ b/samples/cloudbroker/kvmvm/resource_kvmvm/main.tf
@@ -6,7 +6,7 @@
2. Редактировать compute
3. Удалять compute
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
@@ -22,9 +22,9 @@ terraform {
provider "decort" {
- authenticator = "decs3o"
+ authenticator = "decs3o"
#controller_url =
- controller_url = "https://ds1.digitalenergy.online"
+ controller_url = "https://ds1.digitalenergy.online"
#oauth2_url =
oauth2_url = "https://sso.digitalenergy.online"
allow_unverified_ssl = true
@@ -33,108 +33,127 @@ provider "decort" {
resource "decort_cb_kvmvm" "comp" {
#имя compute
#обязательный параметр
- #мб изменен
#тип - строка
+ #используется при создании и обновлении
name = "test-tf-compute-update-new"
- #id resource group
+ #id ресурсной группы
#обязательный параметр
#тип - целое число
+ #используется при создании
rg_id = 1111
#тип драйвера для compute
#обязательный параметр
#тип - строка
#возможные значения: "SVA_KVM_X86", "KVM_X86"
+ #используется при создании
driver = "KVM_X86"
#число cpu
#обязательный параметр
#тип - целое число
+ #используется при создании и обновлении
cpu = 1
#кол-во оперативной памяти, МБ
#обязательный параметр
#тип - целое число
+ #используется при создании и обновлении
ram = 2048
#тип эмулируемой системы
#опциональный параметр
#тип - строка
#возможные значения: "i440fx", "Q35"
+ #используется при создании и обновлении
#chipset = "i440fx"
#id образа диска для создания compute
#опциональный параметр
#тип - целое число
+ #используется при создании и обновлении
#image_id = 111
- #если значение равно True, параметры image_id, boot_disk_size, sep_id, pool игнорируются, и компьютер создается без загрузочного диска в остановленном состоянии
+ #создать вм без загрузочного диска
+ #если значение равно True, параметры image_id, boot_disk_size, sep_id, pool игнорируются
+ #компьютер создается без загрузочного диска в остановленном состоянии
#опциональный параметр
#тип - булев
+ #используется при создании
#without_boot_disk = true
#размер загрузочного диска
#опциональный параметр
#тип - целое число
+ #используется при создании и обновлении
#boot_disk_size = 20
- #ID сепа для boot диска
+ #id сепа для boot диска
#опциональный параметр
#тип - целое число
+ #используется при создании
#sep_id = 1
#название пула
#опциональный параметр
#тип - строка
+ #используется при создании
#pool = "data02"
#конфигурация cloud init
#опциональный параметр
#тип - файл в формате JSON
+ #используется при создании
#cloud_init = file("initconfig.tftpl")
#описание compute
#опциональный параметр
#тип - строка
+ #используется при создании и обновлении
#description = "test update description in tf words update"
#stack id
#опциональный параметр
#тип - целое число
+ #используется при создании
#stack_id = 1
#id образа CD-ROM для загрузки
- #используется при изменении ресурса, при повторном старте вм
#опциональный параметр
#тип - целое число
+ #используется при обновлении, при повторном старте вм
#alt_boot_id = 1
#необходимость выравнивать ВМ по NUMA
#опциональный параметр
#тип - строка
#возможные значения - "none, "strict", "loose"
- #значение по умолчанию - "none"
+ #по умолчанию - "none"
+ #используется при создании и обновлении
#numa_affinity = "loose"
#необходимость запускать ВМ на выделенных CPU ядрах
#опциональный параметр
#тип - булев
- #значение по умолчанию - false
+ #по умолчанию - false
+ #используется при создании и обновлении
#cpu_pin = true
#необходимость использовать для выделения RAM виртуальной машины Huge Pages
#опциональный параметр
#тип - булев
- #значение по умолчанию - false
+ #по умолчанию - false
+ #используется при создании и обновлении
#hp_backed = true
- #создание и добавление диска дял compute
+ #создание и добавление диска для compute
#опциональный параметр
#тип - список дисков
+ #используется при создании и обновлении
#disks {
#имя диска
- #Обязательный для диска параметр
+ #обязательный для диска параметр
#тип - строка
#disk_name = "disk_name"
@@ -156,7 +175,7 @@ resource "decort_cb_kvmvm" "comp" {
#опциональный параметр
#тип - строка
#pool = "data01"
-
+
#список node
#опциональный параметр
#тип - массив целых чисел
@@ -167,11 +186,11 @@ resource "decort_cb_kvmvm" "comp" {
#тип - строка
#desc = ""
- #ID образа
+ #id образа
#опциональный параметр
#image_id = 378
- #флаг для удаления диска
+ #флаг для удаления диска, без возможности восстановления
#опциональный параметр
#тип - булев
#permanently = false
@@ -181,6 +200,7 @@ resource "decort_cb_kvmvm" "comp" {
#опциональный параметр
#может быть один, несколько или ни одного блока
#тип - блок
+ #используется при создании и обновлении
#affinity_rules {
#тип правила
#возможные значения - compute или node
@@ -192,30 +212,31 @@ resource "decort_cb_kvmvm" "comp" {
#возможные значения - RECOMMENDED и REQUIRED
#обязательный параметр
#тип - строка
- #policy = "RECOMMENDED"
+ #policy = "RECOMMENDED"
- #режим проверки
+ #режим проверки
#возможные значения - ANY, EQ, NE
#обязательный параметр
#тип - строка
- #mode = "ANY"
+ #mode = "ANY"
#ключ правила
#обязательный параметр
#тип - строка
- #key = "testkey"
+ #key = "testkey"
#ключ правила
- #необязательный параметр
+ #опциональный параметр
#тип - строка
- #value = "testvalue"
- #}
+ #value = "testvalue"
+ #}
#правила anti-affinity
#опциональный параметр
#может быть один, несколько или ни одного блока
#тип - блок
- #anti_affinity_rules {
+ #используется при создании и обновлении
+ #anti_affinity_rules {
#тип правила
#возможные значения - compute или node
#обязательный параметр
@@ -226,259 +247,282 @@ resource "decort_cb_kvmvm" "comp" {
#возможные значения - RECOMMENDED и REQUIRED
#обязательный параметр
#тип - строка
- #policy = "RECOMMENDED"
+ #policy = "RECOMMENDED"
- #режим проверки
+ #режим проверки
#возможные значения - ANY, EQ, NE
#обязательный параметр
#тип - строка
- #mode = "ANY"
+ #mode = "ANY"
#ключ правила
#обязательный параметр
#тип - строка
- #key = "testkey"
+ #key = "testkey"
#ключ правила
- #необязательный параметр
+ #опциональный параметр
#тип - строка
- #value = "testvalue"
- #}
+ #value = "testvalue"
+ #}
#установка метки для вм
#опциональный параметр
#тип - строка
+ #используется при создании и обновлении
#affinity_label = "test4"
-
#наименование системы
#опциональный параметр
- #используется при создании вм
#по умолчанию - не задан
#тип - строка
- #is=""
+ #используется при создании
+ #is = ""
#назначение вм
#опциональный параметр
- #используется при создании вм
#по умолчанию - не задан
#тип - строка
+ #используется при создании
#ipa_type = ""
- #ID экстра дисков
+ #id экстра дисков
#опциональный параметр
#тип - список чисел
+ #используется при создании и обновлении
#extra_disks = [1234, 4322, 1344]
-
+
#управление XML виртуальной машины
#опциональный параметр
#тип - строка (json-encoded)
+ #используется при создании и обновлении
#custom_fields = "{`key`:`value`}"
- #присоединения сетей и удаление сетей в компьюте
+ #присоединение сетей и удаление сетей в компьюте
#опциональный параметр
#тип - блок
- #network {
- #тип сети
- #обязательный параметр
- #возможные значения - "VINS", "EXTNET", "VFNIC", "DPDK" (при выборе типа DPDK, необходимо указать hp_backed = true)
- #тип - строка
- #net_type = "VINS"
-
- #ID сети
- #обязательный параметр
- #тип - целое число
- #net_id = 1234
-
- #IP адрес входящий в сеть
- #опциональный параметр
- #тип - строка
- #ip_address = "127.0.0.1"
-
- #вес сети, указывается при необходимости указания порядка подключения сетей
- #первой подключается сеть с наименьшим весом
- #сеть с нулевым или неуказанным весом имеет наименьший приоритет
- #опциональный параметр
- #тип - целое число
- #weight = 15
-
- #максимальный объём данных, который может быть передан за одну итерацию
- #используется только с сетями типа "DPDK"
- #возможные значения - 1-9216
- #опциональный параметр
- #тип - целое число
- #mtu = 1500
- #}
+ #используется при создании и обновлении
+ #network {
+ #тип сети
+ #обязательный параметр
+ #возможные значения - "VINS", "EXTNET", "VFNIC", "DPDK" (при выборе типа DPDK, необходимо указать hp_backed = true)
+ #тип - строка
+ #net_type = "VINS"
+
+ #id сети
+ #обязательный параметр
+ #тип - целое число
+ #net_id = 1234
+
+ #ip адрес входящий в сеть
+ #опциональный параметр
+ #тип - строка
+ #ip_address = "127.0.0.1"
+
+ #mac-адрес интерфейса компьюта
+ #опциональный параметр
+ #тип - строка
+ #mac = "52:54:01:12:34:60"
+
+ #вес сети, указывается при необходимости указания порядка подключения сетей
+ #первой подключается сеть с наименьшим весом
+ #сеть с нулевым или неуказанным весом имеет наименьший приоритет
+ #опциональный параметр
+ #тип - целое число
+ #weight = 15
+
+ #максимальный объём данных, который может быть передан за одну итерацию
+ #используется только с сетями типа "DPDK"
+ #возможные значения - 1-9216
+ #опциональный параметр
+ #тип - целое число
+ #mtu = 1500
+ #}
#добавление и удаление тэгов
#опциональный параметр
#тип - блок
- #tags {
- #ключ для тэга
- #обязательный параметр
- #тип - строка
- #key = "key"
-
- #значения тэга
- #обязательный параметр
- #тип - строка
- #value = "value"
- #}
+ #используется при создании и обновлении
+ #tags {
+ #ключ для тэга
+ #обязательный параметр
+ #тип - строка
+ #key = "key"
+
+ #значения тэга
+ #обязательный параметр
+ #тип - строка
+ #value = "value"
+ #}
#добавление и удаление port forwarding
#опциональный параметр
#тип - блок
- #port_forwarding {
- #номер внешнего начального порта для правила
- #обязательный параметр
- #тип - целое число
- #public_port_start = 2023
-
- #номер внешнего последнего порта для правила
- #опциональный параметр
- #тип - целое число
- #по умолчанию - -1
- #public_port_end = 2023
-
- #номер внутреннего базового порта
- #обязательный параметр
- #тип - целое число
- #local_port = 80
-
- #сетевой протокол
- #обязательный параметр
- #тип - строка
- #proto = "tcp"
- #}
+ #используется при создании и обновлении
+ #port_forwarding {
+ #номер внешнего начального порта для правила
+ #обязательный параметр
+ #тип - целое число
+ #public_port_start = 2023
+
+ #номер внешнего последнего порта для правила
+ #опциональный параметр
+ #тип - целое число
+ #по умолчанию - -1
+ #public_port_end = 2023
+
+ #номер внутреннего базового порта
+ #обязательный параметр
+ #тип - целое число
+ #local_port = 80
+
+ #сетевой протокол
+ #обязательный параметр
+ #тип - строка
+ #proto = "tcp"
+ #}
#предоставить/забрать пользователю доступ к компьюту
#опциональный параметр
#тип - блок
- #user_access {
- #имя юзера, которому предоставляем доступ
- #обязательный параметр
- #тип - строка
- #username = "some@decs3o"
-
- #права: 'R' - только на чтение, 'RCX' - чтение/запись, 'ARCXDU' - админ
- #обязательный параметр
- #тип - строка
- #access_type = "ARCXDU"
- #}
+ #используется при создании и обновлении
+ #user_access {
+ #имя юзера, которому предоставляем доступ
+ #обязательный параметр
+ #тип - строка
+ #username = "some@decs3o"
+
+ #права: 'R' - только на чтение, 'RCX' - чтение/запись, 'ARCXDU' - админ
+ #обязательный параметр
+ #тип - строка
+ #access_type = "ARCXDU"
+ #}
#создать/удалить снапшот компьюта
#опциональный параметр
#тип - блок
- #snapshot {
- #лейбл снапшота
- #обязательный параметр
- #тип - строка
- #label = "label1"
- #}
+ #используется при создании и обновлении
+ #snapshot {
+ #лейбл снапшота
+ #обязательный параметр
+ #тип - строка
+ #label = "label1"
+ #}
#флаг для удаления снапшотов в асинхронном режиме
#опциональный параметр
- #дефолтное значение - false
#тип - булев
+ #по умолчанию - false
+ #используется при обновлении
#snapshot_delete_async = true
#rollback на нужный снапшот
#опциональный параметр
#не имеет смысла при отсутсвии снапшотов
#тип - блок
- #rollback {
- #лейбл снапшота
- #обязательный параметр
- #тип - строка
- #label = "label1"
- #}
+ #используется при обновлении
+ #rollback {
+ #лейбл снапшота
+ #обязательный параметр
+ #тип - строка
+ #label = "label1"
+ #}
#вставить/удалить СD rom
#опциональный параметр
#максимальное кол-во - 1
#тип - блок
- #cd {
- #ID образа диска CD rom
- #обязательный параметр
- #тип - целое число
- #cdrom_id = 344
- #}
+ #используется при создании и обновлении
+ #cd {
+ #id образа диска CD rom
+ #обязательный параметр
+ #тип - целое число
+ #cdrom_id = 344
+ #}
#добавить компьют на стэк
#опциональный параметр
#тип - булев
+ #используется при создании и обновлении
#pin_to_stack = true
#список ядер для использования в механизме vcpupinning. Количество указанных ядер должно быть равно количеству виртуальных процессоров ВМ
#игнорируется если cpu_pin=false или pin_to_stack=false
#опциональный параметр
#тип - массив целых чисел
+ #используется при создании и обновлении
#preferred_cpu = [1234, 456]
#флаг для старта компьюта при рестарте ноды
#опциональный параметр
#тип - булев
+ #используется при создании и обновлении
#auto_start_w_node = true
- #флаг для принужительного добавления компьюта на стэк
+ #флаг для принудительного добавления компьюта на стэк
#опциональный параметр
#тип - булев
+ #используется при создании и обновлении
#force_pin = true
#список PCI девайсов
#опциональный параметр
#тип - массив целых чисел
+ #используется при создании и обновлении
#pci_devices = [1,2]
#флаг доступности компьюта для проведения с ним операций
#опциональный параметр
#тип - булев
+ #используется при создании и обновлении
#enabled = true
#pause/resume компьюта
#опциональный параметр
#тип - булев
+ #используется при создании и обновлении
#pause = true
#сделать компьют заново
#опциональный параметр
#тип - булев
+ #используется при обновлении
#reset = true
#восстановить удаленный компьют из корзины
#опциональный параметр
#тип - булев
+ #используется при обновлении
#restore = true
#флаг для редеплоя компьюта
#опциональный параметр
#тип - булев
+ #используется при обновлении
#force_stop = true
- #флаг для предоставления дисков из node
- #опциональный параметр
- #тип - булев
- #по умолчанию - true
- #depresent = true
-
#флаг для ресайза компьюта
#опциональный параметр
#тип - булев
+ #используется при обновлении
#force_resize = true
#запуск/стоп компьюта
#опциональный параметр
#тип - булев
+ #используется при создании и обновлении
#started = true
#detach диска при удалении компьюта
#опциональный параметр
#тип - булев
+ #используется при удалении
#detach_disks = true
- #флаг для удаления компьюта
+ #флаг для удаления компьюта, без возможности восстановления
#опциональный параметр
#тип - булев
+ #используется при удалении
#permanently = false
#конфигурация параметров libvirt virtio интерфейса
@@ -486,51 +530,79 @@ resource "decort_cb_kvmvm" "comp" {
#добавление блока возможно только при выключенной виртуальной машине,
#удаление блока удалит настройки только локально, состояние на платформе не изменится
#тип - блок
+ #используется при создании и обновлении
#libvirt_settings {
- #тип сети
- #обязательный параметр
- #возможные значения - "VINS", "VFNIC", "DPDK"
- #тип - строка
- #net_type = "VINS"
-
- #ID сети
- #обязательный параметр
- #тип - целое число
- #net_id = 1234
-
- #tx mode
- #опциональный параметр
- #возможные значения - 'iothread', 'timer' или 'selected by hypervisor'
- #тип - строка
- #txmode = "iothread"
-
- #IO event
- #опциональный параметр
- #возможные значения - 'on', 'off' or 'selected by hypervisor'
- #тип - строка
- #ioeventfd = "on"
-
- #event ID
- #опциональный параметр
- #возможные значения - 'on', 'off' or 'selected by hypervisor'
- #тип - строка
- #event_idx = "off"
-
- #количество очередей
- #опциональный параметр
- #тип - целое число
- #queues = "4"
-
- #длина очереди RX
- #опциональный параметр
- #тип - целое число
- #rx_queue_size = "1024"
-
- #длина очереди TX
- #опциональный параметр
- #тип - целое число
- #tx_queue_size = "1024"
- #}
+ #тип сети
+ #обязательный параметр
+ #возможные значения - "VINS", "VFNIC", "DPDK"
+ #тип - строка
+ #net_type = "VINS"
+
+ #id сети
+ #обязательный параметр
+ #тип - целое число
+ #net_id = 1234
+
+ #tx mode
+ #опциональный параметр
+ #возможные значения - 'iothread', 'timer' или 'selected by hypervisor'
+ #тип - строка
+ #txmode = "iothread"
+
+ #io event
+ #опциональный параметр
+ #возможные значения - 'on', 'off' or 'selected by hypervisor'
+ #тип - строка
+ #ioeventfd = "on"
+
+ #event ID
+ #опциональный параметр
+ #возможные значения - 'on', 'off' or 'selected by hypervisor'
+ #тип - строка
+ #event_idx = "off"
+
+ #количество очередей
+ #опциональный параметр
+ #тип - целое число
+ #queues = "4"
+
+ #длина очереди RX
+ #опциональный параметр
+ #тип - целое число
+ #rx_queue_size = "1024"
+
+ #длина очереди TX
+ #опциональный параметр
+ #тип - целое число
+ #tx_queue_size = "1024"
+ #}
+
+ #тип ВМ
+ #возможные значения - linux, windows, unknown
+ #опциональный параметр
+ #тип - строка
+ #используется при создании и обновлении
+ #loader_type = "unknown"
+
+ #тип загрузки образа
+ #возможные значения - bios, uefi
+ #опциональный параметр
+ #тип - строка
+ #используется при создании и обновлении
+ #boot_type = "bios"
+
+ #изменение размера ВМ
+ #опциональный параметр
+ #тип - булев
+ #используется при создании и обновлении
+ #hot_resize = false
+
+ #наименование сетевого интерфейса
+ #возможные значения - eth, ens
+ #опциональный параметр
+ #тип - строка
+ #используется при создании и обновлении
+ #network_interface_naming = "ens"
}
output "test" {
diff --git a/samples/cloudbroker/lb/data_lb/main.tf b/samples/cloudbroker/lb/data_lb/main.tf
index 5b25fcb..c67049e 100644
--- a/samples/cloudbroker/lb/data_lb/main.tf
+++ b/samples/cloudbroker/lb/data_lb/main.tf
@@ -1,9 +1,9 @@
/*
Пример использования
-Получение информации о load balancer (балансировщик нагрузок)
+Получение информации о load balancer (балансировщик нагрузки)
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
@@ -27,7 +27,7 @@ provider "decort" {
}
data "decort_cb_lb" "lb" {
- #id балансировщика нагрузок
+ #id балансировщика нагрузки
#обязательный параметр
#тип - целое число
lb_id = 238
diff --git a/samples/cloudbroker/lb/data_lb_list/main.tf b/samples/cloudbroker/lb/data_lb_list/main.tf
index 8bf5bbf..fa071de 100644
--- a/samples/cloudbroker/lb/data_lb_list/main.tf
+++ b/samples/cloudbroker/lb/data_lb_list/main.tf
@@ -3,7 +3,7 @@
Получение списка load balancer (балансировщиков нагрузки)
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
@@ -70,7 +70,7 @@ data "decort_cb_lb_list" "lbl" {
#флаг включения в результат удаленных балансировщиков нагрузки
#опциональный параметр
#тип - булев
- #по-умолчанию - false
+ #по умолчанию - false
#если не задан - выводятся все доступные неудаленные балансировщики
#includedeleted = true
diff --git a/samples/cloudbroker/lb/data_lb_list_deleted/main.tf b/samples/cloudbroker/lb/data_lb_list_deleted/main.tf
index fe3e4ce..336135f 100644
--- a/samples/cloudbroker/lb/data_lb_list_deleted/main.tf
+++ b/samples/cloudbroker/lb/data_lb_list_deleted/main.tf
@@ -3,7 +3,7 @@
Получение списка удаленных load balancer (балансировщиков нагрузок)
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
diff --git a/samples/cloudbroker/lb/resource_lb/main.tf b/samples/cloudbroker/lb/resource_lb/main.tf
index 5b668b8..62f8d96 100644
--- a/samples/cloudbroker/lb/resource_lb/main.tf
+++ b/samples/cloudbroker/lb/resource_lb/main.tf
@@ -7,7 +7,7 @@
3. Удалять load balancer
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
@@ -34,24 +34,28 @@ resource "decort_cb_lb" "lb" {
#id ресурсной группы для создания балансировщика
#обязательный параметр
#тип - целое число
+ #используется при создании
rg_id = 1111
#наименование load balancer
#обязательный параметр
#тип - строка
+ #используется при создании
name = "tf-test-lb"
#id внешней сети
#опциональный параметр
#id внешней сети и id виртуальной сети не могут быть одновременно = 0
#тип - целое число
- extnet_id = 6
+ #используется при создании
+ #extnet_id = 6
#id виртуальной сети
#опциональный параметр
#id внешней сети и id виртуальной сети не могут быть одновременно = 0
#тип - целое число
- vins_id = 758
+ #используется при создании
+ #vins_id = 758
#флаг запуска load balancer
#обязательный параметр
@@ -59,57 +63,67 @@ resource "decort_cb_lb" "lb" {
#то для успешного старта, он должен быть доступен (enable = true)
#по умолчанию - true
#тип - булев
- start = true
+ #используется при создании и обновлении
+ #start = true
- #позволяет создать схему отказоустройчивой LB
+ #создать схему отказоустойчивой LB
#опциональный параметр
#тип - булев
+ #используется при создании и обновлении
#ha_mode = true
#описание
#опциональный параметр
#тип - строка
- #descс= "temp super lb for testing tf provider"
+ #используется при создании и обновлении
+ #desc= "temp super lb for testing tf provider"
#флаг доступности load balancer
#опциональный параметр
#тип - булев
+ #используется при создании и обновлении
#enable = true
#флаг перезапуска load balancer
#опциональный параметр
#перезагрузка срабатывает только при изменении флага с false на true
#тип - булев
+ #используется при обновлении
#restart = false
#флаг сброса конфигурации load balancer
#опциональный параметр
#сброс срабатывает только при изменении флага с false на true
#тип - булев
+ #используется при обновлении
#config_reset = false
- #флаг моментального удаления load balancer
+ #флаг для удаления load balancer, без возможности восстановления
#опциональный параметр
#применяется при выполнении команды terraform destroy
#по умолчанию - false
#тип - булев
+ #используется при удалении
#permanently = false
#флаг восстановления load balancer
#опциональный параметр
#восстановить можно load balancer, удаленным с флагом permanently = false
#тип - булев
+ #используется при обновлении
#restore = true
#флаг используемый при рестарте load balancer
#опциональный параметр
- #значение по умолчанию - true, при данном значении рестарт производится на обоих нодах в HA mode
+ #по умолчанию - true, при данном значении рестарт производится на обоих нодах в HA mode
#тип - булев
+ #используется при обновлении
#safe = true
#пользовательские значения sysctl для LB
#опциональный параметр
#тип - список мап
+ #используется при создании и обновлении
#sysctl_params = [{ key1 = "value1", key2 = "value2" }]
}
diff --git a/samples/cloudbroker/lb/resource_lb_backend/main.tf b/samples/cloudbroker/lb/resource_lb_backend/main.tf
index fd5e87f..74f5b23 100644
--- a/samples/cloudbroker/lb/resource_lb_backend/main.tf
+++ b/samples/cloudbroker/lb/resource_lb_backend/main.tf
@@ -7,7 +7,7 @@
3. Удалять backend
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
@@ -30,15 +30,17 @@ provider "decort" {
allow_unverified_ssl = true
}
-resource "decort_cb_lb_backend" "lb" {
- #id балансировщика нагрузок
+resource "decort_cb_lb_backend" "lbb" {
+ #id балансировщика нагрузки
#обязательный параметр
#тип - целое число
+ #используется при создании
lb_id = 668
#имя бекенда для создания сервера
#обязательный параметр
#тип - строка
+ #используется при создании
name = "testBackend"
#алгоритм балансировки
@@ -46,6 +48,7 @@ resource "decort_cb_lb_backend" "lb" {
#доступные значения - "roundrobin", "static-rr", "leastconn"
#по умолчанию - "roundrobin"
#тип - строка
+ #используется при создании и обновлении
#algorithm = "roundrobin"
#-------------------
@@ -56,42 +59,49 @@ resource "decort_cb_lb_backend" "lb" {
#опциональный параметр
#по умолчанию - 5000
#тип - целое число
+ #используется при создании и обновлении
#inter = 5000
#интервал между проверками доступности сервера после восстановления, в миллисекундах
#опциональный параметр
#по умолчанию - 10000
#тип - целое число
+ #используется при создании и обновлении
#downinter = 1000
#кол-во проверок, которые сервер должен успешно пройти
#опциональный параметр
#тип - целое число
#по умолчанию - 2
+ #используется при создании и обновлении
#rise = 2
#кол-во проверок, которые сервер может не пройти и после этого получить статус "unavailable"
#опциональный параметр
#по умолчанию - 2
#тип - целое число
+ #используется при создании и обновлении
#fall = 2
#кол-во миллисекунд - время между получением сервера статуса "available" и открытием соединений
#опциональный параметр
#по умолчанию - 60000
#тип - целое число
+ #используется при создании и обновлении
#slowstart = 60000
#максимальное кол-во соединений сервера, при достижении этого кол-ва, сервер выходит из схемы балансирования
#опциональный параметр
#по умолчанию - 250
#тип - целое число
+ #используется при создании и обновлении
#maxconn = 250
- #максимальное кол-во соединений в очереди серевера, при достижении этого кол-ва, соединения будут перенаправлены на другой сервер
+ #максимальное кол-во соединений в очереди сервера, при достижении этого кол-ва, соединения будут перенаправлены на другой сервер
#опциональный параметр
#по умолчанию - 256
#тип - целое число
+ #используется при создании и обновлении
#maxqueue = 256
#вес сервера для балансировки
@@ -100,10 +110,11 @@ resource "decort_cb_lb_backend" "lb" {
#макс - 255
#по умолчанию - 100
#тип - целое число
+ #используется при создании и обновлении
#weight = 100
}
output "test" {
- value = decort_cb_lb_backend.lb
+ value = decort_cb_lb_backend.lbb
}
diff --git a/samples/cloudbroker/lb/resource_lb_backend_server/main.tf b/samples/cloudbroker/lb/resource_lb_backend_server/main.tf
index 037613e..34c3036 100644
--- a/samples/cloudbroker/lb/resource_lb_backend_server/main.tf
+++ b/samples/cloudbroker/lb/resource_lb_backend_server/main.tf
@@ -7,7 +7,7 @@
3. Удалять server
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
@@ -30,30 +30,35 @@ provider "decort" {
allow_unverified_ssl = true
}
-resource "decort_cb_lb_backend_server" "lb" {
- #id балансировщика нагрузок
+resource "decort_cb_lb_backend_server" "lbbs" {
+ #id балансировщика нагрузки
#обязательный параметр
#тип - целое число
+ #используется при создании
lb_id = 668
#имя бекенда для создания сервера
#обязательный параметр
#тип - строка
+ #используется при создании
backend_name = "testBackend"
#имя сервера
#обязательный параметр
#тип - строка
+ #используется при создании
name = "testServer"
#ip адрес сервера
#обязательный параметр
#тип - строка
+ #используется при создании
address = "192.168.5.33"
#порт сервера
#обязательный параметр
#тип - целое число
+ #используется при создании
port = 6553
#проверка доступности сервера
@@ -61,48 +66,56 @@ resource "decort_cb_lb_backend_server" "lb" {
#доступные значения - "disabled", "enabled"
#по умолчанию - "enabled"
#тип - строка
+ #используется при создании
#check = "enabled"
#интервал между проверками, в миллисекундах
#опциональный параметр
#по умолчанию - 5000
#тип - целое число
+ #используется при создании и обновлении
#inter = 5000
#интервал между проверками доступности сервера после восстановления, в миллисекундах
#опциональный параметр
#по умолчанию - 10000
#тип - целое число
+ #используется при создании и обновлении
#downinter = 1000
#кол-во проверок, которые сервер должен успешно пройти
#опциональный параметр
#по умолчанию - 2
#тип - целое число
+ #используется при создании и обновлении
#rise = 2
#кол-во проверок, которые сервер может не пройти и после этого получить статус "unavailable"
#опциональный параметр
#по умолчанию - 2
#тип - целое число
+ #используется при создании и обновлении
#fall = 2
#кол-во миллисекунд - время между получением сервера статуса "available" и открытием соединений
#опциональный параметр
#по умолчанию - 60000
#тип - целое число
+ #используется при создании и обновлении
#slowstart = 60000
#максимальное кол-во соединений сервера, при достижении этого кол-ва, сервер выходит из схемы балансирования
#опциональный параметр
#по умолчанию - 250
#тип - целое число
+ #используется при создании и обновлении
#maxconn = 250
#максимальное кол-во соединений в очереди серевера, при достижении этого кол-ва, соединения будут перенаправлены на другой сервер
#опциональный параметр
#по умолчанию - 256
#тип - целое число
+ #используется при создании и обновлении
#maxqueue = 256
#вес сервера для балансировки
@@ -111,10 +124,11 @@ resource "decort_cb_lb_backend_server" "lb" {
#макс - 255
#по умолчанию - 100
#тип - целое число
+ #используется при создании и обновлении
#weight = 100
}
output "test" {
- value = decort_cb_lb_backend_server.lb
+ value = decort_cb_lb_backend_server.lbbs
}
diff --git a/samples/cloudbroker/lb/resource_lb_frontend/main.tf b/samples/cloudbroker/lb/resource_lb_frontend/main.tf
index 1c43d27..3f21776 100644
--- a/samples/cloudbroker/lb/resource_lb_frontend/main.tf
+++ b/samples/cloudbroker/lb/resource_lb_frontend/main.tf
@@ -6,7 +6,7 @@
2. Удалять frontend
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
@@ -30,19 +30,22 @@ provider "decort" {
}
resource "decort_cb_lb_frontend" "lb" {
- #id балансировщика нагрузок
+ #id балансировщика нагрузки
#обязательный параметр
#тип - целое число
+ #используется при создании
lb_id = 668
#имя бекенда для создания фронтенда
#обязательный параметр
#тип - строка
+ #используется при создании
backend_name = "testBackend"
#имя фронтенда
#обязательный параметр
#тип - строка
+ #используется при создании
name = "testFrontend"
}
diff --git a/samples/cloudbroker/lb/resource_lb_frontend_bind/main.tf b/samples/cloudbroker/lb/resource_lb_frontend_bind/main.tf
index 8f3e013..ee8802f 100644
--- a/samples/cloudbroker/lb/resource_lb_frontend_bind/main.tf
+++ b/samples/cloudbroker/lb/resource_lb_frontend_bind/main.tf
@@ -1,13 +1,13 @@
/*
Пример использования
-Ресурса load balancer frontend bind (привязка фронтенда балансировщика нагрузок)
+Ресурса load balancer frontend bind (привязка фронтенда балансировщика нагрузки)
Ресурс позволяет:
1. Создавать привязку
2. Редактировать привязку
3. Удалять привязку
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
@@ -30,34 +30,39 @@ provider "decort" {
allow_unverified_ssl = true
}
-resource "decort_cb_lb_frontend_bind" "lb" {
- #id балансировщика нагрузок
+resource "decort_cb_lb_frontend_bind" "lbfb" {
+ #id балансировщика нагрузки
#обязательный параметр
#тип - целое число
+ #используется при создании
lb_id = 668
#имя фронтенда для создания привязки
#обязательный параметр
#тип - строка
+ #используется при создании
frontend_name = "testFrontend"
#наименование привязки
#обязательный параметр
#тип - строка
+ #используется при создании
name = "testBinding"
#адрес привязки фронтенда
#обязательный параметр
#тип - строка
+ #используется при создании и обновлении
address = "111.111.111.111"
#порт для привязки фронтенда
#обязательный параметр
#тип - целое число
+ #используется при создании и обновлении
port = 1111
}
output "test" {
- value = decort_cb_lb_frontend_bind.lb
+ value = decort_cb_lb_frontend_bind.lbfb
}
diff --git a/samples/cloudbroker/node/data_node/main.tf b/samples/cloudbroker/node/data_node/main.tf
index 08fbffa..b8bcffd 100644
--- a/samples/cloudbroker/node/data_node/main.tf
+++ b/samples/cloudbroker/node/data_node/main.tf
@@ -3,7 +3,7 @@
Получение информации о ноде платформы
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
diff --git a/samples/cloudbroker/node/data_node_list/main.tf b/samples/cloudbroker/node/data_node_list/main.tf
index 564925b..4f711d0 100644
--- a/samples/cloudbroker/node/data_node_list/main.tf
+++ b/samples/cloudbroker/node/data_node_list/main.tf
@@ -3,7 +3,7 @@
Получение списка нод платформы
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
diff --git a/samples/cloudbroker/pcidevice/data_pcidevice/main.tf b/samples/cloudbroker/pcidevice/data_pcidevice/main.tf
index 764735f..2026fe2 100644
--- a/samples/cloudbroker/pcidevice/data_pcidevice/main.tf
+++ b/samples/cloudbroker/pcidevice/data_pcidevice/main.tf
@@ -3,7 +3,7 @@
Получение информации об устройстве
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
diff --git a/samples/cloudbroker/pcidevice/data_pcidevice_list/main.tf b/samples/cloudbroker/pcidevice/data_pcidevice_list/main.tf
index ecc8e9f..8290fbe 100644
--- a/samples/cloudbroker/pcidevice/data_pcidevice_list/main.tf
+++ b/samples/cloudbroker/pcidevice/data_pcidevice_list/main.tf
@@ -3,7 +3,7 @@
Получение информации обо всех доступных устройствах
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
@@ -32,7 +32,7 @@ data "decort_cb_pcidevice_list" "pdl" {
#тип - целое число
#by_id = 111
- #фильтр по id Compute
+ #фильтр по id compute
#опциональный параметр
#тип - целое число
#compute_id = 123
diff --git a/samples/cloudbroker/pcidevice/resource_pcidevice/main.tf b/samples/cloudbroker/pcidevice/resource_pcidevice/main.tf
index 24c7de2..60c2cb7 100644
--- a/samples/cloudbroker/pcidevice/resource_pcidevice/main.tf
+++ b/samples/cloudbroker/pcidevice/resource_pcidevice/main.tf
@@ -7,7 +7,7 @@
3. Удалять устройство
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
@@ -34,44 +34,50 @@ resource "decort_cb_pcidevice" "pd" {
#имя устройства
#обязательный параметр
#тип - строка
+ #используется при создании
name = "test_device"
#путь до устройства
#обязательный параметр
#тип - строка
+ #используется при создании
hw_path = "0000:01:00.0"
#описание устройства
- #необязательный параметр
+ #опциональный параметр
#тип - строка
+ #используется при создании
#description = "test desc"
#id ресурсной группы устройства
#обязательный параметр
#тип - целое число
+ #используется при создании
rg_id = 1111
#id стака устройства
#обязательный параметр
#тип - целое число
+ #используется при создании
stack_id = 11
#доступность устройства
#опциональный параметр
- #может использоваться на созданном ресурсе
#тип - булев
+ #используется при создании и обновлении
#enable = false
#принудительное отключение устройства
#опциональный параметр
#может использоваться на созданном ресурсе
#тип - булев
+ #используется при обновлении
#force_disable = true
#принудительное удаление устройства
#опциональный параметр
- #используется при удалении ресурса
#тип - булев
+ #используется при удалении
#force_delete = true
#id устройства
diff --git a/samples/cloudbroker/rg/data_rg/main.tf b/samples/cloudbroker/rg/data_rg/main.tf
index 47b27d7..d58d281 100644
--- a/samples/cloudbroker/rg/data_rg/main.tf
+++ b/samples/cloudbroker/rg/data_rg/main.tf
@@ -3,7 +3,7 @@
Получение информации о ресурсной группе (RG)
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
diff --git a/samples/cloudbroker/rg/data_rg_affinity_group_computes/main.tf b/samples/cloudbroker/rg/data_rg_affinity_group_computes/main.tf
index 56feab8..04d585a 100644
--- a/samples/cloudbroker/rg/data_rg_affinity_group_computes/main.tf
+++ b/samples/cloudbroker/rg/data_rg_affinity_group_computes/main.tf
@@ -3,7 +3,7 @@
Получение информации о специальной группе компьютов
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
@@ -32,7 +32,7 @@ data "decort_cb_rg_affinity_group_computes" "lc" {
rg_id = 123
#название специальной группы компьютов
- #обязательное поле
+ #обязательный параметр
#тип - строка
affinity_group = "TEST"
}
diff --git a/samples/cloudbroker/rg/data_rg_affinity_groups_get/main.tf b/samples/cloudbroker/rg/data_rg_affinity_groups_get/main.tf
index 6633529..2745847 100644
--- a/samples/cloudbroker/rg/data_rg_affinity_groups_get/main.tf
+++ b/samples/cloudbroker/rg/data_rg_affinity_groups_get/main.tf
@@ -3,7 +3,7 @@
Получение информации о списке компьютов из определенной группы
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
@@ -32,7 +32,7 @@ data "decort_cb_rg_affinity_groups_get" "get_groups" {
rg_id = 123
#название специальной группы компьютов
- #обязательное поле
+ #обязательный параметр
#тип - строка
affinity_group = "TEST"
}
diff --git a/samples/cloudbroker/rg/data_rg_affinity_groups_list/main.tf b/samples/cloudbroker/rg/data_rg_affinity_groups_list/main.tf
index e541ac7..5208435 100644
--- a/samples/cloudbroker/rg/data_rg_affinity_groups_list/main.tf
+++ b/samples/cloudbroker/rg/data_rg_affinity_groups_list/main.tf
@@ -3,7 +3,7 @@
Получение информации о списке специальных групп компьютов
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
diff --git a/samples/cloudbroker/rg/data_rg_audits/main.tf b/samples/cloudbroker/rg/data_rg_audits/main.tf
index c72c8cd..cbcffe3 100644
--- a/samples/cloudbroker/rg/data_rg_audits/main.tf
+++ b/samples/cloudbroker/rg/data_rg_audits/main.tf
@@ -3,7 +3,7 @@
Получение информации о списке аудитов ресурсной группы
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
diff --git a/samples/cloudbroker/rg/data_rg_get_resource_consumption/main.tf b/samples/cloudbroker/rg/data_rg_get_resource_consumption/main.tf
index a15b413..5e48e70 100644
--- a/samples/cloudbroker/rg/data_rg_get_resource_consumption/main.tf
+++ b/samples/cloudbroker/rg/data_rg_get_resource_consumption/main.tf
@@ -3,7 +3,7 @@
Получение списка текущего потребления ресурсов ресурсной группы
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
diff --git a/samples/cloudbroker/rg/data_rg_list/main.tf b/samples/cloudbroker/rg/data_rg_list/main.tf
index 1476a24..7930252 100644
--- a/samples/cloudbroker/rg/data_rg_list/main.tf
+++ b/samples/cloudbroker/rg/data_rg_list/main.tf
@@ -3,7 +3,7 @@
Получение информации о списке всех ресурсных групп к которым есть доступ
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
@@ -62,7 +62,7 @@ data "decort_cb_rg_list" "rg_list" {
#status = "ENABLED"
#отображать удаленные ресурсные группы или нет
- #необязательный параметр
+ #опциональный параметр
#тип - булев
#по умолчанию - false
#includedeleted = false
@@ -73,13 +73,13 @@ data "decort_cb_rg_list" "rg_list" {
#формат - "+поле" по возрастанию / "-поле" по убыванию
#sort_by = "+name"
- #номер страницы
- #необязательный параметр
+ #номер страницы для отображения
+ #опциональный параметр
#тип - целое число
#page = 1
#размер страницы
- #необязательный параметр
+ #опциональный параметр
#тип - целое число
#size = 2
}
diff --git a/samples/cloudbroker/rg/data_rg_list_computes/main.tf b/samples/cloudbroker/rg/data_rg_list_computes/main.tf
index 7aae74a..e5eb7c6 100644
--- a/samples/cloudbroker/rg/data_rg_list_computes/main.tf
+++ b/samples/cloudbroker/rg/data_rg_list_computes/main.tf
@@ -3,7 +3,7 @@
Получение информации о списке компьютов в ресурсной группе
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
diff --git a/samples/cloudbroker/rg/data_rg_list_deleted/main.tf b/samples/cloudbroker/rg/data_rg_list_deleted/main.tf
index 357ba43..27c7fed 100644
--- a/samples/cloudbroker/rg/data_rg_list_deleted/main.tf
+++ b/samples/cloudbroker/rg/data_rg_list_deleted/main.tf
@@ -3,7 +3,7 @@
Получение информации о списке удаленных ресурсных групп
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
@@ -69,13 +69,13 @@ data "decort_cb_rg_list_deleted" "list_deleted" {
#формат - "+поле" по возрастанию / "-поле" по убыванию
#sort_by = "+name"
- #номер страницы
- #необязательный параметр
+ #номер страницы для отображения
+ #опциональный параметр
#тип - целое число
#page = 1
#размер страницы
- #необязательный параметр
+ #опциональный параметр
#тип - целое число
#size = 2
}
diff --git a/samples/cloudbroker/rg/data_rg_list_lb/main.tf b/samples/cloudbroker/rg/data_rg_list_lb/main.tf
index 77d4f0f..b3ec00b 100644
--- a/samples/cloudbroker/rg/data_rg_list_lb/main.tf
+++ b/samples/cloudbroker/rg/data_rg_list_lb/main.tf
@@ -3,7 +3,7 @@
Получение информации о списке балансировщиков в ресурсной группе
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
diff --git a/samples/cloudbroker/rg/data_rg_list_pfw/main.tf b/samples/cloudbroker/rg/data_rg_list_pfw/main.tf
index 13f9292..7a25155 100644
--- a/samples/cloudbroker/rg/data_rg_list_pfw/main.tf
+++ b/samples/cloudbroker/rg/data_rg_list_pfw/main.tf
@@ -3,7 +3,7 @@
Получение информации о списке правил переадресации портов для ресурсной группы.
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
diff --git a/samples/cloudbroker/rg/data_rg_list_vins/main.tf b/samples/cloudbroker/rg/data_rg_list_vins/main.tf
index 742b45f..5d44dfc 100644
--- a/samples/cloudbroker/rg/data_rg_list_vins/main.tf
+++ b/samples/cloudbroker/rg/data_rg_list_vins/main.tf
@@ -3,7 +3,7 @@
Получение информации о списке винсов в ресурсной группе
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
diff --git a/samples/cloudbroker/rg/data_rg_resource_consumption_list/main.tf b/samples/cloudbroker/rg/data_rg_resource_consumption_list/main.tf
index 8ad0518..774a38f 100644
--- a/samples/cloudbroker/rg/data_rg_resource_consumption_list/main.tf
+++ b/samples/cloudbroker/rg/data_rg_resource_consumption_list/main.tf
@@ -3,7 +3,7 @@
Получение списка текущего потребления ресурсов
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
@@ -28,7 +28,7 @@ provider "decort" {
}
data "decort_cb_rg_resource_consumption_list" "rc_list" {
- #Нет входных параметров
+ #нет входных параметров
}
output "test" {
diff --git a/samples/cloudbroker/rg/data_rg_usage/main.tf b/samples/cloudbroker/rg/data_rg_usage/main.tf
index 0680842..e27020e 100644
--- a/samples/cloudbroker/rg/data_rg_usage/main.tf
+++ b/samples/cloudbroker/rg/data_rg_usage/main.tf
@@ -3,7 +3,7 @@
Получение информации об использовании ресурсов в ресурсной группе
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
diff --git a/samples/cloudbroker/rg/resource_rg/main.tf b/samples/cloudbroker/rg/resource_rg/main.tf
index 2bebccc..f68c431 100644
--- a/samples/cloudbroker/rg/resource_rg/main.tf
+++ b/samples/cloudbroker/rg/resource_rg/main.tf
@@ -7,7 +7,7 @@
3. Удалять RG
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
@@ -34,24 +34,28 @@ resource "decort_cb_rg" "rg" {
#имя ресурсной группы
#обязательный параметр
#тип - строка
+ #используется при создании и обновлении
rg_name = "testing_rg_1"
#id аккаунта которому будет принадлежать ресурсная группа
#обязательный параметр
#тип - целое число
+ #используется при создании
account_id = 123
#id сети
#обязательный параметр
#тип - целое число
+ #используется при создании
gid = 1234
#лимиты ресурсов
#опциональные параметры
#тип - блок лимитов на ресурсы
+ #используется при создании и обновлении
#resource_limits {
#максимальное количество ядер cpu
- #опциональный праметр
+ #опциональный параметр
#тип - целое число
#cu_c = 12
@@ -61,17 +65,17 @@ resource "decort_cb_rg" "rg" {
#cu_dm = 12
#максимальное количество назначенных общедоступных IP-адресов
- #опциональный праметр
+ #опциональный параметр
#тип - целое число
#cu_i = 12
#максимальный объем памяти в МБ
- #опциональный праметр
+ #опциональный параметр
#тип - целое число
#cu_m = 12
#максимальный пиринг отправленных/принятых сетевых передач
- #опциональный праметр
+ #опциональный параметр
#тип - целое число
#cu_np = 12
#}
@@ -79,123 +83,127 @@ resource "decort_cb_rg" "rg" {
#имя владельца ресурсной группы
#опциональный параметр
#тип - строка
+ #используется при создании
#owner = "owner name"
#тип сети по умолчанию для этой ресурсной группы.
#виртуальные машины, созданные в этой RG, по умолчанию будут подключены к этой сети.
- #Допустимые значения: PRIVATE, PUBLIC, NONE.
- #необязательный параметр
+ #допустимые значения: PRIVATE, PUBLIC, NONE.
+ #опциональный параметр
#по умолчанию: PRIVATE
#тип - строка
+ #используется при создании
#def_net_type = "NONE"
- #ip cidr частной сети, если сеть по умолчанию PRIVATE
- #необязательный параметр
- #тип - строка
- #ipcidr = "1.1.1.1"
-
#описание
- #необязательный параметр
+ #опциональный параметр
#тип - строка
+ #используется при создании и обновлении
#description = "qwerty"
#id внешней сети
- #необязательный параметр
+ #опциональный параметр
#тип - целое число
+ #используется при создании
#ext_net_id = 123
#ip внешней сети
- #необязательный параметр
+ #опциональный параметр
#тип - строка
+ #используется при создании
#ext_ip = "1.1.1.1"
- #зарегистрировать компьюты в регистрационной системе
- #необязательный параметр
- #тип - булев
- #register_computes = true
-
#список названий pools
- #необязательный параметр
+ #опциональный параметр
#тип - массив строк
+ #используется при создании и обновлении
#uniq_pools = ["sep1_poolName1", "sep2_poolName2"]
#блок для предоставления прав на ресурсную группу
- #необязательный параметр
+ #опциональный параметр
#тип - блок прав пользователя
- access {
+ #используется при создании и обновлении
+ #access {
#имя юзера предоставляемому права
- #обязательный праметр при использовании блока
+ #обязательный параметр при использовании блока
#тип - строка
- user = "kasim_baybikov_1@decs3o"
+ #user = "kasim_baybikov_1@decs3o"
#тип прав
#обязательный параметр
#тип - строка
#разрешенные значения: "R", "RCX" or "ARCXDU"
- right = "RCX"
-
- }
+ #right = "RCX"
+ #}
#установить сеть по умолчанию
- #необязательный параметр
+ #опциональный параметр
#тип - блок конфигурации сети
#при добавлении блока, удалять его нельзя
- def_net {
+ #используется при создании
+ #def_net {
#тип сети
#обязательный параметр при использовании блока
#тип - строка
- net_type = "PUBLIC"
+ #net_type = "PUBLIC"
#id сети
#идентификатор сегмента сети. Если net_type — PUBLIC, а net_id — 0,
#то будет выбран сегмент внешней сети по умолчанию. Если net_type
#имеет значение PRIVATE и net_id=0, будет выбран первый vins, определенный для этой ресурсной группы.
- #В противном случае net_id идентифицирует либо существующий сегмент внешней сети, либо vins.
- #необязательный параметр
+ #в противном случае net_id идентифицирует либо существующий сегмент внешней сети, либо vins.
+ #опциональный параметр
#тип - целое число
- net_id = 1234
- }
+ #net_id = 1234
+ #}
#может ли запуститься ВМ, если ресурсов CPU недостаточно
- #необязательный параметр
- #Допустимые значения: strict, loose.
+ #опциональный параметр
+ #допустимые значения: strict, loose.
#тип - строка
- cpu_allocation_parameter = "loose"
+ #используется при создании и обновлении
+ #cpu_allocation_parameter = "loose"
- #CPU allocation ratio
- #необязательный параметр
+ #cpu allocation ratio
+ #опциональный параметр
#one pCPU = ratio*vCPU (zero or positive value)
#тип - целое число
- cpu_allocation_ratio = 1
+ #используется при создании и обновлении
+ #cpu_allocation_ratio = 1
#флаг доступности ресурсной группы
- #необязательный параметр
+ #опциональный параметр
#тип - булев
- enable = true
+ #используется при создании и обновлении
+ #enable = true
#флаг для восстановления удаленной ресурсной группы
- #необязательный параметр
+ #опциональный параметр
#тип - булев
+ #используется при обновлении
#restore = false
#флаг для принудительного удаления ресурсной группы
- #необязательный параметр
+ #опциональный параметр
#тип - булев
#перед удалением следует перевести ресурсную группу в статус disabled, выставив enable = false
- force = true
+ #используется при удалении
+ #force = true
- #флаг для моментального удаления ресурсной группы
- #необязательный параметр
+ #флаг для удаления ресурсной группы, без возможности восстановления
+ #опциональный параметр
#тип - булев
- permanently = true
+ #используется при удалении
+ #permanently = true
#доступ к дополнительным функциям управления ВМ
- #необязательный параметр
- #возможные значенния - "hugepages", "numa", "cpupin", "vfnic"
+ #опциональный параметр
+ #возможные значенния - "hugepages", "numa", "cpupin", "vfnic", "dpdk, "changemac"
#тип - массив строк
#внимание - требуется указывать итоговое желаемое состояние для ресурсной группы (рг), так как поле compute_features не будет автоматически
#наследоваться от аккаунта, в котором создается рг.
- compute_features = ["hugepages", "numa", "cpupin", "vfnic"]
+ #используется при создании и обновлении
+ #compute_features = ["hugepages", "numa", "cpupin", "vfnic"]
}
diff --git a/samples/cloudbroker/sep/data_available_sep_and_pools_list/main.tf b/samples/cloudbroker/sep/data_available_sep_and_pools_list/main.tf
new file mode 100644
index 0000000..af42113
--- /dev/null
+++ b/samples/cloudbroker/sep/data_available_sep_and_pools_list/main.tf
@@ -0,0 +1,44 @@
+/*
+Пример использования
+Получение данных доступных sep и pools
+*/
+
+#Раскомментируйте код ниже,
+#и внесите необходимые правки в версию и путь,
+#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
+/*
+terraform {
+ required_providers {
+ decort = {
+ source = "basis/decort/decort"
+ version = ""
+ }
+ }
+}
+*/
+
+provider "decort" {
+ authenticator = "decs3o"
+ #controller_url =
+ controller_url = "https://ds1.digitalenergy.online"
+ #oauth2_url =
+ oauth2_url = "https://sso.digitalenergy.online"
+ allow_unverified_ssl = true
+}
+
+data "decort_cb_sep_and_pools_available_list" "ap" {
+ #идентификатор аккаунта
+ #обязательный параметр
+ #тип - целое число
+ account_id = 1111
+
+ #идентификатор ресурсной группы
+ #опциональный параметр
+ #тип - целое число
+ #rg_id = 1111
+}
+
+output "test" {
+ value = data.decort_cb_sep_and_pools_available_list.ap
+}
+
diff --git a/samples/cloudbroker/sep/data_sep/main.tf b/samples/cloudbroker/sep/data_sep/main.tf
index 2267ea5..2360b31 100644
--- a/samples/cloudbroker/sep/data_sep/main.tf
+++ b/samples/cloudbroker/sep/data_sep/main.tf
@@ -3,7 +3,7 @@
Получение данных sep
*/
-#Расскомментируйте код ниже,
+#Раскомментируйте код ниже,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
diff --git a/samples/cloudbroker/sep/data_sep_config/main.tf b/samples/cloudbroker/sep/data_sep_config/main.tf
index ff2b9d8..7c06d3b 100644
--- a/samples/cloudbroker/sep/data_sep_config/main.tf
+++ b/samples/cloudbroker/sep/data_sep_config/main.tf
@@ -3,7 +3,7 @@
Получение данных конфигурации sep
*/
-#Расскомментируйте код ниже,
+#Раскомментируйте код ниже,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
diff --git a/samples/cloudbroker/sep/data_sep_consumption/main.tf b/samples/cloudbroker/sep/data_sep_consumption/main.tf
index 73e519f..9279bf5 100644
--- a/samples/cloudbroker/sep/data_sep_consumption/main.tf
+++ b/samples/cloudbroker/sep/data_sep_consumption/main.tf
@@ -3,7 +3,7 @@
Получение общих данных об использовании sep
*/
-#Расскомментируйте код ниже,
+#Раскомментируйте код ниже,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
diff --git a/samples/cloudbroker/sep/data_sep_disk_list/main.tf b/samples/cloudbroker/sep/data_sep_disk_list/main.tf
index 1710ff9..af572c5 100644
--- a/samples/cloudbroker/sep/data_sep_disk_list/main.tf
+++ b/samples/cloudbroker/sep/data_sep_disk_list/main.tf
@@ -3,7 +3,7 @@
Получение данных об используемых sep дисках
*/
-#Расскомментируйте код ниже,
+#Раскомментируйте код ниже,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
@@ -33,7 +33,7 @@ data "decort_cb_sep_disk_list" "sdl" {
sep_id = 1111
#sep pool name
- #необязательный параметр
+ #опциональный параметр
#тип - строка
#pool_name = "sep_pool"
}
diff --git a/samples/cloudbroker/sep/data_sep_list/main.tf b/samples/cloudbroker/sep/data_sep_list/main.tf
index 8d0300f..750aa6b 100644
--- a/samples/cloudbroker/sep/data_sep_list/main.tf
+++ b/samples/cloudbroker/sep/data_sep_list/main.tf
@@ -3,7 +3,7 @@
Получение списка sep
*/
-#Расскомментируйте код ниже,
+#Раскомментируйте код ниже,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
@@ -28,37 +28,37 @@ provider "decort" {
data "decort_cb_sep_list" "sl" {
#фильтр по sep id
- #необязательный параметр
+ #опциональный параметр
#тип - целое число
#by_id = 3
#фильтр по sep name
- #необязательный параметр
+ #опциональный параметр
#тип - строка
#name = "name"
#фильтр по gid
- #необязательный параметр
+ #опциональный параметр
#тип - целое число
#gid = 1
#фильтр по sep type
- #необязательный параметр
+ #опциональный параметр
#тип - строка
#type = "type"
#фильтр по provided physical node id
- #необязательный параметр
+ #опциональный параметр
#тип - целое число
#provided_by = 1
#фильтр по тех статусу
- #необязательный параметр
+ #опциональный параметр
#тип - строка
#tech_status = "status"
#фильтр по consumed physical node id
- #необязательный параметр
+ #опциональный параметр
#тип - целое число
#consumed_by = 1
@@ -69,12 +69,12 @@ data "decort_cb_sep_list" "sl" {
#sort_by = "+name"
#страница
- #необязательный параметр
+ #опциональный параметр
#тип - целое число
#page = 3
#размер страницы
- #необязательный параметр
+ #опциональный параметр
#тип - целое число
#size = 2
}
diff --git a/samples/cloudbroker/sep/data_sep_pool/main.tf b/samples/cloudbroker/sep/data_sep_pool/main.tf
index fed987e..3338432 100644
--- a/samples/cloudbroker/sep/data_sep_pool/main.tf
+++ b/samples/cloudbroker/sep/data_sep_pool/main.tf
@@ -3,7 +3,7 @@
Получение данных sep pool
*/
-#Расскомментируйте код ниже,
+#Раскомментируйте код ниже,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
diff --git a/samples/cloudbroker/sep/data_sep_template/main.tf b/samples/cloudbroker/sep/data_sep_template/main.tf
new file mode 100644
index 0000000..b2d8ec3
--- /dev/null
+++ b/samples/cloudbroker/sep/data_sep_template/main.tf
@@ -0,0 +1,45 @@
+/*
+Пример использования
+Получение данных конфигурации sep
+*/
+
+#Раскомментируйте код ниже,
+#и внесите необходимые правки в версию и путь,
+#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
+/*
+terraform {
+ required_providers {
+ decort = {
+ source = "basis/decort/decort"
+ version = ""
+ }
+ }
+}
+*/
+
+provider "decort" {
+ authenticator = "decs3o"
+ #controller_url =
+ controller_url = "https://ds1.digitalenergy.online"
+ #oauth2_url =
+ oauth2_url = "https://sso.digitalenergy.online"
+ allow_unverified_ssl = true
+}
+
+data "decort_cb_sep_template" "compute_template" {
+ #тип сеп
+ #возможные значения - hitachi, dorado, tatlin, shared, local, des
+ #обязательный параметр
+ #тип - строка
+ sep_type = "dorado"
+
+ #язык
+ #возможные значения - ru, en
+ #обязательный параметр
+ #тип - строка
+ lang = "en"
+}
+
+output "output" {
+ value = data.decort_cb_sep_template.compute_template
+}
diff --git a/samples/cloudbroker/sep/resource_sep/main.tf b/samples/cloudbroker/sep/resource_sep/main.tf
index a400ebb..6be6013 100644
--- a/samples/cloudbroker/sep/resource_sep/main.tf
+++ b/samples/cloudbroker/sep/resource_sep/main.tf
@@ -6,7 +6,7 @@
2. Удалять sep.
*/
-#Расскомментируйте код ниже,
+#Раскомментируйте код ниже,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
@@ -33,40 +33,45 @@ resource "decort_cb_sep" "s" {
#grid id
#обязательный параметр
#тип - целое число
+ #используется при создании
gid = 212
#sep name
#обязательный параметр
#тип - строка
+ #используется при создании
name = "test sep"
#тип sep
#обязательный параметр
#возможные значения - des, dorado, tatlin, hitachi, ovs, local, shared
#тип - строка
+ #используется при создании
type = "des"
#конфигурация sep
#обязательный параметр
- #мб применен при создании sep
#представляет собой json-строку
#тип - строка
+ #используется при создании
config = file("./config.json")
#описание sep
#опциональный параметр
- #используется при создании ресурса
#тип - строка
+ #используется при создании
#desc = "rrrrr"
#предоставление/отключение доступа указанных аккаунтов к sep
- #опциональный параметр, используется создании ресурса
+ #опциональный параметр
#тип - массив целых чисел
+ #используется при создании
#account_ids = [12, 245]
#предоставление/отключение доступа к пулу на sep
- #опциональный параметр, может быть применен на уже созданном sep
+ #опциональный параметр
#тип - блок доступа к пулу
+ #используется при создании
#access_to_pool {
#имя pool
#обязательный параметр
@@ -86,68 +91,68 @@ resource "decort_cb_sep" "s" {
#доступность sep
#опциональный параметр
- #может быть применен на уже созданном ресурсе
#по умолчанию - false
#тип - булев
+ #используется при создании
#enable = false
#использование нодами
#опциональный параметр
- #используется при создании ресурса
#тип - массив целых чисел
+ #используется при создании
#consumed_by = []
#id provided nodes
#опциональный параметр
- #используется при создании ресурса
#тип - массив целых чисел
+ #используется при создании
#provided_by = [16, 14, 15]
#добавление/удаление pools к/из sep
#опциональный параметр
- #используется при создании ресурса, состоит из имен pool
#тип - блок pools
- pools {
+ #используется при создании
+ #pools {
#идентификаторы учетных записей доступа
#обязательный параметр
#тип - массив целых чисел
- access_account_ids = [1, 2, 3]
+ #access_account_ids = [1, 2, 3]
#идентификаторы групп ресурсов доступа
#обязательный параметр
#тип - массив целых чисел
- access_res_group_ids = [10, 20, 30]
+ #access_res_group_ids = [10, 20, 30]
#имя пула
#опциональный параметр
#тип - строка
- name = "example_pool_name"
+ #name = "example_pool_name"
#тип пула
#опциональный параметр
#тип - массив строк
- types = ["type1", "type2"]
+ #types = ["type1", "type2"]
#адреса узлов хранения
#опциональный параметр
#тип - блок ip адресов
- uris {
+ #uris {
#ip адрес узла
#обязательный параметр
#тип - строка
- ip = "192.168.1.1"
+ #ip = "192.168.1.1"
#порт узла
#обязательный параметр
#тип - целое число
- port = 8080
- }
+ #port = 8080
+ #}
#доступный объем пула
#обязательный параметр
#тип - целое число
- usage_limit = 1000
- }
+ #usage_limit = 1000
+ #}
}
diff --git a/samples/cloudbroker/sep/resource_sep_config/main.tf b/samples/cloudbroker/sep/resource_sep_config/main.tf
index 532fb3d..333a6e5 100644
--- a/samples/cloudbroker/sep/resource_sep_config/main.tf
+++ b/samples/cloudbroker/sep/resource_sep_config/main.tf
@@ -7,7 +7,7 @@
3. Изменять отдельные поля конфигурации
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
@@ -34,18 +34,19 @@ resource "decort_cb_sep_config" "sc" {
#id sep
#обязательный параметр
#тип - целое число
+ #используется при создании
sep_id = 1111
#конфигурация
#опциональный параметр
- #используется для создания и изменения конфигурации
#тип - json строка
+ #используется при обновлении
#config = file("./config.json")
#редактирование поля
#опциональный параметр
- #используется при редактировании ресурса
#тип - блок полей
+ #используется при обновлении
#field_edit {
#имя поля
#обязательный параметр
diff --git a/samples/cloudbroker/stack/data_stack/main.tf b/samples/cloudbroker/stack/data_stack/main.tf
index 8ba3aa9..dfc5427 100644
--- a/samples/cloudbroker/stack/data_stack/main.tf
+++ b/samples/cloudbroker/stack/data_stack/main.tf
@@ -3,7 +3,7 @@
Получение стека по id
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
diff --git a/samples/cloudbroker/stack/data_stack_list/main.tf b/samples/cloudbroker/stack/data_stack_list/main.tf
index 4310c03..24048f2 100644
--- a/samples/cloudbroker/stack/data_stack_list/main.tf
+++ b/samples/cloudbroker/stack/data_stack_list/main.tf
@@ -3,7 +3,7 @@
Получение списка стеков
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
diff --git a/samples/cloudbroker/user/data_user/main.tf b/samples/cloudbroker/user/data_user/main.tf
index 407508f..782a7f4 100644
--- a/samples/cloudbroker/user/data_user/main.tf
+++ b/samples/cloudbroker/user/data_user/main.tf
@@ -3,7 +3,7 @@
Получение данных user по id
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
diff --git a/samples/cloudbroker/user/data_user_get_audit/main.tf b/samples/cloudbroker/user/data_user_get_audit/main.tf
index 35454fb..8e463f4 100644
--- a/samples/cloudbroker/user/data_user_get_audit/main.tf
+++ b/samples/cloudbroker/user/data_user_get_audit/main.tf
@@ -3,7 +3,7 @@
Получение списка аудитов пользователя
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
diff --git a/samples/cloudbroker/user/data_user_list/main.tf b/samples/cloudbroker/user/data_user_list/main.tf
index 21bc91c..03acf47 100644
--- a/samples/cloudbroker/user/data_user_list/main.tf
+++ b/samples/cloudbroker/user/data_user_list/main.tf
@@ -3,7 +3,7 @@
Получение списка пользователей
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
diff --git a/samples/cloudbroker/user/resource_user/main.tf b/samples/cloudbroker/user/resource_user/main.tf
index aaab698..8c15aae 100644
--- a/samples/cloudbroker/user/resource_user/main.tf
+++ b/samples/cloudbroker/user/resource_user/main.tf
@@ -7,7 +7,7 @@
3. Удалять пользователя
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
@@ -34,26 +34,31 @@ resource "decort_cb_user" "user" {
#id пользователя
#обязательный параметр
#тип - строка
+ #используется при создании
username = "user1"
#email адрес пользователя
#обязательный параметр
#тип - массив строк
+ #используется при создании
emailaddress = ["user1@example.com"]
#пароль пользователя
#опциональный параметр
#тип - строка
+ #используется при создании
#password = "user1Password"
#список групп, к которым принадлежит этот пользователь
#опциональный параметр
#тип - массив строк
+ #используется при создании
#groups = ["user"]
#список групп доступа к api, к которым принадлежит этот пользователь
#опциональный параметр
#тип - массив целых чисел
+ #используется при создании и обновлении
#apiaccess = [1,2]
}
diff --git a/samples/cloudbroker/vfpool/data_vfpool/main.tf b/samples/cloudbroker/vfpool/data_vfpool/main.tf
index 31ee783..5f09ff2 100644
--- a/samples/cloudbroker/vfpool/data_vfpool/main.tf
+++ b/samples/cloudbroker/vfpool/data_vfpool/main.tf
@@ -3,7 +3,7 @@
Получение информации о vfpool по его id
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
diff --git a/samples/cloudbroker/vfpool/data_vfpool_list/main.tf b/samples/cloudbroker/vfpool/data_vfpool_list/main.tf
index e8398cf..d4ccb8b 100644
--- a/samples/cloudbroker/vfpool/data_vfpool_list/main.tf
+++ b/samples/cloudbroker/vfpool/data_vfpool_list/main.tf
@@ -3,7 +3,7 @@
Получение списка vfpool
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
diff --git a/samples/cloudbroker/vfpool/resource_vfpool/main.tf b/samples/cloudbroker/vfpool/resource_vfpool/main.tf
index bacd599..555b4fb 100644
--- a/samples/cloudbroker/vfpool/resource_vfpool/main.tf
+++ b/samples/cloudbroker/vfpool/resource_vfpool/main.tf
@@ -10,7 +10,7 @@
7. Удалять пул
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
@@ -37,29 +37,31 @@ resource "decort_cb_vfpool" "vfpool" {
#наименование vfpool
#обязательный параметр
#тип - строка
+ #используется при создании и обновлении
name = "test"
#описание vfpool
#опциональный параметр
#тип - строка
- #применяется при создании и редактировании ресурса
+ #используется при создании и обновлении
#description = "some"
#список для предоставления доступа к vfpool перечисленным аккаунтам
#опциональный параметр
#тип - массив целых чисел
- #применяется при создании и редактировании ресурса
+ #используется при создании и обновлении
#account_access = [1,2]
#список для предоставления доступа к vfpool перечисленным ресурсным группам
#опциональный параметр
#тип - массив целых чисел
- #применяется при создании и редактировании ресурса
+ #используется при создании и обновлении
#rg_access = [1,2]
#блок для указания списка конфигурации
#опциональный параметр
#тип - блок
+ #используется при создании и обновлении
#config {
#идентификатор узла
#обязательный параметр
@@ -80,6 +82,7 @@ resource "decort_cb_vfpool" "vfpool" {
#ручное подключение и отключение ресурса
#опциональный параметр
#тип - булев
+ #используется при создании и обновлении
#enable = true
}
diff --git a/samples/cloudbroker/vins/data_vins/main.tf b/samples/cloudbroker/vins/data_vins/main.tf
index 7e348f9..d96a2aa 100644
--- a/samples/cloudbroker/vins/data_vins/main.tf
+++ b/samples/cloudbroker/vins/data_vins/main.tf
@@ -3,7 +3,7 @@
Получение данных о vins
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
diff --git a/samples/cloudbroker/vins/data_vins_audits/main.tf b/samples/cloudbroker/vins/data_vins_audits/main.tf
index 5bbff8b..11adc3b 100644
--- a/samples/cloudbroker/vins/data_vins_audits/main.tf
+++ b/samples/cloudbroker/vins/data_vins_audits/main.tf
@@ -3,7 +3,7 @@
Получение списка vins audits
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
diff --git a/samples/cloudbroker/vins/data_vins_ext_net_list/main.tf b/samples/cloudbroker/vins/data_vins_ext_net_list/main.tf
index 98b140a..43fe268 100644
--- a/samples/cloudbroker/vins/data_vins_ext_net_list/main.tf
+++ b/samples/cloudbroker/vins/data_vins_ext_net_list/main.tf
@@ -3,7 +3,7 @@
Получение списка vins extnet
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
diff --git a/samples/cloudbroker/vins/data_vins_ip_list/main.tf b/samples/cloudbroker/vins/data_vins_ip_list/main.tf
index 5a0f290..2418802 100644
--- a/samples/cloudbroker/vins/data_vins_ip_list/main.tf
+++ b/samples/cloudbroker/vins/data_vins_ip_list/main.tf
@@ -3,7 +3,7 @@
Получение списка vins_ip
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
diff --git a/samples/cloudbroker/vins/data_vins_list/main.tf b/samples/cloudbroker/vins/data_vins_list/main.tf
index 371bac8..6786891 100644
--- a/samples/cloudbroker/vins/data_vins_list/main.tf
+++ b/samples/cloudbroker/vins/data_vins_list/main.tf
@@ -3,7 +3,7 @@
Получение списка vins
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
@@ -69,6 +69,11 @@ data "decort_cb_vins_list" "vl" {
#формат - "+поле" по возрастанию / "-поле" по убыванию
#sort_by = "+name"
+ #поиск по статусу
+ #опциональный параметр
+ #тип - строка
+ #status = "ENABLED"
+
#номер страницы для отображения
#опциональный параметр
#тип - целое число
diff --git a/samples/cloudbroker/vins/data_vins_list_deleted/main.tf b/samples/cloudbroker/vins/data_vins_list_deleted/main.tf
index d2c2fc4..a77ccbe 100644
--- a/samples/cloudbroker/vins/data_vins_list_deleted/main.tf
+++ b/samples/cloudbroker/vins/data_vins_list_deleted/main.tf
@@ -3,7 +3,7 @@
Получение списка удаленных vins
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
@@ -63,7 +63,7 @@ data "decort_cb_vins_list_deleted" "vins_list_deleted" {
#формат - "+поле" по возрастанию / "-поле" по убыванию
#sort_by = "+name"
- #кол-во страниц для вывода
+ #номер страницы для отображения
#опциональный параметр
#тип - целое число
#page = 1
diff --git a/samples/cloudbroker/vins/data_vins_nat_rule_list/main.tf b/samples/cloudbroker/vins/data_vins_nat_rule_list/main.tf
index def5d91..77c9c13 100644
--- a/samples/cloudbroker/vins/data_vins_nat_rule_list/main.tf
+++ b/samples/cloudbroker/vins/data_vins_nat_rule_list/main.tf
@@ -3,7 +3,7 @@
Получение списка natRule vins
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
diff --git a/samples/cloudbroker/vins/data_vins_static_route/main.tf b/samples/cloudbroker/vins/data_vins_static_route/main.tf
index 31365be..6b96c65 100644
--- a/samples/cloudbroker/vins/data_vins_static_route/main.tf
+++ b/samples/cloudbroker/vins/data_vins_static_route/main.tf
@@ -3,7 +3,7 @@
Получение информации о static route в данном Vins
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
diff --git a/samples/cloudbroker/vins/data_vins_static_route_list/main.tf b/samples/cloudbroker/vins/data_vins_static_route_list/main.tf
index 04437c0..2f1c0b0 100644
--- a/samples/cloudbroker/vins/data_vins_static_route_list/main.tf
+++ b/samples/cloudbroker/vins/data_vins_static_route_list/main.tf
@@ -3,7 +3,7 @@
Получение информации о всех static routes в данном Vins
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
diff --git a/samples/cloudbroker/vins/resource_vins/main.tf b/samples/cloudbroker/vins/resource_vins/main.tf
index 16b5fcb..674d944 100644
--- a/samples/cloudbroker/vins/resource_vins/main.tf
+++ b/samples/cloudbroker/vins/resource_vins/main.tf
@@ -11,7 +11,7 @@
7. Перезапускать и редеплоить vnfdev
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
@@ -38,54 +38,64 @@ resource "decort_cb_vins" "vins" {
#обязательный параметр
#имя создаваемого ресурса
#тип - строка
- name = "Test_name"
+ #используется при создании
+ name = "test_name"
- #id аккаунта для создаения ресурса
+ #id аккаунта для создания ресурса
#опциональный параметр
#внимание, для создания ресурса обязательно должен быть указан или rg_id, или account_id
#тип - целое число
+ #используется при создании
account_id = 2023
#id ресурсной группы для создаения ресурса
#опциональный параметр
#внимание, для создания ресурса обязательно должен быть указан или rg_id, или account_id
#тип - целое число
+ #используется при создании
rg_id = 10101
#id внешней сети для подключения к ней ресурса
#опциональный параметр
#тип - целое число
+ #используется при создании и обновлении
#ext_net_id = 2222
#ip внешней сети для подключения к нему ресурса
#опциональный параметр
#тип - строка
+ #используется при создании и обновлении
#ext_ip = "1.1.1.1"
#приватная сеть IP CIDR
#опциональный параметр
#тип - строка
+ #используется при создании
#ipcidr = "192.168.0.1"
#количество зарезервированных адресов на момент создания
#опциональный параметр
- #значение по умолчанию 32
+ #по умолчанию 32
#тип - целое число
+ #используется при создании
#pre_reservations_num = 2
#grid (platform) ID
#опциональный параметр
#тип - целое число
+ #используется при создании
#gid = 2002
#описание
#опциональный параметр
#тип - строка
+ #используется при создании
#description = "Description"
#блок для указания списка routes
#опциональный параметр
#тип - список routes
+ #используется при создании
#routes = [{
#ip целевой сети
#опциональный параметр
@@ -107,6 +117,7 @@ resource "decort_cb_vins" "vins" {
#опциональный параметр
#блок для указания default_qos
#тип - список qos
+ #используется при обновлении
#default_qos = {
#внутренний трафик, Кбит
#опциональный параметр
@@ -122,26 +133,30 @@ resource "decort_cb_vins" "vins" {
#опциональный параметр
#тип - целое число
#e_rate = 1
- #}
+ #}
#ручное подключение и отключение ресурса
#опциональный параметр
#тип - булев
+ #используется при создании и обновлении
#enable = true
- #удаление навсегда
+ #флаг для удаления VINS, без возможности восстановления
#опциональный параметр
#тип - булев
+ #используется при удалении
#permanently = true
#удаляет за собой все зависимые ресурсы
#опциональный параметр
#тип - булев
+ #используется при удалении
#force = true
#блок для резервирования ip
#опциональный параметр
#тип - список параметров ip
+ #используется при создании и обновлении
#ip {
#тип подключения
#обязательный параметр
@@ -162,11 +177,12 @@ resource "decort_cb_vins" "vins" {
#опциональный параметр
#тип - целое число
#compute_id = 1234
- #}
+ #}
#блок для добавления natRule
#опциональный параметр
#тип - список параметров natRule
+ #используется при создании и обновлении
#nat_rule {
#ip внутренний
#обязательный параметр
@@ -192,35 +208,39 @@ resource "decort_cb_vins" "vins" {
#опциональный параметр
#тип - строка
#proto = "tcp"
- #}
+ #}
#vnf dev start, stop
#опциональный параметр
#true: старт vnfDev; false: стоп vnfDev
#тип - булев
+ #используется при обновлении
#vnfdev_start = true
#перезапуск vnfDev
#опциональный параметр
#тип - булев
+ #используется при обновлении
#vnfdev_restart = true
- #ресет vnfDev
+ #сброс vnfDev
#опциональный параметр
#тип - булев
+ #используется при обновлении
#vnfdev_reset = true
#редеплой vnfDev
#опциональный параметр
#тип - булев
+ #используется при обновлении
#vnfdev_redeploy = true
#список dns
#опциональный параметр
- #применяется при создании и редактировании ресурса
#если при создании указать пустой список, то ресурс создается с полем vnfs.dhcp.config.dns, имеющим значение по умолчанию
#если при обновлении указать пустой список, то ресурс обновит в модели поле vnfs.dhcp.config.dns с текущего значения на пустой список
#тип - список строк
+ #используется при создании и обновлении
#dns = ["1.1.1.1", "2.2.2.2"]
}
diff --git a/samples/cloudbroker/vins/resource_vins_static_route/main.tf b/samples/cloudbroker/vins/resource_vins_static_route/main.tf
index 6011e80..f990137 100644
--- a/samples/cloudbroker/vins/resource_vins_static_route/main.tf
+++ b/samples/cloudbroker/vins/resource_vins_static_route/main.tf
@@ -8,7 +8,7 @@
4. Удалять доступ виртуальным машинам к static routes
*/
-#Расскомментируйте этот код,
+#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
diff --git a/wiki/4.5.2/04.01-Установка-Terraform-провайдера-DECORT.md b/wiki/4.5.2/04.01-Установка-Terraform-провайдера-DECORT.md
index 154bffd..9f124a3 100644
--- a/wiki/4.5.2/04.01-Установка-Terraform-провайдера-DECORT.md
+++ b/wiki/4.5.2/04.01-Установка-Terraform-провайдера-DECORT.md
@@ -18,13 +18,13 @@ chmod u+x install.sh
```
6. Дождаться сообщения об успешной установке. Установщик выведет актуальный блок конфигурации провайдера, скопируйте его
```bash
-DECORT provider version 4.3.0 has been successfully installed
+DECORT provider version 4.5.2 has been successfully installed
Copy this provider configuration to main.tf file:
terraform {
required_providers {
decort = {
- version = "4.3.0"
+ version = "4.5.2"
source = "basis/decort/decort"
}
}
@@ -40,7 +40,7 @@ terraform {
terraform {
required_providers {
decort = {
- version = "4.3.0"
+ version = "4.5.2"
source = "basis/decort/decort"
}
}
@@ -114,7 +114,7 @@ Windows:
terraform {
required_providers {
decort = {
- version = "4.3.0"
+ version = "4.5.2"
source = "basis/decort/decort"
}
}
diff --git a/wiki/4.5.3/04.01-Установка-Terraform-провайдера-DECORT.md b/wiki/4.5.3/04.01-Установка-Terraform-провайдера-DECORT.md
index 71db3cf..5e3997a 100644
--- a/wiki/4.5.3/04.01-Установка-Terraform-провайдера-DECORT.md
+++ b/wiki/4.5.3/04.01-Установка-Terraform-провайдера-DECORT.md
@@ -18,13 +18,13 @@ chmod u+x install.sh
```
6. Дождаться сообщения об успешной установке. Установщик выведет актуальный блок конфигурации провайдера, скопируйте его
```bash
-DECORT provider version 4.3.0 has been successfully installed
+DECORT provider version 4.5.3 has been successfully installed
Copy this provider configuration to main.tf file:
terraform {
required_providers {
decort = {
- version = "4.3.0"
+ version = "4.5.3"
source = "basis/decort/decort"
}
}
@@ -40,7 +40,7 @@ terraform {
terraform {
required_providers {
decort = {
- version = "4.3.0"
+ version = "4.5.3"
source = "basis/decort/decort"
}
}
@@ -114,7 +114,7 @@ Windows:
terraform {
required_providers {
decort = {
- version = "4.3.0"
+ version = "4.5.3"
source = "basis/decort/decort"
}
}
diff --git a/wiki/4.6.0/04.01-Установка-Terraform-провайдера-DECORT.md b/wiki/4.6.0/04.01-Установка-Terraform-провайдера-DECORT.md
index f642d2d..1edf1c2 100644
--- a/wiki/4.6.0/04.01-Установка-Terraform-провайдера-DECORT.md
+++ b/wiki/4.6.0/04.01-Установка-Terraform-провайдера-DECORT.md
@@ -18,13 +18,13 @@ chmod u+x install.sh
```
6. Дождаться сообщения об успешной установке. Установщик выведет актуальный блок конфигурации провайдера, скопируйте его
```bash
-DECORT provider version 4.3.0 has been successfully installed
+DECORT provider version 4.6.0 has been successfully installed
Copy this provider configuration to main.tf file:
terraform {
required_providers {
decort = {
- version = "4.3.0"
+ version = "4.6.0"
source = "basis/decort/decort"
}
}
@@ -40,7 +40,7 @@ terraform {
terraform {
required_providers {
decort = {
- version = "4.3.0"
+ version = "4.6.0"
source = "basis/decort/decort"
}
}
@@ -114,7 +114,7 @@ Windows:
terraform {
required_providers {
decort = {
- version = "4.3.0"
+ version = "4.6.0"
source = "basis/decort/decort"
}
}
diff --git a/wiki/4.6.1/04.01-Установка-Terraform-провайдера-DECORT.md b/wiki/4.6.1/04.01-Установка-Terraform-провайдера-DECORT.md
index 7a44fe9..fc53817 100644
--- a/wiki/4.6.1/04.01-Установка-Terraform-провайдера-DECORT.md
+++ b/wiki/4.6.1/04.01-Установка-Terraform-провайдера-DECORT.md
@@ -18,13 +18,13 @@ chmod u+x install.sh
```
6. Дождаться сообщения об успешной установке. Установщик выведет актуальный блок конфигурации провайдера, скопируйте его
```bash
-DECORT provider version 4.3.0 has been successfully installed
+DECORT provider version 4.6.1 has been successfully installed
Copy this provider configuration to main.tf file:
terraform {
required_providers {
decort = {
- version = "4.3.0"
+ version = "4.6.1"
source = "basis/decort/decort"
}
}
@@ -40,7 +40,7 @@ terraform {
terraform {
required_providers {
decort = {
- version = "4.3.0"
+ version = "4.6.1"
source = "basis/decort/decort"
}
}
@@ -114,7 +114,7 @@ Windows:
terraform {
required_providers {
decort = {
- version = "4.3.0"
+ version = "4.6.1"
source = "basis/decort/decort"
}
}
diff --git a/wiki/4.6.2/04.01-Установка-Terraform-провайдера-DECORT.md b/wiki/4.6.2/04.01-Установка-Terraform-провайдера-DECORT.md
index 9661103..85694f2 100644
--- a/wiki/4.6.2/04.01-Установка-Terraform-провайдера-DECORT.md
+++ b/wiki/4.6.2/04.01-Установка-Terraform-провайдера-DECORT.md
@@ -18,13 +18,13 @@ chmod u+x install.sh
```
6. Дождаться сообщения об успешной установке. Установщик выведет актуальный блок конфигурации провайдера, скопируйте его
```bash
-DECORT provider version 4.3.0 has been successfully installed
+DECORT provider version 4.6.2 has been successfully installed
Copy this provider configuration to main.tf file:
terraform {
required_providers {
decort = {
- version = "4.3.0"
+ version = "4.6.2"
source = "basis/decort/decort"
}
}
@@ -40,7 +40,7 @@ terraform {
terraform {
required_providers {
decort = {
- version = "4.3.0"
+ version = "4.6.2"
source = "basis/decort/decort"
}
}
@@ -114,7 +114,7 @@ Windows:
terraform {
required_providers {
decort = {
- version = "4.3.0"
+ version = "4.6.2"
source = "basis/decort/decort"
}
}
diff --git a/wiki/4.6.3/04.01-Установка-Terraform-провайдера-DECORT.md b/wiki/4.6.3/04.01-Установка-Terraform-провайдера-DECORT.md
index f5b82df..6f0392c 100644
--- a/wiki/4.6.3/04.01-Установка-Terraform-провайдера-DECORT.md
+++ b/wiki/4.6.3/04.01-Установка-Terraform-провайдера-DECORT.md
@@ -18,13 +18,13 @@ chmod u+x install.sh
```
6. Дождаться сообщения об успешной установке. Установщик выведет актуальный блок конфигурации провайдера, скопируйте его
```bash
-DECORT provider version 4.3.0 has been successfully installed
+DECORT provider version 4.6.3 has been successfully installed
Copy this provider configuration to main.tf file:
terraform {
required_providers {
decort = {
- version = "4.3.0"
+ version = "4.6.3"
source = "basis/decort/decort"
}
}
@@ -40,7 +40,7 @@ terraform {
terraform {
required_providers {
decort = {
- version = "4.3.0"
+ version = "4.6.3"
source = "basis/decort/decort"
}
}
@@ -114,7 +114,7 @@ Windows:
terraform {
required_providers {
decort = {
- version = "4.3.0"
+ version = "4.6.3"
source = "basis/decort/decort"
}
}
diff --git a/wiki/4.6.4/04.01-Установка-Terraform-провайдера-DECORT.md b/wiki/4.6.4/04.01-Установка-Terraform-провайдера-DECORT.md
index 55ba391..f45b806 100644
--- a/wiki/4.6.4/04.01-Установка-Terraform-провайдера-DECORT.md
+++ b/wiki/4.6.4/04.01-Установка-Terraform-провайдера-DECORT.md
@@ -18,13 +18,13 @@ chmod u+x install.sh
```
6. Дождаться сообщения об успешной установке. Установщик выведет актуальный блок конфигурации провайдера, скопируйте его
```bash
-DECORT provider version 4.3.0 has been successfully installed
+DECORT provider version 4.6.4 has been successfully installed
Copy this provider configuration to main.tf file:
terraform {
required_providers {
decort = {
- version = "4.3.0"
+ version = "4.6.4"
source = "basis/decort/decort"
}
}
@@ -40,7 +40,7 @@ terraform {
terraform {
required_providers {
decort = {
- version = "4.3.0"
+ version = "4.6.4"
source = "basis/decort/decort"
}
}
@@ -114,7 +114,7 @@ Windows:
terraform {
required_providers {
decort = {
- version = "4.3.0"
+ version = "4.6.4"
source = "basis/decort/decort"
}
}
diff --git a/wiki/4.7.0/04.01-Установка-Terraform-провайдера-DECORT.md b/wiki/4.7.0/04.01-Установка-Terraform-провайдера-DECORT.md
index f6fe4be..05359fa 100644
--- a/wiki/4.7.0/04.01-Установка-Terraform-провайдера-DECORT.md
+++ b/wiki/4.7.0/04.01-Установка-Terraform-провайдера-DECORT.md
@@ -18,13 +18,13 @@ chmod u+x install.sh
```
6. Дождаться сообщения об успешной установке. Установщик выведет актуальный блок конфигурации провайдера, скопируйте его
```bash
-DECORT provider version 4.3.0 has been successfully installed
+DECORT provider version 4.7.0 has been successfully installed
Copy this provider configuration to main.tf file:
terraform {
required_providers {
decort = {
- version = "4.3.0"
+ version = "4.7.8"
source = "basis/decort/decort"
}
}
@@ -40,7 +40,7 @@ terraform {
terraform {
required_providers {
decort = {
- version = "4.3.0"
+ version = "4.7.0"
source = "basis/decort/decort"
}
}
@@ -114,7 +114,7 @@ Windows:
terraform {
required_providers {
decort = {
- version = "4.3.0"
+ version = "4.7.0"
source = "basis/decort/decort"
}
}
diff --git a/wiki/4.7.0/07.01.01-Resource_decort_kvmvm.md b/wiki/4.7.0/07.01.01-Resource_decort_kvmvm.md
index 431bdd3..c47e9f4 100644
--- a/wiki/4.7.0/07.01.01-Resource_decort_kvmvm.md
+++ b/wiki/4.7.0/07.01.01-Resource_decort_kvmvm.md
@@ -121,7 +121,6 @@ resource "decort_kvmvm" "compute1" {
Так же следует обратить внимание, что если при update была отключена какая либо сеть, то вновь подключаемые сети с наименьшим весом сети займут ранее освобожденные интерфейсы, и только после будут добавляться в конец списка подключенных сетей.
При изменении или удалении данного поля, в уже созданном ресурсе, сеть будет считаться вновь подключаемой и следовательно будет отключена от VM и подключена по новой, с учетом веса подключаемых сетей.
-
## Аргументы
_Resource_ функция **decort_kvmvm** принимает следующие аргументы:
diff --git a/wiki/4.7.0/07.02.11-Resource_decort_cb_kvmvm.md b/wiki/4.7.0/07.02.11-Resource_decort_cb_kvmvm.md
index a93ff7f..9cce02a 100644
--- a/wiki/4.7.0/07.02.11-Resource_decort_cb_kvmvm.md
+++ b/wiki/4.7.0/07.02.11-Resource_decort_cb_kvmvm.md
@@ -13,7 +13,6 @@ _Resource_ функция **decort_cb_kvmvm** служит для управле
Так же следует обратить внимание, что если при update была отключена какая либо сеть, то вновь подключаемые сети с наименьшим весом сети займут ранее освобожденные интерфейсы, и только после будут добавляться в конец списка подключенных сетей.
При изменении или удалении данного поля, в уже созданном ресурсе, сеть будет считаться вновь подключаемой и следовательно будет отключена от VM и подключена по новой, с учетом веса подключаемых сетей.
-
## Аргументы
_Resource_ функция **decort_cb_kvmvm** принимает следующие аргументы:
diff --git a/wiki/4.7.0/07.02.31-Resource_decort_cb_dpdknet.md b/wiki/4.7.0/07.02.31-Resource_decort_cb_dpdknet.md
index d9ed718..4732008 100644
--- a/wiki/4.7.0/07.02.31-Resource_decort_cb_dpdknet.md
+++ b/wiki/4.7.0/07.02.31-Resource_decort_cb_dpdknet.md
@@ -92,4 +92,4 @@ output "test" {
Данный пример подразумевает, что ранее по тексту tf-файла выполнена корректная инициализация провайдера (подробнее об инициализации Terraform провайдера DECORT см. соответствующий [раздел](https://repository.basistech.ru/BASIS/terraform-provider-decort/src/branch/main/wiki/4.7.0/04.02-Инициализация-Terraform-провайдера-DECORT.md) и [пример](https://repository.basistech.ru/BASIS/terraform-provider-decort/src/branch/main/wiki/4.7.0/02.-Пример-работы.md)).
-После успешного завершения такого вызова **decort_cb_dpdknet** в переменной `data.decort_cb_dpdknet.dpdk` будут сохранены возвращаемые значения. В частности, для получения идентификатора ViNS следует использовать конструкцию `data.decort_cb_dpdknet.dpdk.id`
+После успешного завершения такого вызова **decort_cb_dpdknet** в переменной `data.decort_cb_dpdknet.dpdk` будут сохранены возвращаемые значения. В частности, для получения идентификатора сети следует использовать конструкцию `data.decort_cb_dpdknet.dpdk.id`
diff --git a/wiki/4.7.1/04.01-Установка-Terraform-провайдера-DECORT.md b/wiki/4.7.1/04.01-Установка-Terraform-провайдера-DECORT.md
index d8f3db2..8b8c63a 100644
--- a/wiki/4.7.1/04.01-Установка-Terraform-провайдера-DECORT.md
+++ b/wiki/4.7.1/04.01-Установка-Terraform-провайдера-DECORT.md
@@ -18,13 +18,13 @@ chmod u+x install.sh
```
6. Дождаться сообщения об успешной установке. Установщик выведет актуальный блок конфигурации провайдера, скопируйте его
```bash
-DECORT provider version 4.3.0 has been successfully installed
+DECORT provider version 4.7.1 has been successfully installed
Copy this provider configuration to main.tf file:
terraform {
required_providers {
decort = {
- version = "4.3.0"
+ version = "4.7.1"
source = "basis/decort/decort"
}
}
@@ -40,7 +40,7 @@ terraform {
terraform {
required_providers {
decort = {
- version = "4.3.0"
+ version = "4.7.1"
source = "basis/decort/decort"
}
}
@@ -114,7 +114,7 @@ Windows:
terraform {
required_providers {
decort = {
- version = "4.3.0"
+ version = "4.7.1"
source = "basis/decort/decort"
}
}
diff --git a/wiki/4.7.1/07.02.31-Resource_decort_cb_dpdknet.md b/wiki/4.7.1/07.02.31-Resource_decort_cb_dpdknet.md
index 5cce686..23acff7 100644
--- a/wiki/4.7.1/07.02.31-Resource_decort_cb_dpdknet.md
+++ b/wiki/4.7.1/07.02.31-Resource_decort_cb_dpdknet.md
@@ -92,4 +92,4 @@ output "test" {
Данный пример подразумевает, что ранее по тексту tf-файла выполнена корректная инициализация провайдера (подробнее об инициализации Terraform провайдера DECORT см. соответствующий [раздел](https://repository.basistech.ru/BASIS/terraform-provider-decort/src/branch/main/wiki/4.7.1/04.02-Инициализация-Terraform-провайдера-DECORT.md) и [пример](https://repository.basistech.ru/BASIS/terraform-provider-decort/src/branch/main/wiki/4.7.1/02.-Пример-работы.md)).
-После успешного завершения такого вызова **decort_cb_dpdknet** в переменной `data.decort_cb_dpdknet.dpdk` будут сохранены возвращаемые значения. В частности, для получения идентификатора ViNS следует использовать конструкцию `data.decort_cb_dpdknet.dpdk.id`
+После успешного завершения такого вызова **decort_cb_dpdknet** в переменной `data.decort_cb_dpdknet.dpdk` будут сохранены возвращаемые значения. В частности, для получения идентификатора сети следует использовать конструкцию `data.decort_cb_dpdknet.dpdk.id`
diff --git a/wiki/4.7.2/04.01-Установка-Terraform-провайдера-DECORT.md b/wiki/4.7.2/04.01-Установка-Terraform-провайдера-DECORT.md
index 3572ae3..7bf8662 100644
--- a/wiki/4.7.2/04.01-Установка-Terraform-провайдера-DECORT.md
+++ b/wiki/4.7.2/04.01-Установка-Terraform-провайдера-DECORT.md
@@ -18,13 +18,13 @@ chmod u+x install.sh
```
6. Дождаться сообщения об успешной установке. Установщик выведет актуальный блок конфигурации провайдера, скопируйте его
```bash
-DECORT provider version 4.3.0 has been successfully installed
+DECORT provider version 4.7.2 has been successfully installed
Copy this provider configuration to main.tf file:
terraform {
required_providers {
decort = {
- version = "4.3.0"
+ version = "4.7.2"
source = "basis/decort/decort"
}
}
@@ -40,7 +40,7 @@ terraform {
terraform {
required_providers {
decort = {
- version = "4.3.0"
+ version = "4.7.2"
source = "basis/decort/decort"
}
}
@@ -114,7 +114,7 @@ Windows:
terraform {
required_providers {
decort = {
- version = "4.3.0"
+ version = "4.7.2"
source = "basis/decort/decort"
}
}
diff --git a/wiki/4.7.2/07.02.31-Resource_decort_cb_dpdknet.md b/wiki/4.7.2/07.02.31-Resource_decort_cb_dpdknet.md
index 1fa16a4..a2672fb 100644
--- a/wiki/4.7.2/07.02.31-Resource_decort_cb_dpdknet.md
+++ b/wiki/4.7.2/07.02.31-Resource_decort_cb_dpdknet.md
@@ -92,4 +92,4 @@ output "test" {
Данный пример подразумевает, что ранее по тексту tf-файла выполнена корректная инициализация провайдера (подробнее об инициализации Terraform провайдера DECORT см. соответствующий [раздел](https://repository.basistech.ru/BASIS/terraform-provider-decort/src/branch/main/wiki/4.7.2/04.02-Инициализация-Terraform-провайдера-DECORT.md) и [пример](https://repository.basistech.ru/BASIS/terraform-provider-decort/src/branch/main/wiki/4.7.2/02.-Пример-работы.md)).
-После успешного завершения такого вызова **decort_cb_dpdknet** в переменной `data.decort_cb_dpdknet.dpdk` будут сохранены возвращаемые значения. В частности, для получения идентификатора ViNS следует использовать конструкцию `data.decort_cb_dpdknet.dpdk.id`
+После успешного завершения такого вызова **decort_cb_dpdknet** в переменной `data.decort_cb_dpdknet.dpdk` будут сохранены возвращаемые значения. В частности, для получения идентификатора сети следует использовать конструкцию `data.decort_cb_dpdknet.dpdk.id`
diff --git a/wiki/4.7.3/04.01-Установка-Terraform-провайдера-DECORT.md b/wiki/4.7.3/04.01-Установка-Terraform-провайдера-DECORT.md
index 100329c..e6a7c7e 100644
--- a/wiki/4.7.3/04.01-Установка-Terraform-провайдера-DECORT.md
+++ b/wiki/4.7.3/04.01-Установка-Terraform-провайдера-DECORT.md
@@ -18,13 +18,13 @@ chmod u+x install.sh
```
6. Дождаться сообщения об успешной установке. Установщик выведет актуальный блок конфигурации провайдера, скопируйте его
```bash
-DECORT provider version 4.3.0 has been successfully installed
+DECORT provider version 4.7.2 has been successfully installed
Copy this provider configuration to main.tf file:
terraform {
required_providers {
decort = {
- version = "4.3.0"
+ version = "4.7.3"
source = "basis/decort/decort"
}
}
@@ -40,7 +40,7 @@ terraform {
terraform {
required_providers {
decort = {
- version = "4.3.0"
+ version = "4.7.3"
source = "basis/decort/decort"
}
}
@@ -114,7 +114,7 @@ Windows:
terraform {
required_providers {
decort = {
- version = "4.3.0"
+ version = "4.7.3"
source = "basis/decort/decort"
}
}
diff --git a/wiki/4.7.3/07.02.31-Resource_decort_cb_dpdknet.md b/wiki/4.7.3/07.02.31-Resource_decort_cb_dpdknet.md
index 7041e87..d8decbd 100644
--- a/wiki/4.7.3/07.02.31-Resource_decort_cb_dpdknet.md
+++ b/wiki/4.7.3/07.02.31-Resource_decort_cb_dpdknet.md
@@ -92,4 +92,4 @@ output "test" {
Данный пример подразумевает, что ранее по тексту tf-файла выполнена корректная инициализация провайдера (подробнее об инициализации Terraform провайдера DECORT см. соответствующий [раздел](https://repository.basistech.ru/BASIS/terraform-provider-decort/src/branch/main/wiki/4.7.3/04.02-Инициализация-Terraform-провайдера-DECORT.md) и [пример](https://repository.basistech.ru/BASIS/terraform-provider-decort/src/branch/main/wiki/4.7.3/02.-Пример-работы.md)).
-После успешного завершения такого вызова **decort_cb_dpdknet** в переменной `data.decort_cb_dpdknet.dpdk` будут сохранены возвращаемые значения. В частности, для получения идентификатора ViNS следует использовать конструкцию `data.decort_cb_dpdknet.dpdk.id`
+После успешного завершения такого вызова **decort_cb_dpdknet** в переменной `data.decort_cb_dpdknet.dpdk` будут сохранены возвращаемые значения. В частности, для получения идентификатора сети следует использовать конструкцию `data.decort_cb_dpdknet.dpdk.id`
diff --git a/wiki/4.7.4/01.-Введение.md b/wiki/4.7.4/01.-Введение.md
new file mode 100644
index 0000000..f3d1294
--- /dev/null
+++ b/wiki/4.7.4/01.-Введение.md
@@ -0,0 +1,7 @@
+DECORT Terraform Provider версии 4.7.x позволяет управлять облачными ресурсами на платформе Digital Energy Cloud Orchestration Technology (DECORT) версии 4.1.x и выше посредством Terraform.
+
+С помощью данного провайдера можно организовать программное управление вычислительными ресурсами (_compute_), ресурсными группами, сетевыми и дисковыми ресурсами, образами дисков, кластером, а также другими параметрами облачной платформы DECORT.
+
+Если вы хорошо знакомы с инструментом Terraform и хотите максимально быстро начать использовать платформу DECORT в своих Terraform-проектах, то можете сразу перейти к разделу [Пример работы](https://repository.basistech.ru/BASIS/terraform-provider-decort/src/branch/main/wiki/4.7.4/02.-Пример-работы.md), где приведён подробно откомментированный пример работы с основными видами ресурсов платформы. Если у вас всё же возникнут вопросы по облачной платформе DECORT и порядку авторизации в ней, то обратитесь к главе [«Обзор облачной платформы DECORT»](https://repository.basistech.ru/BASIS/terraform-provider-decort/src/branch/main/wiki/4.7.4/03.-Обзор-облачной-платформы-DECORT.md). Также может оказаться полезной глава [«Инициализация Terraform провайдера DECORT»](https://repository.basistech.ru/BASIS/terraform-provider-decort/src/branch/main/wiki/4.7.4/04.02-Инициализация-Terraform-провайдера-DECORT.md).
+
+Если вы только начинаете использовать инструмент Terraform и облачную платформу DECORT, то рекомендуем вам начать с главы [«Обзор облачной платформы DECORT»](https://repository.basistech.ru/BASIS/terraform-provider-decort/src/branch/main/wiki/4.7.4/03.-Обзор-облачной-платформы-DECORT.md), после чего изучить главы [«_Data source_ функции Terraform провайдера DECORT»](https://repository.basistech.ru/BASIS/terraform-provider-decort/src/branch/main/wiki/4.7.4/06.-Data-source-функции-Terraform-провайдера-DECORT.md) и [«_Resource_ функции Terraform провайдера DECORT»](https://repository.basistech.ru/BASIS/terraform-provider-decort/src/branch/main/wiki/4.7.4/07.-Resource-функции-Terraform-провайдера-DECORT.md). Примеры, приведенные в этих разделах, помогут вам быстро освоить базовые приёмы работы с инструментом Terraform и провайдером DECORT.
diff --git a/wiki/4.7.4/02.-Пример-работы.md b/wiki/4.7.4/02.-Пример-работы.md
new file mode 100644
index 0000000..59132ad
--- /dev/null
+++ b/wiki/4.7.4/02.-Пример-работы.md
@@ -0,0 +1,92 @@
+Данный раздел предназначен для тех, кто хорошо знаком с инструментом Terraform, а также имеет представление об основных понятиях и способах авторизации в облачной платформе DECORT.
+
+Ниже приведён подробно откомментированный пример, показывающий, как создать виртуальный сервер (aka _compute_ на базе системы виртуализации KVM x86) в облачной платформе DECORT с помощью соответствующего Terraform провайдера. Сервер будет создан в новой ресурсной группе, к нему будет подключён один предварительно созданный диск, у сервера будет прямое сетевое подключение во внешнюю сеть.
+
+Идентификатор образа операционной системы, на базе которого должен быть создан виртуальный сервер, считывается из облачной платформы с помощью _data source_ функции `decort_image`.
+
+Далее мы с помощью _resource_ функции `decort_resgroup` создаём новую ресурсную группу, в которую будет помещён этот виртуальный сервер. В качестве альтернативы, для получения информации об уже имеющейся ресурсной группе можно использовать _data source_ функцию с таким же названием.
+
+Затем с помощью _resource_ функции `decort_disk` создаётся диск, который будет подключён к виртуальному серверу в качестве дополнительного. Помимо этого дополнительного диска у сервера будет также и загрузочный диск, на который в процессе создания сервера клонируется выбранный образ операционной системы.
+
+Виртуальный сервер - в данном примере на базе системы виртуализации KVM x86 - создаётся посредством _resource_ функции `decort_kvmvm`.
+
+Только авторизованные в контроллере облачной платформы пользователи могут управлять облачными ресурсами. Подробнее о способах авторизации см. [Обзор облачной платформы DECORT](https://repository.basistech.ru/BASIS/terraform-provider-decort/src/branch/main/wiki/4.7.4/03.-Обзор-облачной-платформы-DECORT.md).
+
+```terraform
+# 1. Initialize DECORT plugin and connection to DECORT cloud controller
+# NOTE: in this example credentials are expected to come from
+# DECORT_APP_ID and DECORT_APP_SECRET environmental variables - set them
+# in the shell before calling terraform.
+# Alternatively you may define plugin parameters app_id and app_secret in
+# the TF file, however, this may not be secure if you plan to share this TF
+# file with others.
+
+provider "decort" {
+ authenticator = "decs3o"
+ controller_url = "<>" # specify correct DECORT controller URL, e.g. "https://ds1.digitalenergy.online"
+ oauth2_url = "<>" # specify corresponding DECORT OAUTH2 URL, e.g. "https://sso.digitalenergy.online"
+ app_id = "<>" # application secret to access DECORT cloud API in 'decs3o' and 'bvs' authentication mode, e.g. "ewqfrvea7s890avw804389qwguf234h0otfi3w4eiu"
+ app_secret = "<>" # application ID to access DECORT cloud API in 'decs3o' and 'bvs' authentication mode, e.g. "ewqfrvea7s890avw804389qwguf234h0otfi3w4eiu"
+ # allow_unverified_ssl = true
+}
+
+# 2. Load account to use - new VM will belong to this account
+data "decort_account" "my_account" {
+ account_id = # Specify account ID
+}
+
+# 3. Load OS image to use for VM deployment
+data "decort_image" "os_image" {
+ image_id = # Specify OS image id, e.g. 1234. You can get accessible image id from data source "decort_image_list"
+}
+
+# 4. Create new Resource Group in the selected account, new VM will be created in this RG
+resource "decort_resgroup" "my_rg" {
+ name = "NewRgByTF"
+ account_id = data.decort_account.my_account.account_id
+ gid = # Grid (platform) ID
+ # if you want to set resource quota on this Resource Group, uncomment
+ # the following code fragment
+ # quota {
+ # cpu = 8 # CPU limit
+ # ram = 8912 # RAM limit in MB
+ # disk = 96 # disk volume limit in GB
+ #}
+}
+
+# 5. Create extra disk, which will be attached to the new VM.
+# This step is optional - if you do not want extra disks on your VM, skip it
+# and comment out extra_disks parameter when creating VM below.
+resource "decort_disk" "extra_disk" {
+ disk_name = "extra-disk-for-vm"
+ account_id = data.decort_account.my_account.account_id
+ gid = # Grid (platform) ID
+ size_max = 5 # disk size in GB
+ type = "D" # disk type, always use "D" for extra disks
+ sep_id = data.decort_image.os_image.sep_id # use the same SEP ID as the OS image
+ pool = "<>" # consult your DECORT platform admin for configured storage pool names
+}
+
+# 6. Create virtual machine (a compute of type KVM VM x86 in this example)
+# Now that we have all necessary components at hand, we may create a virtual machine.
+# This VM will be based on the previsouly obtained OS image, located in the specified
+# Resource Group, directly connected to an external network, have a boot disk of
+# specified size and one extra disk attached.
+resource "decort_kvmvm" "my_new_vm" {
+ name = "tf-managed-vm"
+ driver = "KVM_X86" # Compute virtualization driver
+ rg_id = decort_resgroup.my_rg.id
+ 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
+ image_id = data.decort_image.os_image.image_id
+ description = "Test KVM VM Compute managed by Terraform"
+ extra_disks = [ decort_disk.extra_disk.id ]
+
+ network {
+ net_type = "EXTNET"
+ net_id = <> # specify external network ID to use, consult your DECORT platform admin for correct IDs
+ # ip_address = "<>" # you may optionally request a specific IP address
+ }
+}
+```
diff --git a/wiki/4.7.4/03.-Обзор-облачной-платформы-DECORT.md b/wiki/4.7.4/03.-Обзор-облачной-платформы-DECORT.md
new file mode 100644
index 0000000..938223a
--- /dev/null
+++ b/wiki/4.7.4/03.-Обзор-облачной-платформы-DECORT.md
@@ -0,0 +1,31 @@
+## Основные понятия
+Ниже перечислены основные понятия с указанием соответствующих им аргументов в Terraform провайдере DECORT.
+1. **Контроллер облачной платформы DECORT** – управляющее приложение, которое обеспечивает авторизацию пользователей и оркестрацию облачных ресурсов.
+ - Адрес контроллера задается в обязательном аргументе `controller_url` на стадии инициализации Terraform провайдера DECORT. Например, `controller_url= "https://ds1.digitalenergy.online"`
+2. **Авторизационный провайдер** – приложение, работающее по протоколу Oauth2, предназначенное для выпуска и валидации токенов доступа к контроллеру облачной платформы в соответствующих режимах авторизации. Все действия в платформе должны выполняться авторизованными пользователями, и авторизационное приложение позволяет получить токен доступа, действующий некоторое ограниченное время, наличие которого подтверждает успешную авторизацию.
+ - Адрес авторизационного провайдера задается в аргументе`oauth2_url` на стадии инициализации Terraform провайдера DECORT. Например `oauth2_url= "https://sso.digitalenergy.online"`
+3. **Подписчик** (_account_) – сущность, которая используется для группирования облачных ресурсов по принадлежности к определенному клиенту для целей учета потребления и биллинга.
+ - Имя подписчика задается аргументом `account_name` при вызове _resource_ или _data_ функций провайдера. Альтернативной является задание численного идентификатора подписчика в аргументе `account_id`.
+4. **Пользователь** (_user_) – пользователь облачной инфраструктуры, представленный учетной записью. Чтобы получить возможность управлять облачными ресурсами (например, создавать виртуальные серверы или дискт) пользователь должен быть ассоциирован с одним или несколькими подписчиками и иметь соответствующие права, определяемые ролевой моделью, принятой в облачной платформе DECORT. Для доступа к платформе пользователь должен авторизоваться одним из способов, описанных ниже в разделе «Способы авторизации».
+5. **Ресурсная группа** (_resource group_) – способ группирования вычислительных ресурсов (например, виртуальных серверов по функциональному признаку или принадлежности к одному и тому же проекту). Ресурсную группу можно рассматривать как небольшой персональный дата-центр, в котором размещаются один или несколько серверов и виртуальных сетевых сегментов. Ресурсная группа идентифицируется по комбинации параметров `account` и `name`. Обратите внимание, что имя имя ресурсной группы уникально только в рамках одного и того же `account`.
+6. **Вычислительный ресурс** (_compute_) - универсальная абстракция пользовательского сервера в платформе DECORT. Благодаря использованию такой абстракции можно, например, создать одну виртуальную машину на базе KVM Intel x86, а другую - на базе KVM IBM Power, а потом управлять ими - изменять количество CPU/RAM, подключать/отключать диски и т.п. - одинаковым образом, не задумываясь об их архитектурных различиях. В то же время, так как типизация ресурсов в Terraform не поддерживает наследование, различные типы вычислительных ресурсов, доступных на платформе DECORT и абстрагируемых через понятие унифицированный _compute_, в Terraform представлены разными типами (напр., свой тип для виртуальных серверов на базе KVM и свой тип для перспективных x86-совместимых bare metal серверов).
+7. **Ресурс хранения** (_disk_) - универсальная абстракция дискового ресурса в платформе DECORT. Платформа поддерживает различные типы систем хранения данных, но при этом управление созданными на разных системах хранения дисками осуществляется посредством унифицированного набора действий, например, "подключить диск к _compute_", "увеличить размер диска", "сделать мгновенный снимок диска", "настроить параметры быстродействия диска".
+8. **Виртуальный сервер** – экземпляр _compute_, в основе технической реализации которого лежит виртуальная машина, работающая в облаке DECORT и доступна по сети. Виртуальный сервер характеризуется количеством выделенных ему CPU (аргумент`cpu`), объемом ОЗУ (`ram`), размером загрузочного диска (`boot_disk size`). При создании виртуального сервера на загрузочный диск устанавливается образ операционной системы, заданный в аргументе `image_id`. Помимо загрузочного диска к виртуальному серверу можно подключить несколько дисков для хранения прикладных данных, список которых задается аргументами `extra_disks`. Виртуальный сервер идентифицируется по комбинации аргументов `name` (имя сервера) и `rgid` (идентификатор ресурсной группы). Обратите внимание, что имя виртуального сервера `name` уникально только в рамках одной и той же ресурсной группы.
+9. **Виртуальный сетевой сегмент** (_Virtual Network Segment_ или _ViNS_) - сетевой сегмент и обеспечивающая его функционирование виртуальная инфраструктура, которые пользователь может создавать для своих нужд на уровне ресурсной группы или подписчика (_account_). ViNS можно создать полностью изолированным от внешних сетей (см. ниже _External Network_) или с подключением во внешнюю сеть. Внутри ViNS работает DHCP-сервис, обеспечивающий управление IP адресами экземпляров _compute_, подключённых в этот ViNS.
+10. **Внешняя сеть** (_External Network_) - сетевой сегмент, через который платформа DECORT взаимодействует с внешними по отношению к ней сетевыми ресурсами. Например, в случае с публичным облаком на базе DECORT в качестве внешней сети выступает сеть Интернет. В отличие от ViNS платформа не управляет внешней сетью, а лишь пользуется её ресурсами. В платформе может быть настроено несколько внешних сетей с различными диапазонами IP адресов, и существует механизм управления доступом пользователей к внешним сетям.
+11. Сетевой доступ к экземпляру _compute_ (виртуальному серверу) реализуется через его подключение к ViNS и/или прямое подключение во внешнюю сеть (External Network). Один и тот же экземпляр _compute_ может одновременно иметь несколько подключений в разные ViNS и/или различные внешние сети.
+
+## Способы авторизации
+Облачная платформа DECORT поддерживает три базовых типа авторизации:
+1. С использованием авторизационного провайдера, работающего по протоколу _Oauth2_. Данный способ является предпочтительным, так как обеспечивает бОльшую гибкость и безопасность. Для авторизации в этом режиме при инициализации Terrafrom провайдера DECORT необходимо указать параметры `oauth2_url` и `controller_url`, а также предоставить одно из нижеперечисленного:
+ - Комбинация Application ID & Application secret, соответствующих пользователю, от имени которого будет осуществляться управление облачными ресурсами в текущей сессии. В процессе проверки предоставленных Application ID & Application secret модуль получает от авторизационного провайдера токен (JSON Web Token, JWT), который затем используется для доступа к указанному контроллеру DECORT. Для авторизации по данному варианту, при инициализации Terraform провайдера DECORT следует установить аргумент `authenticator=decs3o` и задать аргументы `app_id` и `app_secret` (или определить соответствующие переменные окружения `DECORT_APP_ID` и `DECORT_APP_SECRET`).
+ - JSON Web Token – заранее полученный от авторизационного провайдера токен доступа, ассоциированный с определенным пользователем, от имени которого будет осуществляться управление облачными ресурсами в текущей сессии. Для авторизации по данному варианту, при инициализации Terraform провайдера DECORT следует установить аргумент `authenticator=jwt` и задать аргумент `jwt` (или определить переменную окружения `DECORT_JWT`).
+2. С использованием комбинации _имя пользователя : пароль_. Данный режим не использует внешних авторизационных провайдеров и подразумевает, что пользователь с такой комбинацией зарегистрирован непосредственно на указанном в параметре `controller_url` контроллере облачной платформы DECORT.
+ - Чтобы провайдер авторизовался по данному варианту, при его инициализации следует установить аргумент `authenticator=legacy` и задать аргументы `user` и `password` (или определить соответствующие переменные окружения `DECORT_USER` и `DECORT_PASSWORD`).
+3. С использованием авторизационного провайдера, работающего по протоколу _Oauth2_oidc_. Для авторизации в этом режиме при инициализации Terrafrom провайдера DECORT необходимо указать параметры `oauth2_url` и `controller_url`, а также Application ID & Application secret, _имя пользователя и пароль_, соответствующих пользователю, от имени которого будет осуществляться управление облачными ресурсами в текущей сессии, и _имя домена_. В процессе проверки предоставленных Application ID & Application secret и пары _имя пользователя-пароль_ модуль получает от авторизационного провайдера токен (JSON Web Token, JWT), который затем используется для доступа к указанному контроллеру DECORT. Для авторизации по данному варианту, при инициализации Terraform провайдера DECORT следует установить аргумент `authenticator=bvs`, задать аргументы `app_id` и `app_secret` (или определить соответствующие переменные окружения `DECORT_APP_ID` и `DECORT_APP_SECRET`), `bvs_user` и `bvs_password` (или определить соответствующие переменные окружения `DECORT_BVS_USER` и `DECORT_BVS_PASSWORD`), а также указать `domain` (или определить соответствующие переменные окружения `DECORT_DOMAIN`).
+
+После успешной авторизации пользователь (или приложение-клиент) получает доступ к ресурсам, находящимся под управлением соответствующего DECORT контроллера. Доступ предоставляется в рамках подписчиков (_account_), с которыми ассоциирован данный пользователь (_user_), и в соответствии с присвоенными ему ролями.
+
+## Пользовательская и административная группы API
+Пользовательская группа API - группа API платформы DECORT, которая позволяет выполнять операции с платформой с правами обычного пользователя. Покрывает большую часть задач.
+Административная группа API - группа API платформы DECORT, которая позволяет выполнять операции с платформой с расширенными правами. Данные права подразумевают расширенный перечень операций над ресурсами, расширенный перечень ресурсов, расширенную информацию. Требуются права администратора для взаимодействия с этой группой API.
diff --git a/wiki/4.7.4/04.-Начало-работы-с-terraform-провайдером-DECORT.md b/wiki/4.7.4/04.-Начало-работы-с-terraform-провайдером-DECORT.md
new file mode 100644
index 0000000..edaa664
--- /dev/null
+++ b/wiki/4.7.4/04.-Начало-работы-с-terraform-провайдером-DECORT.md
@@ -0,0 +1,6 @@
+Данный раздел описывает:
+- Системные требования
+- Установку провайдера
+- Инициализацию провайдера
+- Переключение режима работы между разными группами API
+- Получение gid/grid_id площадки
diff --git a/wiki/4.7.4/04.01-Установка-Terraform-провайдера-DECORT.md b/wiki/4.7.4/04.01-Установка-Terraform-провайдера-DECORT.md
new file mode 100644
index 0000000..ed461a1
--- /dev/null
+++ b/wiki/4.7.4/04.01-Установка-Terraform-провайдера-DECORT.md
@@ -0,0 +1,150 @@
+## Системные требования
+
+Для запуска провайдера вам потребуется машина, на которой установлен Terraform.
+
+Кроме того, в связи с тем, что начиная с версии 0.12 Terraform изменил алгоритм поиска и инициализации локальных провайдеров, настройка данного провайдера для работы с Terraform 0.12 или более новыми версиями потребует выполнения ряда дополнительных действий. Подробнее см. [8.3 Настройка локального провайдера для работы с новыми версиями Terraform](https://repository.basistech.ru/BASIS/terraform-provider-decort/src/branch/main/wiki/4.7.4/08.-Полезные-советы#user-content-8-3-настройка-локального-провайдера-для-работы-с-новыми-версиями-terraform.md).
+
+## Установка
+Начиная с версии провайдера `4.3.0` в релизном архиве находятся скрипты-инсталляторы.
+Чтобы выполнить установку, необходимо:
+1. Перейти по адресу: https://repository.basistech.ru/BASIS/terraform-provider-decort/releases
+2. Выбрать необходимую версию провайдера подходящую под операционную систему.
+3. Скачать архив.
+4. Распаковать архив.
+5. Выполнить скрипт установщика, `install.sh` или `install.bat` для Windows.
+*Для запуска `install.sh` не забудьте изменить права доступа к файлу*
+```bash
+chmod u+x install.sh
+```
+6. Дождаться сообщения об успешной установке. Установщик выведет актуальный блок конфигурации провайдера, скопируйте его
+```bash
+DECORT provider version 4.3.0 has been successfully installed
+
+Copy this provider configuration to main.tf file:
+terraform {
+ required_providers {
+ decort = {
+ version = "4.3.0"
+ source = "basis/decort/decort"
+ }
+ }
+}
+```
+7. После этого, создайте файл `main.tf` в рабочей директории, которая может находится в любом удобном для пользователя месте.
+В данном примере, рабочая директория с файлом main.tf находится по пути:
+```bash
+~/work/tfdir/main.tf
+```
+8. Вставьте в `main.tf` блок конфигурации провайдера, который был выведен на экран установщиком:
+```terraform
+terraform {
+ required_providers {
+ decort = {
+ version = "4.3.0"
+ source = "basis/decort/decort"
+ }
+ }
+}
+```
+9. Добавьте в файл блок с инициализацией провайдера.
+```terraform
+provider "decort" {
+ authenticator = "decs3o"
+ controller_url = "https://mr4.digitalenergy.online"
+ oauth2_url = "https://sso.digitalenergy.online"
+ allow_unverified_ssl = true
+}
+```
+
+10. В консоли выполните команду
+```bash
+terraform init
+```
+
+11. В случае успешной установки, Terraform инициализирует провайдер и будет готов к дальнейшей работе.
+
+## Установка из релизов
+Terraform провайдер DECORT имеет скомпилированные релизные версии, которые расположены по адресу: [Релизы](https://repository.basistech.ru/BASIS/terraform-provider-decort/releases).
+Чтобы выполнить установку из релиза, необходимо:
+1. Перейти по адресу: https://repository.basistech.ru/BASIS/terraform-provider-decort/releases
+2. Выбрать необходимую версию провайдера подходящую под операционную систему.
+3. Скачать архив.
+4. Распаковать архив.
+5. Полученный файл (в директории `bin/`) необходимо поместить:
+Linux:
+```bash
+~/.terraform.d/plugins/${host_name}/${namespace}/${type}/${version}/${target}
+```
+Windows:
+```powershell
+%APPDATA%\terraform.d\plugins\${host_name}\${namespace}\${type}\${version}\${target}
+```
+Где:
+- host_name - имя хоста, держателя провайдера, например, basis
+- namespace - пространство имен хоста, например decort
+- type - тип провайдера, может совпадать с пространством имен, например, decort
+- version - версия провайдера, например 4.3.0
+- target - архитектура операционной системы, например windows_amd64
+
+В примере ниже используется путь до провайдера на машине с ОС Linux:
+
+```bash
+~/.terraform.d/plugins/basis/decort/decort/4.3.0/linux_amd64/tf-provider
+ ^ ^ ^ ^ ^ ^
+ host_name | | | | | |
+ | | | | |
+ namespace | | | | |
+ | | | |
+ type | | | |
+ | | |
+ version | | |
+ | |
+ target | |
+ |
+ исполняемый файл |
+```
+
+6. После этого, создайте файл `main.tf` в рабочей директории, которая может находится в любом удобном для пользователя месте.
+В данном примере, рабочая директория с файлом main.tf находится по пути:
+```bash
+~/work/tfdir/main.tf
+```
+7. Добавьте в `main.tf` следующий блок
+```terraform
+terraform {
+ required_providers {
+ decort = {
+ version = "4.3.0"
+ source = "basis/decort/decort"
+ }
+ }
+}
+```
+В поле `version` указывается версия провайдера.
+
+**ВНИМАНИЕ: Версии в блоке и в пути к исполняемому файлу провайдера должны совпадать!**
+
+В поле `source` помещается путь до репозитория с версией вида:
+
+```bash
+${host_name}/${namespace}/${type}
+```
+
+**ВНИМАНИЕ: Версии в блоке и в пути к исполняемому файлу провайдера должны совпадать!**
+
+8. Добавьте в файл блок с инициализацией провайдера.
+```terraform
+provider "decort" {
+ authenticator = "decs3o"
+ controller_url = "https://mr4.digitalenergy.online"
+ oauth2_url = "https://sso.digitalenergy.online"
+ allow_unverified_ssl = true
+}
+```
+
+9. В консоли выполните команду
+```bash
+terraform init
+```
+
+10. В случае успешной установки, Terraform инициализирует провайдер и будет готов к дальнейшей работе.
diff --git a/wiki/4.7.4/04.02-Инициализация-Terraform-провайдера-DECORT.md b/wiki/4.7.4/04.02-Инициализация-Terraform-провайдера-DECORT.md
new file mode 100644
index 0000000..b75875b
--- /dev/null
+++ b/wiki/4.7.4/04.02-Инициализация-Terraform-провайдера-DECORT.md
@@ -0,0 +1,64 @@
+## Список аргументов для инициализации
+Перед началом использования любой Terraform провайдер должен быть инициализирован.
+
+В процессе инициализации Terraform провайдера DECORT проверяется корректность переданных аргументов и выполняется авторизация в указанном контроллере облачной инфраструктуры. Подробнее о способах авторизации в платформе DECORT смотри соответствующий [раздел](https://repository.basistech.ru/BASIS/terraform-provider-decort/src/branch/main/wiki/4.7.4/03.-Обзор-облачной-платформы-DECORT#user-content-способы-авторизации.md).
+
+При инициализации Terraform провайдера DECORT используются следующие аргументы:
+
+| Аргумент | Переменная окружения | Описание |
+| --- | --- | --- |
+| allow_unverified_ssl | - | Если данный аргумент явно установлен в `true`, то провайдер **не будет** проверять SSL сертификаты при взаимодействии с авторизационным сервисом OAuth2 и контроллером облачной платформы.
Отключение проверок может быть полезным при работе в доверенной среде, использующей самоподписанные SSL сертификаты. Однако, так как отключение проверок несёт потенциальные риски безопасности, данную настройку следует использовать с осторожностью.
Разрешённые значения: `false` (значение по умолчанию) и `true`. |
+| app_id | DECORT_APP_ID | Идентификатор приложения (клиента) для авторизации в контроллере облачной платформы в режиме `decs3o` или `bvs`.
Аргументы `app_id` и `app_secret` являются обязательными для режимов авторизации `authenticator=decs3o` и `authenticator=bvs`.
Если `app_id` не задан в tf-файле, то провайдер будет использовать значение из переменной окружения `DECORT_APP_ID`. |
+| app_secret | DECORT_APP_SECRET | Секретный код приложения (клиента) для авторизации в контроллере облачной платформы в режиме `decs3o` или `bvs`.
Аргументы `app_id` и `app_secret` являются обязательными для режимов авторизации `authenticator=decs3o` и `authenticator=bvs`.
Если `app_secret` не задан в tf-файле, то провайдер будет использовать значение из переменной окружения `DECORT_APP_SECRET`. |
+| authenticator | - | Режим авторизации при подключении к контроллеру облачной платформы.
Доступные режимы: `decs3o`, `legacy`, `jwt` или `bvs`.
Данный аргумент является обязательным. |
+| bvs_user | DECORT_BVS_USER | Имя пользователя для авторизации в контроллере облачной платформы в режиме `bvs`.
Аргументы `bvs_password` и `bvs_user` являются обязательными для режима авторизации `authenticator=bvs`.
Если `bvs_user` не задан в tf-файле, то провайдер будет использовать значение из переменной окружения `DECORT_BVS_USER`. |
+| bvs_password | DECORT_BVS_PASSWORD | Пароль пользователя для авторизации в контроллере облачной платформы в режиме `bvs`.
Аргументы `bvs_user` и `bvs_password` являются обязательными для режима авторизации `authenticator=bvs`.
Если `bvs_password` не задан в tf-файле, то провайдер будет использовать значение из переменной окружения `DECORT_BVS_PASSWORD`. |
+| domain | DECORT_DOMAIN | Имя домена в контроллере облачной платформы в режиме `bvs`.
Данный аргумент является обязательным.
Если `domain` не задан в tf-файле, то провайдер будет использовать значение из переменной окружения `DECORT_DOMAIN`. |
+| controller_url | DECORT_CONTROLLER_URL | URL контроллера облачной платформы, через который будет осуществляться управление облачными ресурсами.
Данный аргумент является обязательным. |
+| jwt | DECORT_JWT | JSON Web Token (JWT), который используется для авторизации в контроллере облачной платформы в режиме `jwt`.
Данный аргумент является обязательным для режима авторизации `authenticator=jwt`.
Если `jwt` не задан в tf-файле, то провайдер будет использовать значение из переменной окружения `DECORT_JWT` |
+| oauth2_url | DECORT_OAUTH2_URL | URL авторизационного сервиса OAuth2, который используется для управления доступом пользователей (или программных клиентов) к контроллеру облачной платформы.
Данный аргумент является обязательным для режимов авторизации `authenticator=decs3o`, `authenticator=bvs` и `authenticator=jwt`.
Если `oauth2_url` не задан в tf-файле, то провайдер будет использовать значение из переменной окружения `DECORT_OAUTH2_URL` |
+| password | DECORT_PASSWORD | Пароль для авторизации в контроллере облачной платформы в режиме `legacy`.
Аргументы `password` и `user` являются обязательными для режима авторизации `authenticator=legacy`.
Если `password` не задан в tf-файле, то провайдер будет использовать значение из переменной окружения `DECORT_PASSWORD`. |
+| user | DECORT_USER | Имя пользователя для авторизации в контроллере облачной платформы в режиме `legacy`.
Аргументы `user` и `password` являются обязательными для режима авторизации `authenticator=legacy`.
Если `user` не задан в tf-файле, то провайдер будет использовать значение из переменной окружения `DECORT_USER`. |
+
+## Пример инициализации в режиме авторизации `decs3o`
+Пример инициализации Terraform провайдера DECORT:
+```terraform
+provider "decort" {
+ authenticator = "decs3o"
+ controller_url = "https://ctrl.decort.online"
+ oauth2_url = "https://oauth2.decort.online:7777"
+}
+```
+
+В данном примере используется режим авторизации `decs3o`.
+
+Как отмечено выше, в данном режиме требуется указать аргументы `app_id` и `app_secret`, идентифицирующие пользователя (или приложение-клиент), от лица которого будут выполняться дальнейшие действия. Однако, так как данная информация является конфиденциальной (по сути, она эквивалентна паре _имя пользователя : пароль_), то в общем случае заносить такого рода данные в tf-файл не следует. Рекомендуется определять в среде запуска Terraform переменные окружения `DECORT_APP_ID` и `DECORT_APP_SECRET`, из которых провайдер извлечёт нужные данные. Приведенный пример подразумевает, что нужная информация будет получена из этих переменных окружения.
+
+Пользователь, от лица которого Terrafrom будет выполнять действия в облачной платформе, должен заранее создать пару _Application ID_ и _Application Secret_ в авторизационном приложении OAuth2. Именно эти значения, а также URL авторизационного приложения Oauth2, должны присваиваться аргументам `app_id`, `app_secret` и `oauth2_url` соответственно для успешной инициализации провайдера.
+
+Также обратите внимание на формат задания аргументов `controller_url` и `oauth2_url`. В общем случае они должны содержать идентификатор протокола (_https://_) и сетевой порт, если он отличается от порта по умолчанию (в примере для авторизационного сервиса OAuth2 указан порт _7777_). Эту информацию вы можете узнать у администратора вашей облачной инфраструктуры DECORT.
+
+## Пример инициализации в режиме авторизации `bvs`
+Пример инициализации Terraform провайдера DECORT:
+```terraform
+provider "decort" {
+ authenticator = "bvs"
+ controller_url = "https://delta.qa.loc"
+ oauth2_url = "https://bvs-delta.qa.loc:8443"
+ app_id = "delta"
+ app_secret = ""
+ bvs_password = ""
+ bvs_user = ""
+ domain = "dynamix"
+}
+```
+
+В данном примере используется режим авторизации `bvs`.
+
+Как отмечено выше, в данном режиме требуется указать аргументы `app_id` - идентификатор площадки - delta, alpha, poc, etc. Можно найти на странице администратора по следующему пути: вкладка безопасность - клиентские сервисы - наименование площадки. `app_secret` - пароль площадки. Можно найти на странице администратора по следующему пути: вкладка безопасность - клиентские сервисы - наименование площадки (символ i) - поле "Пароль". Однако, так как данная информация является конфиденциальной, то в общем случае заносить такого рода данные в tf-файл не следует. Рекомендуется определять в среде запуска Terraform переменные окружения `DECORT_APP_ID` и `DECORT_APP_SECRET`, из которых провайдер извлечёт нужные данные. Приведенный пример подразумевает, что нужная информация будет получена из этих переменных окружения.
+Также обязательными аргументами являются: `bvs_user` - имя пользователя, `bvs_password` - пароль пользователя. Рекомендуется не заносить их в tf-файл, а определять в среде запуска Terraform переменные окружения `DECORT_BVS_USER` и `DECORT_BVS_PASSWORD`, из которых провайдер извлечёт нужные данные. Приведенный пример подразумевает, что нужная информация будет получена из этих переменных окружения.
+Домен для подключения `domain` - указывается наименование площадки. Данный аргумент является обязательным. Рекомендуется не заносить его в tf-файл, а определять в среде запуска Terraform переменную окружения `DECORT_DOMAIN`, из которой провайдер извлечёт нужные данные. Приведенный пример подразумевает, что нужная информация будет получена из этих переменных окружения.
+
+Пользователь, от лица которого Terrafrom будет выполнять действия в облачной платформе, должен заранее получить от администратора _Application ID_ и _Application Secret_, _bvs user_ и _bvs password_, а также _domain_. А также осуществить первичный вход на платформу посредством браузера.
+
+Также обратите внимание на формат задания аргументов `controller_url` и `oauth2_url`. В общем случае они должны содержать идентификатор протокола (_https://_) и сетевой порт, если он отличается от порта по умолчанию (в примере для авторизационного сервиса OAuth2 указан порт _8443_). Эту информацию вы можете узнать у администратора вашей облачной инфраструктуры DECORT.
diff --git a/wiki/4.7.4/04.03-Переключение-между-группами-API.md b/wiki/4.7.4/04.03-Переключение-между-группами-API.md
new file mode 100644
index 0000000..fb722ac
--- /dev/null
+++ b/wiki/4.7.4/04.03-Переключение-между-группами-API.md
@@ -0,0 +1,38 @@
+Так как платформа DECORT предоставляет для работы две группы API, то terraform провайдер позволяет свободно переключать режимы работы между этими группами.
+По умолчанию стоит пользовательская группа API. Ее можно сменить на административную группу.
+Если прав у пользователя будет достаточно, то запрос будет выполнен, если нет, то будет ошибка:
+```bash
+Permission denied
+```
+Которая говорит о том, что прав недостаточно. Тогда для выполнения операции обратитесь к администратору платформы.
+Установка режима взаимодействия с группами API осуществляется через установку переменной окружения _DECORT_ADMIN_MODE_.
+Для более подробного описания возможностей каждой группы API см. соответствующий раздел.
+
+## Переключение режима работы в Windows
+Используйте сл. команду:
+```Powershell
+$Env:DECORT_ADMIN_MODE=1
+```
+Для отключения:
+```Powershell
+$Env:DECORT_ADMIN_MODE=0
+```
+## Переключение режима работы в Linux
+Используйте сл. команду:
+```bash
+DECORT_ADMIN_MODE=1
+```
+или
+```bash
+export DECORT_ADMIN_MODE=1
+```
+Для отключения:
+```bash
+DECORT_ADMIN_MODE=0
+```
+или
+```bash
+export DECORT_ADMIN_MODE=0
+```
+**ОБРАТИТЕ ВНИМАНИЕ**
+Переменные окружения создаются для терминальной сессии. В сл. раз их придется задавать еще раз, если требуется режим, отличный от пользовательского.
diff --git a/wiki/4.7.4/04.04-Получение-gid-или-grid_id.md b/wiki/4.7.4/04.04-Получение-gid-или-grid_id.md
new file mode 100644
index 0000000..4b316ac
--- /dev/null
+++ b/wiki/4.7.4/04.04-Получение-gid-или-grid_id.md
@@ -0,0 +1,31 @@
+Платформа может располагаться на нескольких площадках(grid).
+Такие площадки имеют свой id.
+Для создания некоторых ресурсов требуется ввести grid_id или gid площадки.
+Получение gid различается для пользовательского и административного API.
+
+## Получение gid для пользовательского API
+Для получения gid с помощью пользовательского API, необходимо получить информацию из _data_source_ функции _decort_locations_list_, как указано ниже:
+```terraform
+data "decort_locations_list" "ll" {
+
+}
+
+output "test" {
+ value = data.decort_locations_list.ll
+}
+```
+В файл состояния будет сохранен результат, где можно посмотреть доступные для работы площадки.
+
+## Получение gid для административного API
+Для получения gid с помощью административного API, необходимо получить информацию из _data_source_ функции _decort_grid_list_, как указано ниже:
+```terraform
+data "decort_grid_list" "gl" {
+
+}
+
+output "test" {
+ value = data.decort_grid_list.gl
+}
+
+```
+В файл состояния будет сохранен результат, где можно посмотреть доступные для работы площадки.
diff --git a/wiki/4.7.4/04.05-Сборка-terraform-провайдера-в-образ.md b/wiki/4.7.4/04.05-Сборка-terraform-провайдера-в-образ.md
new file mode 100644
index 0000000..02bc8b7
--- /dev/null
+++ b/wiki/4.7.4/04.05-Сборка-terraform-провайдера-в-образ.md
@@ -0,0 +1,43 @@
+Образ приложения - современный способ запуска приложений. Образ приложения представляет собой контейнер, в который входит ОС и необходимые для работы приложения пакеты.
+Способов создать образ приложения довольно много, для этого существуют программы контейнеризации:
+- Docker
+- Podman
+- и другие
+Образ представляет собой "зафиксированную" версию приложения, что означает, что никакие изменения в приложения внесены быть не могут. Так же означает то, что приложение не может создавать побочные файлы при работе.
+Контейнер - это запущенный экземпляр образа. То есть, один образ может порождать множество контейнеров, каждый из которых будет включать в себя отдельный экземпляр приложения.
+Одно из преимуществ работы приложения в контейнере - кроссплатформенность. Это преимущество обуславливается тем, что образ приложения уже включает в себя все необходимое для успешной работы приложения, в том числе операционную систему. Поэтому, пользователю достаточно установить на вычислительной машине программу, которая обеспечивает работу с образами приложений.
+
+## Docker
+Docker является одной из самых популярных программ для работы с образами.
+Docker позволяет:
+- Создавать образы
+- Запускать контейнеры
+- Управлять контейнерами
+- Управлять образами
+Скачать и установить Docker можно по ссылке https://docs.docker.com/get-docker/
+
+## Сборка terraform провайдера
+### Требования:
+- Docker
+- git
+- Компилятор языка GO
+= make
+### Установка необходимых программ
+1. Компилятор языка GO можно скачать и установить по ссылке: https://go.dev/dl/
+2. Docker можно скачать и установить по ссылке выше.
+3. Git можно скачать и установить по ссылке: https://git-scm.com/
+4. Программа make входит в пакет установленных программ для ОС Linux. Для Windows можно воспользоваться инструкцией со stack overflow: https://stackoverflow.com/questions/32127524/how-to-install-and-use-make-in-windows
+### Порядок действий
+1. Склонировать репозиторий с провайдером:
+```bash
+git clone https://github.com/rudecs/terraform-provider-decort.git
+```
+2. Перейти в директорию со скачанным кодом:
+```bash
+cd terraform-provider-decort
+```
+3. Выполнить команду:
+```bash
+make image
+```
+В результате выполнения данной последовательности, будет создан docker образ, который содержит в себе приложение terraform, terraform провайдер.
diff --git a/wiki/4.7.4/05.-Работа-с-terraform.md b/wiki/4.7.4/05.-Работа-с-terraform.md
new file mode 100644
index 0000000..675f2ea
--- /dev/null
+++ b/wiki/4.7.4/05.-Работа-с-terraform.md
@@ -0,0 +1,4 @@
+Раздел описывает некоторые практики работы с terraform, которые могут быть полезны пользователю.
+Раздел включает в себя следующие статьи:
+- Импортирование ресурсов
+- Работа с таймаутами
diff --git a/wiki/4.7.4/05.01-Импортирование-ресурсов.md b/wiki/4.7.4/05.01-Импортирование-ресурсов.md
new file mode 100644
index 0000000..8a419d3
--- /dev/null
+++ b/wiki/4.7.4/05.01-Импортирование-ресурсов.md
@@ -0,0 +1,75 @@
+Импортирование ресурсов в terraform позволяет привести в соответствие состояние terraform (.tfstate) к состоянию ресурса в платформе.
+Необходимость такого приведения возникает в нескольких случаях:
+- Ресурс был создан через портал платформы, работа продолжается через terraform провайдер,
+- Ресурс был создан через terraform провайдер, однако был изменен через портал платформы,
+- Ресурс был создан через terraform провайдер, однако был изменен другим пользователем через terraform провайдер,
+- И так далее
+
+Такие расхождения в состоянии ресурсов нередки, путей их решения несколько:
+- Использовать импортирование ресурсов,
+- Использовать общие файлы состояний ресурсов, к которым будут иметь доступ все участники, занятые в работе с платформой.
+В текущем разделе рассматривается первый вариант.
+
+## Импортирование ресурсов
+Импортирование ресурсов позволяет совершить запрос к платформе, чтобы сформировать файл состояния.
+Чтобы совершить импортирование ресурсов необходимо ввести сл. команду:
+```bash
+terraform import .
+```
+## Пример
+Предположим, что у нас ресурс, описывающий диск:
+```terraform
+resource "decort_disk" "disk" {
+ account_id = 121212
+ gid = 3333
+ disk_name = "mySuperDisk"
+ size_max = 100500
+}
+```
+Если запустить команду:
+```bash
+terraform apply
+```
+То у нас будет создан новый диск.
+Но, такой диск уже есть на площадке и мы хотели бы сформировать .tfstate для этого ресурса.
+Поэтому, для начала, необходимо получить список дисков:
+```terraform
+data "decort_disk_list" "dl"{
+
+}
+output "test" {
+ value = data.decort_disk_list.dl
+}
+```
+В полученных данных необходимо найти требуемый диск, получить его id - параметр disk_id. Пусть это будет - 777777
+Теперь можно выполнить импортирование:
+```bash
+terraform import decort_disk.disk 777777
+```
+Команда должна успешно завершиться, появиться файл состояний, который позволит манипулировать ресурсом.
+
+## Ошибки при импортировании
+При импортировании ресурса может возникнуть сл. ошибка:
+```bash
+Error: : required field is not set
+```
+Где - наименование поля.
+Ошибка возникает в том случае, если в описании ресурса отсутствует обязательное поле.
+Например:
+```terraform
+resource "decort_disk" "disk" {
+ account_id = 121212
+ gid = 3333
+ size_max = 100500
+}
+```
+В приведенном выше описании отсутствует поле disk_name, поэтому, при попытке импортирования возникнет ошибка.
+Для ее устранения, необходимо выполнить запрос на получение списка дисков, найти недостающее поле, после чего добавить его в описание ресурса.
+После этого повторить попытку импортирования.
+
+## Общий алгоритм устранения ошибок
+1. Выполнить запрос импортирования
+2. В случае ошибки - внести недостающие поля.
+3. Повторить п.1.
+
+
diff --git a/wiki/4.7.4/05.02-Работа-с-таймаутами.md b/wiki/4.7.4/05.02-Работа-с-таймаутами.md
new file mode 100644
index 0000000..9a739b4
--- /dev/null
+++ b/wiki/4.7.4/05.02-Работа-с-таймаутами.md
@@ -0,0 +1,100 @@
+Terraform провайдер DECORT поддерживает тонкую настройку таймаутов выполнения запросов к платформе. Таймауты необходимы для определения максимального времени выполнения запроса. При превышении этого времени соединение рвется и запрос считается невыполненным.
+Таймауты применяются при работе с _resource_ функциями провайдера. _Data source_ функции по-умолчанию имеют таймаут в 20 минут и изменяться не может.
+
+## Стандартные таймауты terraform
+| Операция | Время | Описание |
+| --- | --- | --- |
+| create | 20 минут | Создание ресурса |
+| read | 20 минут | Чтение ресурса |
+| update | 20 минут | Обновление ресурса |
+| delete | 20 минут | Удаление ресурса |
+| default | 20 минут | Значение по умолчанию. Устанавливает значение для всех операций |
+
+## Стандартные таймауты провайдера DECORT
+В провайдере DECORT таймауты переопределены для того, чтобы уменьшить нагрузку на платформу.
+| Операция | Время | Описание |
+| --- | --- | --- |
+| create | 10 минут | Создание ресурса |
+| read | 5 минут | Чтение ресурса |
+| update | 5 минут | Обновление ресурса |
+| delete | 5 минут | Удаление ресурса |
+| default | 5 минут | Значение по умолчанию. Устанавливает значение для всех операций |
+
+## Установка таймаутов
+Все таймауты можно установить самостоятельно для каждого ресурса.
+Для этого используется блок _timeouts_, который имеется в каждом ресурсе провайдера.
+Пример:
+```terraform
+resource "decort_res" "res_name" {
+ timeouts {
+ create = "10m"
+ update = "1m"
+ delete = "2m"
+ read = "7m"
+ #default = "15m"
+ }
+}
+```
+Где:
+- create - операция создания ресурса
+- read - операция чтения ресурса
+- update - операция обновления ресурса
+- delete - операция удаления ресурса
+- default - установит заданное время для всех операций
+## Формат установления времени
+Как видно из примера выше, провайдер принимает на вход строку вида:
+```
+""
+```
+Где:
+- time-num - число
+- time-val - сокращенная запись значения временного отрезка.
+
+Таблица с временными отрезками:
+
+| Отрезок | Значение |
+| --- | --- |
+| n | наносекунда |
+| ms | миллисекунда |
+| s | секунда |
+| m | минута |
+| h | час |
+
+Примеры:
+```
+"10m"
+"1s"
+"1h10m"
+```
+И так далее
+
+## Работа с таймером через .tf-файл
+В .tf-файле, в блоке ресурса можно задавать таймауты для операций над ресурсом, однако, при работе с таймаутом, следует помнить о правиле:
+__В случае изменения таймаутов в .tf-файле, операции с новыми таймаутами будут производиться только после apply/plan/destroy__
+То есть, если изменить таймауты и выполнить операцию, то она выполнится со старыми таймаутами, а сл. операция уже будет выполнена с новыми таймаутами.
+Это объясняется тем, что значения таймаутов считываются из файла состояний .tfstate при выполнении операции, и новые значения таймаутов попадут туда только при успешно выполненной операции.
+
+## Ошибки при работе с таймаутом
+### context deadline exceeded
+Если время таймаута слишком короткое, то можно получить сл. ошибку:
+```
+context deadline exceeded
+```
+Которая говорит, что было выполнено прерывание работы программы из-за истечения времени на операцию.
+Для исправления можно увеличить размер окна таймаута и выполнить успешный запрос (например, с помощью терминала), чтобы новое значения таймаутов было добавлено в .tfstate. В противном случае, файл состояния придется править в ручную, либо удалить его и импортировать ресурс для формирования .tfstate.
+
+### 504 ошибка
+Данная ошибка говорит о том, что сервер принудительно разорвал соединения из-за истечения времени на ответ.
+В случае получения данной ошибки, обратитесь в службу технической поддержки.
+
+## Работа с таймаутами через терминал
+Сл. команда выполнит операцию terraform с заданным таймаутом:
+```bash
+timeout