From 5496073a0c4f3076473974115cf7a9a2109766b3 Mon Sep 17 00:00:00 2001 From: Alexey Fetisov Date: Fri, 7 Feb 2025 11:30:15 +0300 Subject: [PATCH] 4.8.1 --- CHANGELOG.md | 46 +- Makefile | 2 +- docs/data-sources/cb_kvmvm.md | 1 + docs/data-sources/cb_kvmvm_list.md | 1 + docs/data-sources/cb_kvmvm_list_deleted.md | 1 + docs/data-sources/cb_node.md | 75 ++ docs/data-sources/cb_node_list.md | 29 + docs/data-sources/cb_sep.md | 3 +- docs/data-sources/cb_sep_list.md | 3 +- docs/data-sources/cb_vins.md | 5 +- docs/data-sources/kvmvm.md | 1 + docs/data-sources/kvmvm_list.md | 1 + docs/data-sources/kvmvm_list_deleted.md | 1 + docs/resources/cb_kvmvm.md | 1 + docs/resources/cb_sep.md | 3 +- docs/resources/cb_vins.md | 5 +- docs/resources/kvmvm.md | 1 + go.mod | 2 +- go.sum | 4 +- .../cloudapi/kvmvm/data_source_compute.go | 7 + .../kvmvm/data_source_compute_list.go | 7 + internal/service/cloudapi/kvmvm/flattens.go | 3 + .../cloudapi/kvmvm/resource_compute.go | 134 ++- .../service/cloudbroker/kvmvm/flattens.go | 3 + .../cloudbroker/kvmvm/resource_compute.go | 72 +- internal/service/cloudbroker/kvmvm/schema.go | 30 + .../cloudbroker/kvmvm/utility_compute.go | 34 +- internal/service/cloudbroker/node/flattens.go | 117 ++- internal/service/cloudbroker/node/schema.go | 186 ++++ internal/service/cloudbroker/sep/flattens.go | 33 +- internal/service/cloudbroker/sep/schema.go | 54 +- internal/service/cloudbroker/vins/flattens.go | 11 +- internal/service/cloudbroker/vins/schema.go | 39 +- samples/cloudapi/kvmvm/resource_kvmvm/main.tf | 8 +- .../cloudbroker/kvmvm/resource_kvmvm/main.tf | 8 +- samples/cloudbroker/sep/resource_sep/main.tf | 2 +- ...°-Terraform-ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€Π°-DECORT.md | 2 +- ...-Terraform-ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€Π°-DECORT.md | 2 +- wiki/4.8.0/07.01.01-Resource_decort_kvmvm.md | 2 +- wiki/4.8.0/07.02.03-Resource_decort_cb_sep.md | 147 ++- .../07.02.11-Resource_decort_cb_kvmvm.md | 2 +- wiki/4.8.1/01.-Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅.md | 7 + wiki/4.8.1/02.-ΠŸΡ€ΠΈΠΌΠ΅Ρ€-Ρ€Π°Π±ΠΎΡ‚Ρ‹.md | 92 ++ ...±Π»Π°Ρ‡Π½ΠΎΠΉ-ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹-DECORT.md | 31 + ...terraform-ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€ΠΎΠΌ-DECORT.md | 6 + ...°-Terraform-ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€Π°-DECORT.md | 150 +++ ...-Terraform-ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€Π°-DECORT.md | 64 ++ ...΅Π½ΠΈΠ΅-ΠΌΠ΅ΠΆΠ΄Ρƒ-Π³Ρ€ΡƒΠΏΠΏΠ°ΠΌΠΈ-API.md | 38 + ...4-ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅-gid-ΠΈΠ»ΠΈ-grid_id.md | 31 + ...form-ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€Π°-Π²-ΠΎΠ±Ρ€Π°Π·.md | 43 + wiki/4.8.1/05.-Π Π°Π±ΠΎΡ‚Π°-с-terraform.md | 4 + ...ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅-рСсурсов.md | 75 ++ ...02-Π Π°Π±ΠΎΡ‚Π°-с-Ρ‚Π°ΠΉΠΌΠ°ΡƒΡ‚Π°ΠΌΠΈ.md | 100 ++ ...становлСниС-рСсурсов.md | 29 + ...урсов.-ΠœΠ΅Ρ‚Π°-Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹.md | 448 +++++++++ ...05.05-Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅-рСсурсов.md | 262 +++++ .../05.06-Установка-Terraform.md | 46 + ...»Π°ΡΡ‚Π΅Ρ€ΠΎΠ²-Π½Π°-Π²Π΅Ρ€ΡΠΈΡŽ-4.2.0.md | 179 ++++ ...Έ-Terraform-ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€Π°-DECORT.md | 4 + ...ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠ°Ρ-Π³Ρ€ΡƒΠΏΠΏΠ°-API.md | 1 + wiki/4.8.1/06.01.01-Data_decort_kvmvm.md | 290 ++++++ wiki/4.8.1/06.01.02-Data_decort_resgroup.md | 128 +++ wiki/4.8.1/06.01.03-Data_decort_disk.md | 115 +++ wiki/4.8.1/06.01.04-Data_decort_vins.md | 292 ++++++ wiki/4.8.1/06.01.05-Data_decort_account.md | 115 +++ wiki/4.8.1/06.01.06-Data_decort_image_list.md | 161 +++ wiki/4.8.1/06.01.07-Data_decort_image.md | 87 ++ .../06.01.08-Data_decort_locations_list.md | 78 ++ .../06.01.09-Data_decort_location_url.md | 25 + .../06.01.11-Data_decort_snapshot_list.md | 36 + wiki/4.8.1/06.01.12-Data_decort_rg_list.md | 124 +++ wiki/4.8.1/06.01.13-Data_decort_disk_list.md | 188 ++++ wiki/4.8.1/06.01.14-Data_decort_vins_list.md | 110 +++ .../4.8.1/06.01.15-Data_decort_extnet_list.md | 90 ++ .../06.01.16-Data_decort_extnet_default.md | 26 + ....01.17-Data_decort_extnet_computes_list.md | 78 ++ wiki/4.8.1/06.01.18-Data_decort_extnet.md | 81 ++ ...6.01.19-Data_decort_account_audits_list.md | 38 + ...01.20-Data_decort_account_computes_list.md | 120 +++ ...1.21-Data_decort_account_consumed_units.md | 40 + ...a_decort_account_consumed_units_by_type.md | 46 + ...06.01.23-Data_decort_account_disks_list.md | 84 ++ ....24-Data_decort_account_flipgroups_list.md | 100 ++ ...1.25-Data_decort_account_reserved_units.md | 40 + .../06.01.26-Data_decort_account_rg_list.md | 95 ++ ...1.27-Data_decort_account_templates_list.md | 86 ++ .../06.01.28-Data_decort_account_vins_list.md | 96 ++ .../06.01.29-Data_decort_account_list.md | 78 ++ ....01.30-Data_decort_account_deleted_list.md | 72 ++ .../06.01.31-Data_decort_bservice_list.md | 118 +++ ...01.32-Data_decort_bservice_deleted_list.md | 83 ++ ...1.33-Data_decort_bservice_snapshot_list.md | 35 + wiki/4.8.1/06.01.34-Data_decort_bservice.md | 94 ++ .../06.01.35-Data_decort_bservice_group.md | 70 ++ wiki/4.8.1/06.01.36-Data_decort_lb.md | 111 +++ wiki/4.8.1/06.01.37-Data_decort_lb_list.md | 183 ++++ .../06.01.38-Data_decort_lb_list_deleted.md | 169 ++++ .../06.01.39-Data_decort_disk_list_types.md | 47 + ...40-Data_decort_disk_list_types_detailed.md | 54 ++ .../06.01.41-Data_decort_disk_list_deleted.md | 131 +++ ....01.42-Data_decort_disk_list_unattached.md | 162 ++++ ...06.01.43-Data_decort_disk_snapshot_list.md | 34 + .../06.01.44-Data_decort_disk_snapshot.md | 40 + wiki/4.8.1/06.01.45-Data_decort_k8s.md | 133 +++ wiki/4.8.1/06.01.46-Data_decort_k8s_list.md | 173 ++++ .../06.01.47-Data_decort_k8s_list_deleted.md | 158 +++ wiki/4.8.1/06.01.48-Data_decort_k8s_wg.md | 68 ++ .../4.8.1/06.01.49-Data_decort_k8s_wg_list.md | 63 ++ .../4.8.1/06.01.50-Data_decort_vins_audits.md | 39 + .../06.01.51-Data_decort_vins_ext_net_list.md | 39 + .../06.01.52-Data_decort_vins_ip_list.md | 40 + .../06.01.53-Data_decort_vins_list_deleted.md | 98 ++ ...06.01.54-Data_decort_vins_nat_rule_list.md | 40 + .../06.01.55-Data_decort_kvmvm_audits.md | 35 + .../06.01.56-Data_decort_kvmvm_get_audits.md | 32 + ...01.57-Data_decort_kvmvm_get_console_url.md | 30 + .../06.01.58-Data_decort_kvmvm_get_log.md | 36 + wiki/4.8.1/06.01.59-Data_decort_kvmvm_list.md | 263 +++++ .../06.01.60-Data_decort_kvmvm_pfw_list.md | 37 + .../06.01.61-Data_decort_kvmvm_user_list.md | 43 + wiki/4.8.1/06.01.62-Data_decort_rg_list.md | 155 +++ ...-Data_decort_rg_affinity_group_computes.md | 50 + ....64-Data_decort_rg_affinity_groups_list.md | 54 ++ ...1.65-Data_decort_rg_affinity_groups_get.md | 44 + wiki/4.8.1/06.01.66-Data_decort_rg_audits.md | 42 + .../06.01.67-Data_decort_rg_list_computes.md | 139 +++ .../06.01.68-Data_decort_rg_list_deleted.md | 143 +++ wiki/4.8.1/06.01.69-Data_decort_rg_list_lb.md | 194 ++++ .../4.8.1/06.01.70-Data_decort_rg_list_pfw.md | 45 + .../06.01.71-Data_decort_rg_list_vins.md | 100 ++ wiki/4.8.1/06.01.72-Data_decort_rg_usage.md | 52 + ....01.73-Data_decort_kvmvm_snapshot_usage.md | 45 + .../06.01.74-Data_decort_k8s_computes.md | 47 + wiki/4.8.1/06.01.75-Data_decort_flipgroup.md | 49 + .../06.01.75-Data_decort_flipgroup_list.md | 125 +++ wiki/4.8.1/06.01.76-Data_decort_k8ci_list.md | 88 ++ .../06.01.77-Data_decort_vins_static_route.md | 41 + ...1.78-Data_decort_vins_static_route_list.md | 36 + ...decort_account_resource_consumption_get.md | 70 ++ ...ecort_account_resource_consumption_list.md | 51 + .../06.01.81-Data_decort_k8s_wg_cloud_init.md | 41 + ...06.01.82-Data_decort_kvmvm_list_deleted.md | 232 +++++ ...01.83-Data_decort_kvmvm_pci_device_list.md | 86 ++ .../06.01.84-Data_decort_kvmvm_vgpu_list.md | 94 ++ ...Data_decort_rg_resource_consumption_get.md | 70 ++ ...ata_decort_rg_resource_consumption_list.md | 63 ++ wiki/4.8.1/06.01.87-Data_decort_vfpool.md | 65 ++ .../4.8.1/06.01.88-Data_decort_vfpool_list.md | 124 +++ wiki/4.8.1/06.01.89-Data_decort_stack.md | 44 + wiki/4.8.1/06.01.90-Data_decort_stack_list.md | 78 ++ wiki/4.8.1/06.01.91-Data_decort_dpdknet.md | 46 + .../06.01.92-Data_decort_dpdknet_list.md | 95 ++ .../06.01.93-Data_decort_disk_replication.md | 120 +++ wiki/4.8.1/06.01.94-Data_decort_audit.md | 46 + ....95-Data_decort_extnet_reserved_ip_list.md | 52 + ...истративная-Π³Ρ€ΡƒΠΏΠΏΠ°-API.md | 1 + wiki/4.8.1/06.02.01-Data_decort_cb_kvmvm.md | 288 ++++++ wiki/4.8.1/06.02.02-Data_decort_cb_rg.md | 87 ++ wiki/4.8.1/06.02.03-Data_decort_cb_disk.md | 122 +++ wiki/4.8.1/06.02.04-Data_decort_cb_vins.md | 314 ++++++ wiki/4.8.1/06.02.05-Data_decort_cb_account.md | 78 ++ .../06.02.06-Data_decort_cb_image_list.md | 181 ++++ wiki/4.8.1/06.02.07-Data_decort_cb_image.md | 95 ++ ....02.08-Data_decort_cb_image_list_stacks.md | 146 +++ .../06.02.09-Data_decort_cb_grid_list.md | 108 +++ wiki/4.8.1/06.02.10-Data_decort_cb_grid.md | 42 + ...ort_cb_account_resource_consumption_get.md | 70 ++ ...rt_cb_account_resource_consumption_list.md | 51 + ...ort_cb_account_available_templates_list.md | 36 + wiki/4.8.1/06.02.103-Data_decort_cb_user.md | 58 ++ .../06.02.104-Data_decort_cb_user_list.md | 87 ++ ...06.02.105-Data_decort_cb_user_get_audit.md | 76 ++ wiki/4.8.1/06.02.106-Data_decort_cb_node.md | 144 +++ .../06.02.107-Data_decort_cb_node_list.md | 190 ++++ wiki/4.8.1/06.02.108-Data_decort_cb_vfpool.md | 65 ++ .../06.02.109-Data_decort_cb_vfpool_list.md | 124 +++ .../06.02.11-Data_decort_cb_pcidevice_list.md | 82 ++ ....110-Data_decort_cb_grid_post_diagnosis.md | 34 + ...2.111-Data_decort_cb_grid_get_diagnosis.md | 40 + .../4.8.1/06.02.112-Data_decort_cb_dpdknet.md | 46 + .../06.02.113-Data_decort_cb_dpdknet_list.md | 97 ++ ....02.114-Data_decort_cb_disk_replication.md | 128 +++ ...15-Data_decort_cb_audits_export_to_file.md | 34 + ...02.116-Data_decort_cb_grid_get_settings.md | 83 ++ ...-Data_decort_cb_extnet_reserved_ip_list.md | 52 + .../06.02.12-Data_decort_cb_pcidevice.md | 46 + wiki/4.8.1/06.02.13-Data_decort_vgpu.md | 42 + wiki/4.8.1/06.02.14-Data_decort_cb_rg_list.md | 145 +++ .../06.02.15-Data_decort_cb_disk_list.md | 197 ++++ .../06.02.16-Data_decort_cb_vins_list.md | 142 +++ ...2.17-Data_decort_cb_account_audits_list.md | 41 + ...18-Data_decort_cb_account_computes_list.md | 124 +++ ...02.19-Data_decort_cb_account_disks_list.md | 86 ++ ...-Data_decort_cb_account_flipgroups_list.md | 111 +++ ...06.02.21-Data_decort_cb_account_rg_list.md | 150 +++ ....02.22-Data_decort_cb_account_vins_list.md | 99 ++ .../06.02.23-Data_decort_cb_account_list.md | 121 +++ ....24-Data_decort_cb_account_list_deleted.md | 115 +++ .../06.02.25-Data_decort_cb_sep_config.md | 73 ++ ...06.02.26-Data_decort_cb_sep_consumption.md | 47 + .../06.02.27-Data_decort_cb_sep_disk_list.md | 53 + .../4.8.1/06.02.28-Data_decort_cb_sep_list.md | 111 +++ .../4.8.1/06.02.29-Data_decort_cb_sep_pool.md | 72 ++ wiki/4.8.1/06.02.30-Data_decort_cb_sep.md | 84 ++ wiki/4.8.1/06.02.31-Data_decort_cb_extnet.md | 99 ++ .../06.02.32-Data_decort_cb_extnet_list.md | 123 +++ wiki/4.8.1/06.02.33-Data_decort_cb_stack.md | 114 +++ .../06.02.34-Data_decort_cb_stack_list.md | 148 +++ .../06.02.35-Data_decort_cb_flipgroup.md | 62 ++ .../06.02.36-Data_decort_cb_flipgroup_list.md | 135 +++ wiki/4.8.1/06.02.37-Data_decort_cb_lb.md | 139 +++ wiki/4.8.1/06.02.38-Data_decort_cb_lb_list.md | 214 ++++ ...06.02.39-Data_decort_cb_lb_list_deleted.md | 201 ++++ ...6.02.40-Data_decort_cb_grid_list_emails.md | 44 + ...41-Data_decort_cb_grid_list_consumption.md | 63 ++ ....42-Data_decort_cb_grid_get_consumption.md | 70 ++ ...06.02.43-Data_decort_cb_grid_get_status.md | 33 + ....02.44-Data_decort_cb_vins_list_deleted.md | 130 +++ ...02.45-Data_decort_cb_vins_nat_rule_list.md | 39 + ....02.46-Data_decort_cb_vins_ext_net_list.md | 37 + .../06.02.47-Data_decort_cb_vins_ip_list.md | 38 + ...8-Data_decort_cb_vins_static_route_list.md | 37 + ....02.49-Data_decort_cb_vins_static_route.md | 44 + .../06.02.50-Data_decort_cb_vins_audits.md | 36 + ...ta_decort_cb_rg_affinity_group_computes.md | 55 ++ ...2-Data_decort_cb_rg_affinity_groups_get.md | 49 + ...-Data_decort_cb_rg_affinity_groups_list.md | 57 ++ .../06.02.54-Data_decort_cb_rg_audits.md | 45 + ...a_decort_cb_rg_resource_consumption_get.md | 70 ++ ..._decort_cb_rg_resource_consumption_list.md | 63 ++ .../4.8.1/06.02.57-Data_decort_cb_rg_usage.md | 58 ++ ...6.02.58-Data_decort_cb_rg_list_computes.md | 143 +++ ...06.02.59-Data_decort_cb_rg_list_deleted.md | 146 +++ .../06.02.60-Data_decort_cb_rg_list_lb.md | 205 ++++ .../06.02.61-Data_decort_cb_rg_list_pfw.md | 46 + .../06.02.62-Data_decort_cb_rg_list_vins.md | 102 ++ ....02.63-Data_decort_cb_disk_list_deleted.md | 179 ++++ ...06.02.64-Data_decort_cb_disk_list_types.md | 46 + ...Data_decort_cb_disk_list_types_detailed.md | 55 ++ ....66-Data_decort_cb_disk_list_unattached.md | 164 ++++ .../06.02.67-Data_decort_cb_disk_snapshot.md | 43 + ...02.68-Data_decort_cb_disk_snapshot_list.md | 36 + wiki/4.8.1/06.02.69-Data_decort_cb_audit.md | 46 + .../06.02.70-Data_decort_cb_audit_list.md | 87 ++ ....02.71-Data_decort_cb_audit_linked_jobs.md | 40 + wiki/4.8.1/06.02.72-Data_decort_cb_k8s.md | 153 +++ .../06.02.73-Data_decort_cb_k8s_computes.md | 49 + .../4.8.1/06.02.74-Data_decort_cb_k8s_list.md | 150 +++ ...6.02.75-Data_decort_cb_k8s_list_deleted.md | 161 +++ wiki/4.8.1/06.02.76-Data_decort_cb_k8s_wg.md | 70 ++ ....02.77-Data_decort_cb_k8s_wg_cloud_init.md | 41 + .../06.02.78-Data_decort_cb_k8s_wg_list.md | 63 ++ .../06.02.79-Data_decort_cb_k8ci_list.md | 98 ++ ....02.80-Data_decort_cb_k8ci_list_deleted.md | 86 ++ wiki/4.8.1/06.02.81-Data_decort_cb_k8ci.md | 44 + ...Data_decort_cb_kvmvm_affinity_relations.md | 43 + .../06.02.83-Data_decort_cb_kvmvm_audits.md | 36 + ....84-Data_decort_cb_kvmvm_boot_order_get.md | 32 + ...6.02.85-Data_decort_cb_kvmvm_get_audits.md | 33 + ...86-Data_decort_cb_kvmvm_get_console_url.md | 32 + .../06.02.87-Data_decort_cb_kvmvm_get_log.md | 38 + .../06.02.88-Data_decort_cb_kvmvm_list.md | 294 ++++++ ...02.89-Data_decort_cb_kvmvm_list_deleted.md | 245 +++++ ...ta_decort_cb_kvmvm_migrate_storage_info.md | 32 + ...91-Data_decort_cb_kvmvm_pci_device_list.md | 88 ++ .../06.02.92-Data_decort_cb_kvmvm_pfw_list.md | 38 + ....93-Data_decort_cb_kvmvm_snapshot_usage.md | 48 + ...2.94-Data_decort_cb_kvmvm_snapshot_list.md | 40 + ...06.02.95-Data_decort_cb_kvmvm_user_list.md | 44 + ...06.02.96-Data_decort_cb_kvmvm_vgpu_list.md | 94 ++ .../06.02.97-Data_decort_cb_extnet_default.md | 25 + ...Data_decort_cb_extnet_static_route_list.md | 37 + ...2.99-Data_decort_cb_extnet_static_route.md | 44 + ...Έ-Terraform-ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€Π°-DECORT.md | 2 + ...ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠ°Ρ-Π³Ρ€ΡƒΠΏΠΏΠ°-API.md | 1 + wiki/4.8.1/07.01.01-Resource_decort_kvmvm.md | 912 +++++++++++++++++ .../07.01.02-Resource_decort_resgroup.md | 298 ++++++ wiki/4.8.1/07.01.03-Resource_decort_disk.md | 177 ++++ wiki/4.8.1/07.01.04-Resource_decort_vins.md | 484 +++++++++ .../07.01.05-Resource_decort_snapshot.md | 57 ++ wiki/4.8.1/07.01.06-Resource_decort_k8s.md | 620 ++++++++++++ wiki/4.8.1/07.01.07-Resource_decort_k8s_wg.md | 188 ++++ .../07.01.08-Resource_decort_image_virtual.md | 83 ++ wiki/4.8.1/07.01.09-Resource_decort_image.md | 162 ++++ wiki/4.8.1/07.01.10-Resource_decort_pfw.md | 59 ++ .../4.8.1/07.01.11-Resource_decort_account.md | 220 +++++ .../07.01.12-Resource_decort_bservice.md | 156 +++ ...07.01.13-Resource_decort_bservice_group.md | 254 +++++ wiki/4.8.1/07.01.14-Resource_decort_lb.md | 205 ++++ .../07.01.15-Resource_decort_lb_frontend.md | 75 ++ ....01.16-Resource_decort_lb_frontend_bind.md | 73 ++ .../07.01.17-Resource_decort_lb_backend.md | 153 +++ ...01.18-Resource_decort_lb_backend_server.md | 156 +++ .../07.01.19-Resource_decort_disk_snapshot.md | 53 + .../07.01.20-Resource_decort_flipgroup.md | 98 ++ wiki/4.8.1/07.01.21-Resource_decort_k8s_cp.md | 367 +++++++ ...01.22-Resource_decort_vins_static_route.md | 61 ++ ...esource_decort_image_from_blank_compute.md | 140 +++ ...esource_decort_image_from_platform_disk.md | 163 ++++ ....01.25-Resource_decort_disk_replication.md | 163 ++++ ...истративная-Π³Ρ€ΡƒΠΏΠΏΠ°-API.md | 1 + .../07.02.01-Resource_decort_cb_pcidevice.md | 104 ++ .../07.02.02-Resource_decort_cb_sep_config.md | 404 ++++++++ wiki/4.8.1/07.02.03-Resource_decort_cb_sep.md | 690 +++++++++++++ ...07.02.04-Resource_decort_cb_cdrom_image.md | 183 ++++ .../07.02.06-Resource_decort_cb_account.md | 237 +++++ ....02.07-Resource_decort_cb_virtual_image.md | 155 +++ .../07.02.08-Resource_decort_cb_image.md | 231 +++++ .../07.02.09-Resource_decort_cb_k8s_wg.md | 145 +++ .../07.02.10-Resource_decort_cb_k8s_cp.md | 282 ++++++ .../07.02.11-Resource_decort_cb_kvmvm.md | 918 ++++++++++++++++++ .../4.8.1/07.02.12-Resource_decort_cb_vins.md | 556 +++++++++++ .../4.8.1/07.02.13-Resource_decort_cb_disk.md | 230 +++++ wiki/4.8.1/07.02.14-Resource_decort_cb_rg.md | 283 ++++++ .../07.02.15-Resource_decort_cb_extnet.md | 302 ++++++ .../07.02.16-Resource_decort_cb_flipgroup.md | 104 ++ wiki/4.8.1/07.02.17-Resource_decort_cb_lb.md | 214 ++++ .../07.02.18-Resource_decort_cb_lb_backend.md | 156 +++ ...19-Resource_decort_cb_lb_backend_server.md | 153 +++ ...07.02.20-Resource_decort_cb_lb_frontend.md | 69 ++ ....21-Resource_decort_cb_lb_frontend_bind.md | 74 ++ ...22-Resource_decort_cb_vins_static_route.md | 62 ++ ....02.23-Resource_decort_cb_disk_snapshot.md | 61 ++ .../4.8.1/07.02.24-Resource_decort_cb_k8ci.md | 127 +++ ...-Resource_decort_cb_extnet_static_route.md | 63 ++ ...urce_decort_cb_image_from_blank_compute.md | 203 ++++ ...urce_decort_cb_image_from_platform_disk.md | 218 +++++ .../4.8.1/07.02.28-Resource_decort_cb_user.md | 81 ++ .../07.02.29-Resource_decort_cb_vfpool.md | 120 +++ ....30-Resource_decort_cb_disk_replication.md | 170 ++++ .../07.02.31-Resource_decort_cb_dpdknet.md | 95 ++ .../08.-ΠŸΠΎΠ»Π΅Π·Π½Ρ‹Π΅-совСты.md | 55 ++ wiki/4.8.1/Home.md | 309 ++++++ wiki/Home.md | 1 + 334 files changed, 33783 insertions(+), 271 deletions(-) create mode 100644 wiki/4.8.1/01.-Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅.md create mode 100644 wiki/4.8.1/02.-ΠŸΡ€ΠΈΠΌΠ΅Ρ€-Ρ€Π°Π±ΠΎΡ‚Ρ‹.md create mode 100644 wiki/4.8.1/03.-ΠžΠ±Π·ΠΎΡ€-ΠΎΠ±Π»Π°Ρ‡Π½ΠΎΠΉ-ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹-DECORT.md create mode 100644 wiki/4.8.1/04.-Начало-Ρ€Π°Π±ΠΎΡ‚Ρ‹-с-terraform-ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€ΠΎΠΌ-DECORT.md create mode 100644 wiki/4.8.1/04.01-Установка-Terraform-ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€Π°-DECORT.md create mode 100644 wiki/4.8.1/04.02-Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ-Terraform-ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€Π°-DECORT.md create mode 100644 wiki/4.8.1/04.03-ΠŸΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅-ΠΌΠ΅ΠΆΠ΄Ρƒ-Π³Ρ€ΡƒΠΏΠΏΠ°ΠΌΠΈ-API.md create mode 100644 wiki/4.8.1/04.04-ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅-gid-ΠΈΠ»ΠΈ-grid_id.md create mode 100644 wiki/4.8.1/04.05-Π‘Π±ΠΎΡ€ΠΊΠ°-terraform-ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€Π°-Π²-ΠΎΠ±Ρ€Π°Π·.md create mode 100644 wiki/4.8.1/05.-Π Π°Π±ΠΎΡ‚Π°-с-terraform.md create mode 100644 wiki/4.8.1/05.01-Π˜ΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅-рСсурсов.md create mode 100644 wiki/4.8.1/05.02-Π Π°Π±ΠΎΡ‚Π°-с-Ρ‚Π°ΠΉΠΌΠ°ΡƒΡ‚Π°ΠΌΠΈ.md create mode 100644 wiki/4.8.1/05.03-ВосстановлСниС-рСсурсов.md create mode 100644 wiki/4.8.1/05.04-МассовоС-созданиС-рСсурсов.-ΠœΠ΅Ρ‚Π°-Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹.md create mode 100644 wiki/4.8.1/05.05-Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅-рСсурсов.md create mode 100644 wiki/4.8.1/05.06-Установка-Terraform.md create mode 100644 wiki/4.8.1/05.07-ΠœΠΈΠ³Ρ€Π°Ρ†ΠΈΡ-k8s-кластСров-Π½Π°-Π²Π΅Ρ€ΡΠΈΡŽ-4.2.0.md create mode 100644 wiki/4.8.1/06.-Data-source-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ-Terraform-ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€Π°-DECORT.md create mode 100644 wiki/4.8.1/06.01-ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠ°Ρ-Π³Ρ€ΡƒΠΏΠΏΠ°-API.md create mode 100644 wiki/4.8.1/06.01.01-Data_decort_kvmvm.md create mode 100644 wiki/4.8.1/06.01.02-Data_decort_resgroup.md create mode 100644 wiki/4.8.1/06.01.03-Data_decort_disk.md create mode 100644 wiki/4.8.1/06.01.04-Data_decort_vins.md create mode 100644 wiki/4.8.1/06.01.05-Data_decort_account.md create mode 100644 wiki/4.8.1/06.01.06-Data_decort_image_list.md create mode 100644 wiki/4.8.1/06.01.07-Data_decort_image.md create mode 100644 wiki/4.8.1/06.01.08-Data_decort_locations_list.md create mode 100644 wiki/4.8.1/06.01.09-Data_decort_location_url.md create mode 100644 wiki/4.8.1/06.01.11-Data_decort_snapshot_list.md create mode 100644 wiki/4.8.1/06.01.12-Data_decort_rg_list.md create mode 100644 wiki/4.8.1/06.01.13-Data_decort_disk_list.md create mode 100644 wiki/4.8.1/06.01.14-Data_decort_vins_list.md create mode 100644 wiki/4.8.1/06.01.15-Data_decort_extnet_list.md create mode 100644 wiki/4.8.1/06.01.16-Data_decort_extnet_default.md create mode 100644 wiki/4.8.1/06.01.17-Data_decort_extnet_computes_list.md create mode 100644 wiki/4.8.1/06.01.18-Data_decort_extnet.md create mode 100644 wiki/4.8.1/06.01.19-Data_decort_account_audits_list.md create mode 100644 wiki/4.8.1/06.01.20-Data_decort_account_computes_list.md create mode 100644 wiki/4.8.1/06.01.21-Data_decort_account_consumed_units.md create mode 100644 wiki/4.8.1/06.01.22-Data_decort_account_consumed_units_by_type.md create mode 100644 wiki/4.8.1/06.01.23-Data_decort_account_disks_list.md create mode 100644 wiki/4.8.1/06.01.24-Data_decort_account_flipgroups_list.md create mode 100644 wiki/4.8.1/06.01.25-Data_decort_account_reserved_units.md create mode 100644 wiki/4.8.1/06.01.26-Data_decort_account_rg_list.md create mode 100644 wiki/4.8.1/06.01.27-Data_decort_account_templates_list.md create mode 100644 wiki/4.8.1/06.01.28-Data_decort_account_vins_list.md create mode 100644 wiki/4.8.1/06.01.29-Data_decort_account_list.md create mode 100644 wiki/4.8.1/06.01.30-Data_decort_account_deleted_list.md create mode 100644 wiki/4.8.1/06.01.31-Data_decort_bservice_list.md create mode 100644 wiki/4.8.1/06.01.32-Data_decort_bservice_deleted_list.md create mode 100644 wiki/4.8.1/06.01.33-Data_decort_bservice_snapshot_list.md create mode 100644 wiki/4.8.1/06.01.34-Data_decort_bservice.md create mode 100644 wiki/4.8.1/06.01.35-Data_decort_bservice_group.md create mode 100644 wiki/4.8.1/06.01.36-Data_decort_lb.md create mode 100644 wiki/4.8.1/06.01.37-Data_decort_lb_list.md create mode 100644 wiki/4.8.1/06.01.38-Data_decort_lb_list_deleted.md create mode 100644 wiki/4.8.1/06.01.39-Data_decort_disk_list_types.md create mode 100644 wiki/4.8.1/06.01.40-Data_decort_disk_list_types_detailed.md create mode 100644 wiki/4.8.1/06.01.41-Data_decort_disk_list_deleted.md create mode 100644 wiki/4.8.1/06.01.42-Data_decort_disk_list_unattached.md create mode 100644 wiki/4.8.1/06.01.43-Data_decort_disk_snapshot_list.md create mode 100644 wiki/4.8.1/06.01.44-Data_decort_disk_snapshot.md create mode 100644 wiki/4.8.1/06.01.45-Data_decort_k8s.md create mode 100644 wiki/4.8.1/06.01.46-Data_decort_k8s_list.md create mode 100644 wiki/4.8.1/06.01.47-Data_decort_k8s_list_deleted.md create mode 100644 wiki/4.8.1/06.01.48-Data_decort_k8s_wg.md create mode 100644 wiki/4.8.1/06.01.49-Data_decort_k8s_wg_list.md create mode 100644 wiki/4.8.1/06.01.50-Data_decort_vins_audits.md create mode 100644 wiki/4.8.1/06.01.51-Data_decort_vins_ext_net_list.md create mode 100644 wiki/4.8.1/06.01.52-Data_decort_vins_ip_list.md create mode 100644 wiki/4.8.1/06.01.53-Data_decort_vins_list_deleted.md create mode 100644 wiki/4.8.1/06.01.54-Data_decort_vins_nat_rule_list.md create mode 100644 wiki/4.8.1/06.01.55-Data_decort_kvmvm_audits.md create mode 100644 wiki/4.8.1/06.01.56-Data_decort_kvmvm_get_audits.md create mode 100644 wiki/4.8.1/06.01.57-Data_decort_kvmvm_get_console_url.md create mode 100644 wiki/4.8.1/06.01.58-Data_decort_kvmvm_get_log.md create mode 100644 wiki/4.8.1/06.01.59-Data_decort_kvmvm_list.md create mode 100644 wiki/4.8.1/06.01.60-Data_decort_kvmvm_pfw_list.md create mode 100644 wiki/4.8.1/06.01.61-Data_decort_kvmvm_user_list.md create mode 100644 wiki/4.8.1/06.01.62-Data_decort_rg_list.md create mode 100644 wiki/4.8.1/06.01.63-Data_decort_rg_affinity_group_computes.md create mode 100644 wiki/4.8.1/06.01.64-Data_decort_rg_affinity_groups_list.md create mode 100644 wiki/4.8.1/06.01.65-Data_decort_rg_affinity_groups_get.md create mode 100644 wiki/4.8.1/06.01.66-Data_decort_rg_audits.md create mode 100644 wiki/4.8.1/06.01.67-Data_decort_rg_list_computes.md create mode 100644 wiki/4.8.1/06.01.68-Data_decort_rg_list_deleted.md create mode 100644 wiki/4.8.1/06.01.69-Data_decort_rg_list_lb.md create mode 100644 wiki/4.8.1/06.01.70-Data_decort_rg_list_pfw.md create mode 100644 wiki/4.8.1/06.01.71-Data_decort_rg_list_vins.md create mode 100644 wiki/4.8.1/06.01.72-Data_decort_rg_usage.md create mode 100644 wiki/4.8.1/06.01.73-Data_decort_kvmvm_snapshot_usage.md create mode 100644 wiki/4.8.1/06.01.74-Data_decort_k8s_computes.md create mode 100644 wiki/4.8.1/06.01.75-Data_decort_flipgroup.md create mode 100644 wiki/4.8.1/06.01.75-Data_decort_flipgroup_list.md create mode 100644 wiki/4.8.1/06.01.76-Data_decort_k8ci_list.md create mode 100644 wiki/4.8.1/06.01.77-Data_decort_vins_static_route.md create mode 100644 wiki/4.8.1/06.01.78-Data_decort_vins_static_route_list.md create mode 100644 wiki/4.8.1/06.01.79-Data_decort_account_resource_consumption_get.md create mode 100644 wiki/4.8.1/06.01.80-Data_decort_account_resource_consumption_list.md create mode 100644 wiki/4.8.1/06.01.81-Data_decort_k8s_wg_cloud_init.md create mode 100644 wiki/4.8.1/06.01.82-Data_decort_kvmvm_list_deleted.md create mode 100644 wiki/4.8.1/06.01.83-Data_decort_kvmvm_pci_device_list.md create mode 100644 wiki/4.8.1/06.01.84-Data_decort_kvmvm_vgpu_list.md create mode 100644 wiki/4.8.1/06.01.85-Data_decort_rg_resource_consumption_get.md create mode 100644 wiki/4.8.1/06.01.86-Data_decort_rg_resource_consumption_list.md create mode 100644 wiki/4.8.1/06.01.87-Data_decort_vfpool.md create mode 100644 wiki/4.8.1/06.01.88-Data_decort_vfpool_list.md create mode 100644 wiki/4.8.1/06.01.89-Data_decort_stack.md create mode 100644 wiki/4.8.1/06.01.90-Data_decort_stack_list.md create mode 100644 wiki/4.8.1/06.01.91-Data_decort_dpdknet.md create mode 100644 wiki/4.8.1/06.01.92-Data_decort_dpdknet_list.md create mode 100644 wiki/4.8.1/06.01.93-Data_decort_disk_replication.md create mode 100644 wiki/4.8.1/06.01.94-Data_decort_audit.md create mode 100644 wiki/4.8.1/06.01.95-Data_decort_extnet_reserved_ip_list.md create mode 100644 wiki/4.8.1/06.02-Административная-Π³Ρ€ΡƒΠΏΠΏΠ°-API.md create mode 100644 wiki/4.8.1/06.02.01-Data_decort_cb_kvmvm.md create mode 100644 wiki/4.8.1/06.02.02-Data_decort_cb_rg.md create mode 100644 wiki/4.8.1/06.02.03-Data_decort_cb_disk.md create mode 100644 wiki/4.8.1/06.02.04-Data_decort_cb_vins.md create mode 100644 wiki/4.8.1/06.02.05-Data_decort_cb_account.md create mode 100644 wiki/4.8.1/06.02.06-Data_decort_cb_image_list.md create mode 100644 wiki/4.8.1/06.02.07-Data_decort_cb_image.md create mode 100644 wiki/4.8.1/06.02.08-Data_decort_cb_image_list_stacks.md create mode 100644 wiki/4.8.1/06.02.09-Data_decort_cb_grid_list.md create mode 100644 wiki/4.8.1/06.02.10-Data_decort_cb_grid.md create mode 100644 wiki/4.8.1/06.02.100-Data_decort_cb_account_resource_consumption_get.md create mode 100644 wiki/4.8.1/06.02.101-Data_decort_cb_account_resource_consumption_list.md create mode 100644 wiki/4.8.1/06.02.102-Data_decort_cb_account_available_templates_list.md create mode 100644 wiki/4.8.1/06.02.103-Data_decort_cb_user.md create mode 100644 wiki/4.8.1/06.02.104-Data_decort_cb_user_list.md create mode 100644 wiki/4.8.1/06.02.105-Data_decort_cb_user_get_audit.md create mode 100644 wiki/4.8.1/06.02.106-Data_decort_cb_node.md create mode 100644 wiki/4.8.1/06.02.107-Data_decort_cb_node_list.md create mode 100644 wiki/4.8.1/06.02.108-Data_decort_cb_vfpool.md create mode 100644 wiki/4.8.1/06.02.109-Data_decort_cb_vfpool_list.md create mode 100644 wiki/4.8.1/06.02.11-Data_decort_cb_pcidevice_list.md create mode 100644 wiki/4.8.1/06.02.110-Data_decort_cb_grid_post_diagnosis.md create mode 100644 wiki/4.8.1/06.02.111-Data_decort_cb_grid_get_diagnosis.md create mode 100644 wiki/4.8.1/06.02.112-Data_decort_cb_dpdknet.md create mode 100644 wiki/4.8.1/06.02.113-Data_decort_cb_dpdknet_list.md create mode 100644 wiki/4.8.1/06.02.114-Data_decort_cb_disk_replication.md create mode 100644 wiki/4.8.1/06.02.115-Data_decort_cb_audits_export_to_file.md create mode 100644 wiki/4.8.1/06.02.116-Data_decort_cb_grid_get_settings.md create mode 100644 wiki/4.8.1/06.02.117-Data_decort_cb_extnet_reserved_ip_list.md create mode 100644 wiki/4.8.1/06.02.12-Data_decort_cb_pcidevice.md create mode 100644 wiki/4.8.1/06.02.13-Data_decort_vgpu.md create mode 100644 wiki/4.8.1/06.02.14-Data_decort_cb_rg_list.md create mode 100644 wiki/4.8.1/06.02.15-Data_decort_cb_disk_list.md create mode 100644 wiki/4.8.1/06.02.16-Data_decort_cb_vins_list.md create mode 100644 wiki/4.8.1/06.02.17-Data_decort_cb_account_audits_list.md create mode 100644 wiki/4.8.1/06.02.18-Data_decort_cb_account_computes_list.md create mode 100644 wiki/4.8.1/06.02.19-Data_decort_cb_account_disks_list.md create mode 100644 wiki/4.8.1/06.02.20-Data_decort_cb_account_flipgroups_list.md create mode 100644 wiki/4.8.1/06.02.21-Data_decort_cb_account_rg_list.md create mode 100644 wiki/4.8.1/06.02.22-Data_decort_cb_account_vins_list.md create mode 100644 wiki/4.8.1/06.02.23-Data_decort_cb_account_list.md create mode 100644 wiki/4.8.1/06.02.24-Data_decort_cb_account_list_deleted.md create mode 100644 wiki/4.8.1/06.02.25-Data_decort_cb_sep_config.md create mode 100644 wiki/4.8.1/06.02.26-Data_decort_cb_sep_consumption.md create mode 100644 wiki/4.8.1/06.02.27-Data_decort_cb_sep_disk_list.md create mode 100644 wiki/4.8.1/06.02.28-Data_decort_cb_sep_list.md create mode 100644 wiki/4.8.1/06.02.29-Data_decort_cb_sep_pool.md create mode 100644 wiki/4.8.1/06.02.30-Data_decort_cb_sep.md create mode 100644 wiki/4.8.1/06.02.31-Data_decort_cb_extnet.md create mode 100644 wiki/4.8.1/06.02.32-Data_decort_cb_extnet_list.md create mode 100644 wiki/4.8.1/06.02.33-Data_decort_cb_stack.md create mode 100644 wiki/4.8.1/06.02.34-Data_decort_cb_stack_list.md create mode 100644 wiki/4.8.1/06.02.35-Data_decort_cb_flipgroup.md create mode 100644 wiki/4.8.1/06.02.36-Data_decort_cb_flipgroup_list.md create mode 100644 wiki/4.8.1/06.02.37-Data_decort_cb_lb.md create mode 100644 wiki/4.8.1/06.02.38-Data_decort_cb_lb_list.md create mode 100644 wiki/4.8.1/06.02.39-Data_decort_cb_lb_list_deleted.md create mode 100644 wiki/4.8.1/06.02.40-Data_decort_cb_grid_list_emails.md create mode 100644 wiki/4.8.1/06.02.41-Data_decort_cb_grid_list_consumption.md create mode 100644 wiki/4.8.1/06.02.42-Data_decort_cb_grid_get_consumption.md create mode 100644 wiki/4.8.1/06.02.43-Data_decort_cb_grid_get_status.md create mode 100644 wiki/4.8.1/06.02.44-Data_decort_cb_vins_list_deleted.md create mode 100644 wiki/4.8.1/06.02.45-Data_decort_cb_vins_nat_rule_list.md create mode 100644 wiki/4.8.1/06.02.46-Data_decort_cb_vins_ext_net_list.md create mode 100644 wiki/4.8.1/06.02.47-Data_decort_cb_vins_ip_list.md create mode 100644 wiki/4.8.1/06.02.48-Data_decort_cb_vins_static_route_list.md create mode 100644 wiki/4.8.1/06.02.49-Data_decort_cb_vins_static_route.md create mode 100644 wiki/4.8.1/06.02.50-Data_decort_cb_vins_audits.md create mode 100644 wiki/4.8.1/06.02.51-Data_decort_cb_rg_affinity_group_computes.md create mode 100644 wiki/4.8.1/06.02.52-Data_decort_cb_rg_affinity_groups_get.md create mode 100644 wiki/4.8.1/06.02.53-Data_decort_cb_rg_affinity_groups_list.md create mode 100644 wiki/4.8.1/06.02.54-Data_decort_cb_rg_audits.md create mode 100644 wiki/4.8.1/06.02.55-Data_decort_cb_rg_resource_consumption_get.md create mode 100644 wiki/4.8.1/06.02.56-Data_decort_cb_rg_resource_consumption_list.md create mode 100644 wiki/4.8.1/06.02.57-Data_decort_cb_rg_usage.md create mode 100644 wiki/4.8.1/06.02.58-Data_decort_cb_rg_list_computes.md create mode 100644 wiki/4.8.1/06.02.59-Data_decort_cb_rg_list_deleted.md create mode 100644 wiki/4.8.1/06.02.60-Data_decort_cb_rg_list_lb.md create mode 100644 wiki/4.8.1/06.02.61-Data_decort_cb_rg_list_pfw.md create mode 100644 wiki/4.8.1/06.02.62-Data_decort_cb_rg_list_vins.md create mode 100644 wiki/4.8.1/06.02.63-Data_decort_cb_disk_list_deleted.md create mode 100644 wiki/4.8.1/06.02.64-Data_decort_cb_disk_list_types.md create mode 100644 wiki/4.8.1/06.02.65-Data_decort_cb_disk_list_types_detailed.md create mode 100644 wiki/4.8.1/06.02.66-Data_decort_cb_disk_list_unattached.md create mode 100644 wiki/4.8.1/06.02.67-Data_decort_cb_disk_snapshot.md create mode 100644 wiki/4.8.1/06.02.68-Data_decort_cb_disk_snapshot_list.md create mode 100644 wiki/4.8.1/06.02.69-Data_decort_cb_audit.md create mode 100644 wiki/4.8.1/06.02.70-Data_decort_cb_audit_list.md create mode 100644 wiki/4.8.1/06.02.71-Data_decort_cb_audit_linked_jobs.md create mode 100644 wiki/4.8.1/06.02.72-Data_decort_cb_k8s.md create mode 100644 wiki/4.8.1/06.02.73-Data_decort_cb_k8s_computes.md create mode 100644 wiki/4.8.1/06.02.74-Data_decort_cb_k8s_list.md create mode 100644 wiki/4.8.1/06.02.75-Data_decort_cb_k8s_list_deleted.md create mode 100644 wiki/4.8.1/06.02.76-Data_decort_cb_k8s_wg.md create mode 100644 wiki/4.8.1/06.02.77-Data_decort_cb_k8s_wg_cloud_init.md create mode 100644 wiki/4.8.1/06.02.78-Data_decort_cb_k8s_wg_list.md create mode 100644 wiki/4.8.1/06.02.79-Data_decort_cb_k8ci_list.md create mode 100644 wiki/4.8.1/06.02.80-Data_decort_cb_k8ci_list_deleted.md create mode 100644 wiki/4.8.1/06.02.81-Data_decort_cb_k8ci.md create mode 100644 wiki/4.8.1/06.02.82-Data_decort_cb_kvmvm_affinity_relations.md create mode 100644 wiki/4.8.1/06.02.83-Data_decort_cb_kvmvm_audits.md create mode 100644 wiki/4.8.1/06.02.84-Data_decort_cb_kvmvm_boot_order_get.md create mode 100644 wiki/4.8.1/06.02.85-Data_decort_cb_kvmvm_get_audits.md create mode 100644 wiki/4.8.1/06.02.86-Data_decort_cb_kvmvm_get_console_url.md create mode 100644 wiki/4.8.1/06.02.87-Data_decort_cb_kvmvm_get_log.md create mode 100644 wiki/4.8.1/06.02.88-Data_decort_cb_kvmvm_list.md create mode 100644 wiki/4.8.1/06.02.89-Data_decort_cb_kvmvm_list_deleted.md create mode 100644 wiki/4.8.1/06.02.90-Data_decort_cb_kvmvm_migrate_storage_info.md create mode 100644 wiki/4.8.1/06.02.91-Data_decort_cb_kvmvm_pci_device_list.md create mode 100644 wiki/4.8.1/06.02.92-Data_decort_cb_kvmvm_pfw_list.md create mode 100644 wiki/4.8.1/06.02.93-Data_decort_cb_kvmvm_snapshot_usage.md create mode 100644 wiki/4.8.1/06.02.94-Data_decort_cb_kvmvm_snapshot_list.md create mode 100644 wiki/4.8.1/06.02.95-Data_decort_cb_kvmvm_user_list.md create mode 100644 wiki/4.8.1/06.02.96-Data_decort_cb_kvmvm_vgpu_list.md create mode 100644 wiki/4.8.1/06.02.97-Data_decort_cb_extnet_default.md create mode 100644 wiki/4.8.1/06.02.98-Data_decort_cb_extnet_static_route_list.md create mode 100644 wiki/4.8.1/06.02.99-Data_decort_cb_extnet_static_route.md create mode 100644 wiki/4.8.1/07.-Resource-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ-Terraform-ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€Π°-DECORT.md create mode 100644 wiki/4.8.1/07.01-ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠ°Ρ-Π³Ρ€ΡƒΠΏΠΏΠ°-API.md create mode 100644 wiki/4.8.1/07.01.01-Resource_decort_kvmvm.md create mode 100644 wiki/4.8.1/07.01.02-Resource_decort_resgroup.md create mode 100644 wiki/4.8.1/07.01.03-Resource_decort_disk.md create mode 100644 wiki/4.8.1/07.01.04-Resource_decort_vins.md create mode 100644 wiki/4.8.1/07.01.05-Resource_decort_snapshot.md create mode 100644 wiki/4.8.1/07.01.06-Resource_decort_k8s.md create mode 100644 wiki/4.8.1/07.01.07-Resource_decort_k8s_wg.md create mode 100644 wiki/4.8.1/07.01.08-Resource_decort_image_virtual.md create mode 100644 wiki/4.8.1/07.01.09-Resource_decort_image.md create mode 100644 wiki/4.8.1/07.01.10-Resource_decort_pfw.md create mode 100644 wiki/4.8.1/07.01.11-Resource_decort_account.md create mode 100644 wiki/4.8.1/07.01.12-Resource_decort_bservice.md create mode 100644 wiki/4.8.1/07.01.13-Resource_decort_bservice_group.md create mode 100644 wiki/4.8.1/07.01.14-Resource_decort_lb.md create mode 100644 wiki/4.8.1/07.01.15-Resource_decort_lb_frontend.md create mode 100644 wiki/4.8.1/07.01.16-Resource_decort_lb_frontend_bind.md create mode 100644 wiki/4.8.1/07.01.17-Resource_decort_lb_backend.md create mode 100644 wiki/4.8.1/07.01.18-Resource_decort_lb_backend_server.md create mode 100644 wiki/4.8.1/07.01.19-Resource_decort_disk_snapshot.md create mode 100644 wiki/4.8.1/07.01.20-Resource_decort_flipgroup.md create mode 100644 wiki/4.8.1/07.01.21-Resource_decort_k8s_cp.md create mode 100644 wiki/4.8.1/07.01.22-Resource_decort_vins_static_route.md create mode 100644 wiki/4.8.1/07.01.23-Resource_decort_image_from_blank_compute.md create mode 100644 wiki/4.8.1/07.01.24-Resource_decort_image_from_platform_disk.md create mode 100644 wiki/4.8.1/07.01.25-Resource_decort_disk_replication.md create mode 100644 wiki/4.8.1/07.02-Административная-Π³Ρ€ΡƒΠΏΠΏΠ°-API.md create mode 100644 wiki/4.8.1/07.02.01-Resource_decort_cb_pcidevice.md create mode 100644 wiki/4.8.1/07.02.02-Resource_decort_cb_sep_config.md create mode 100644 wiki/4.8.1/07.02.03-Resource_decort_cb_sep.md create mode 100644 wiki/4.8.1/07.02.04-Resource_decort_cb_cdrom_image.md create mode 100644 wiki/4.8.1/07.02.06-Resource_decort_cb_account.md create mode 100644 wiki/4.8.1/07.02.07-Resource_decort_cb_virtual_image.md create mode 100644 wiki/4.8.1/07.02.08-Resource_decort_cb_image.md create mode 100644 wiki/4.8.1/07.02.09-Resource_decort_cb_k8s_wg.md create mode 100644 wiki/4.8.1/07.02.10-Resource_decort_cb_k8s_cp.md create mode 100644 wiki/4.8.1/07.02.11-Resource_decort_cb_kvmvm.md create mode 100644 wiki/4.8.1/07.02.12-Resource_decort_cb_vins.md create mode 100644 wiki/4.8.1/07.02.13-Resource_decort_cb_disk.md create mode 100644 wiki/4.8.1/07.02.14-Resource_decort_cb_rg.md create mode 100644 wiki/4.8.1/07.02.15-Resource_decort_cb_extnet.md create mode 100644 wiki/4.8.1/07.02.16-Resource_decort_cb_flipgroup.md create mode 100644 wiki/4.8.1/07.02.17-Resource_decort_cb_lb.md create mode 100644 wiki/4.8.1/07.02.18-Resource_decort_cb_lb_backend.md create mode 100644 wiki/4.8.1/07.02.19-Resource_decort_cb_lb_backend_server.md create mode 100644 wiki/4.8.1/07.02.20-Resource_decort_cb_lb_frontend.md create mode 100644 wiki/4.8.1/07.02.21-Resource_decort_cb_lb_frontend_bind.md create mode 100644 wiki/4.8.1/07.02.22-Resource_decort_cb_vins_static_route.md create mode 100644 wiki/4.8.1/07.02.23-Resource_decort_cb_disk_snapshot.md create mode 100644 wiki/4.8.1/07.02.24-Resource_decort_cb_k8ci.md create mode 100644 wiki/4.8.1/07.02.25-Resource_decort_cb_extnet_static_route.md create mode 100644 wiki/4.8.1/07.02.26-Resource_decort_cb_image_from_blank_compute.md create mode 100644 wiki/4.8.1/07.02.27-Resource_decort_cb_image_from_platform_disk.md create mode 100644 wiki/4.8.1/07.02.28-Resource_decort_cb_user.md create mode 100644 wiki/4.8.1/07.02.29-Resource_decort_cb_vfpool.md create mode 100644 wiki/4.8.1/07.02.30-Resource_decort_cb_disk_replication.md create mode 100644 wiki/4.8.1/07.02.31-Resource_decort_cb_dpdknet.md create mode 100644 wiki/4.8.1/08.-ΠŸΠΎΠ»Π΅Π·Π½Ρ‹Π΅-совСты.md create mode 100644 wiki/4.8.1/Home.md diff --git a/CHANGELOG.md b/CHANGELOG.md index 4b23866..69251c5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,54 +1,32 @@ -## Version 4.8.0 +## Version 4.8.1 ### Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ -#### extnet -| Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€
Π·Π°Π΄Π°Ρ‡ΠΈ | ОписаниС | -| --- | --- | -| BATF-656 | ВычисляСмоС ΠΏΠΎΠ»Π΅ `account_id` Π² Π±Π»ΠΎΠΊΠ΅ `reservations` Π² resource `decort_cb_extnet` ΠΈ data sources `decort_extnet, decort_cb_extnet` Π² cloudapi/extnet ΠΈ cloudbroker/extnet | -| BATF-658 | Data sources `decort_extnet_reserved_ip_list, decort_cb_extnet_reserved_ip_list` Π² cloudapi/extnet ΠΈ cloudbroker/extnet | -| BATF-658 | ΠžΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ Π±Π»ΠΎΠΊ `reserved_ip`Π² resource `decort_cb_extnet` Π² cloudbroker/extnet | - -#### image -| Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€
Π·Π°Π΄Π°Ρ‡ΠΈ | ОписаниС | -| --- | --- | -| BATF-667 | ВычисляСмоС ΠΏΠΎΠ»Π΅ `snapshot_id` Π² resources `decort_cb_image, decort_cb_image_from_blank_compute, decort_cb_image_from_platform_disk, decort_cb_virtual_image, decort_cb_cdrom_image` ΠΈ data sources `decort_cb_image, decort_cb_image_list` Π² cloudbroker/image | - -#### grid -| Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€
Π·Π°Π΄Π°Ρ‡ΠΈ | ОписаниС | -| --- | --- | -| BATF-669 | ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠΎΠ»Π΅ `file_path` Π² data source `decort_cb_grid_post_diagnosis` Π² cloudbroker/grid | - #### kvmvm | Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€
Π·Π°Π΄Π°Ρ‡ΠΈ | ОписаниС | | --- | --- | -| BATF-656 | ВычисляСмоС ΠΏΠΎΠ»Π΅ `vnc_password` Π² resources `decort_kvmvm, decort_cb_kvmvm` ΠΈ data sources `decort_kvmvm, decort_cb_kvmvm` Π² cloudapi/kvmvm ΠΈ cloudbroker/kvmvm | -| BATF-656 | ΠžΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΠΎΠ»Π΅ `cd_image_id`Π² data_source `decort_cb_kvmvm_list` Π² cloudbroker/kvmvm | -| BATF-666 | ΠžΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΠΎΠ»Π΅ `auto_start_w_node`Π² resources `decort_kvmvm, decort_cb_kvmvm` Π² cloudapi/kvmvm ΠΈ cloudbroker/kvmvm | -| BATF-666 | ВычисляСмоС ΠΏΠΎΠ»Π΅ `auto_start_w_node`Π² data_sources `decort_kvmvm, decort_kvmvm_list, decort_kvmvm_list_deleted, decort_cb_kvmvm, decort_cb_kvmvm_list, decort_cb_kvmvm_list_deleted ` Π² cloudapi/kvmvm ΠΈ cloudbroker/kvmvm | +| BATF-692 | ΠžΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΠΎΠ»Π΅ `preferred_cpu`Π² resources `decort_kvmvm, decort_cb_kvmvm` Π² cloudapi/kvmvm ΠΈ cloudbroker/kvmvm | +| BATF-692 | ВычисляСмоС ΠΏΠΎΠ»Π΅ `preferred_cpu`Π² data_sources `decort_kvmvm, decort_kvmvm_list, decort_kvmvm_list_deleted, decort_cb_kvmvm, decort_cb_kvmvm_list, decort_cb_kvmvm_list_deleted ` Π² cloudapi/kvmvm ΠΈ cloudbroker/kvmvm | #### node | Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€
Π·Π°Π΄Π°Ρ‡ΠΈ | ОписаниС | | --- | --- | -| BATF-663 | ВычисляСмый Π±Π»ΠΎΠΊ `net_addr` Π² data source `decort_cb_node` Π² cloudbroker/node | +| BATF-686 | ВычисляСмыС поля `dpdk, uefi_firmware_file`Π² data_source `decort_cb_node_list` Π² cloudbroker/node | +| BATF-687 | ВычисляСмыС поля `dpdk, network_mode, to_active, to_installing, to_maintenance, to_restricted` Π² data_source `decort_cb_node` Π² cloudbroker/node | -#### vins +#### sep | Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€
Π·Π°Π΄Π°Ρ‡ΠΈ | ОписаниС | | --- | --- | -| BATF-656 | ВычисляСмоС ΠΏΠΎΠ»Π΅ `vnc_password` Π² Π±Π»ΠΎΠΊΠ΅ `vnf_dev` Π² resources `decort_vins, decort_cb_vins` ΠΈ data sources `decort_vins, decort_cb_vins` Π² cloudapi/vins ΠΈ cloudbroker/vins | -| BATF-656 | ВычисляСмоС ΠΏΠΎΠ»Π΅ `account_id` Π² Π±Π»ΠΎΠΊΠ΅ `reservations` Π² resource `decort_vins` ΠΈ data source `decort_vins` Π² cloudapi/vins | - -### Π£Π΄Π°Π»Π΅Π½ΠΎ +| BATF-689 | ВычисляСмоС ΠΏΠΎΠ»Π΅ `multipath_num` Π² resource `decort_cb_sep` ΠΈ data_sources `decort_cb_sep, decort_cb_sep_list` Π² cloudbroker/kvmvm | -#### grid +#### vins | Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€
Π·Π°Π΄Π°Ρ‡ΠΈ | ОписаниС | | --- | --- | -| BATF-669 | Data source `decort_cb_grid_post_diagnosis` Π² cloudbroker/grid | -| BATF-669 | ВычисляСмоС ΠΏΠΎΠ»Π΅ `diagnosis` Π² data source `decort_cb_grid_get_diagnosis` Π² cloudbroker/grid | +| BATF-678 | ВычисляСмоС ΠΏΠΎΠ»Π΅ `account_id` Π² Π±Π»ΠΎΠΊΠ΅ `reservations` Π² resource `decort_cb_vins` ΠΈ data source `decort_cb_vins` Π² cloudbroker/vins | +### Π£Π΄Π°Π»Π΅Π½ΠΎ -#### vins +#### sep | Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€
Π·Π°Π΄Π°Ρ‡ΠΈ | ОписаниС | | --- | --- | -| BATF-656 | ВычисляСмыС поля `client_type, description, domain_name, hostname` Π² Π±Π»ΠΎΠΊΠ΅ `reservations` Π² resources `decort_vins, decort_cb_vins` ΠΈ data sources `decort_vins, decort_cb_vins` Π² cloudapi/vins ΠΈ cloudbroker/vins | -| BATF-656 | ΠžΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΠΎΠ»Π΅ `compute_ids` Π² resources `decort_vins_static_route, decort_cb_vins_static_route` Π² cloudapi/vins ΠΈ cloudbroker/vins | \ No newline at end of file +| BATF-688 | ВычисляСмыС поля `ckey,meta` Π² resource `decort_cb_sep` ΠΈ data_sources `decort_cb_sep, decort_cb_sep_list` Π² cloudbroker/kvmvm | \ No newline at end of file diff --git a/Makefile b/Makefile index 9b00e4c..fc32236 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.0 +VERSION=4.8.1 OS_ARCH=$(shell go env GOHOSTOS)_$(shell go env GOHOSTARCH) FILES = ${BINARY}_${VERSION}_darwin_amd64\ diff --git a/docs/data-sources/cb_kvmvm.md b/docs/data-sources/cb_kvmvm.md index a8aa17a..792ebae 100644 --- a/docs/data-sources/cb_kvmvm.md +++ b/docs/data-sources/cb_kvmvm.md @@ -78,6 +78,7 @@ description: |- - `pci_devices` (List of Number) - `pinned` (Boolean) - `pool` (String) +- `preferred_cpu` (List of Number) - `ram` (Number) - `reference_id` (String) - `registered` (Boolean) diff --git a/docs/data-sources/cb_kvmvm_list.md b/docs/data-sources/cb_kvmvm_list.md index b8f93c4..2aaec00 100644 --- a/docs/data-sources/cb_kvmvm_list.md +++ b/docs/data-sources/cb_kvmvm_list.md @@ -101,6 +101,7 @@ Read-Only: - `numa_node_id` (Number) - `os_users` (List of Object) (see [below for nested schema](#nestedobjatt--items--os_users)) - `pinned` (Boolean) +- `preferred_cpu` (List of Number) - `ram` (Number) - `reference_id` (String) - `registered` (Boolean) diff --git a/docs/data-sources/cb_kvmvm_list_deleted.md b/docs/data-sources/cb_kvmvm_list_deleted.md index bf32fa7..25d2df8 100644 --- a/docs/data-sources/cb_kvmvm_list_deleted.md +++ b/docs/data-sources/cb_kvmvm_list_deleted.md @@ -95,6 +95,7 @@ Read-Only: - `numa_node_id` (Number) - `os_users` (List of Object) (see [below for nested schema](#nestedobjatt--items--os_users)) - `pinned` (Boolean) +- `preferred_cpu` (List of Number) - `ram` (Number) - `reference_id` (String) - `registered` (Boolean) diff --git a/docs/data-sources/cb_node.md b/docs/data-sources/cb_node.md index c771e4c..bff91a3 100644 --- a/docs/data-sources/cb_node.md +++ b/docs/data-sources/cb_node.md @@ -28,6 +28,7 @@ description: |- - `consumption` (List of Object) (see [below for nested schema](#nestedatt--consumption)) - `cpu_allocation_ratio` (Number) - `cpu_info` (List of Object) (see [below for nested schema](#nestedatt--cpu_info)) +- `dpdk` (List of Object) (see [below for nested schema](#nestedatt--dpdk)) - `gid` (Number) - `id` (String) The ID of this resource. - `ipaddr` (List of String) @@ -35,6 +36,7 @@ description: |- - `name` (String) - `need_reboot` (Boolean) - `net_addr` (List of Object) (see [below for nested schema](#nestedatt--net_addr)) +- `network_mode` (String) - `nic_info` (List of Object) (see [below for nested schema](#nestedatt--nic_info)) - `numa_topology` (List of Object) (see [below for nested schema](#nestedatt--numa_topology)) - `reserved_cpus` (List of String) @@ -42,6 +44,10 @@ description: |- - `sriov_enabled` (Boolean) - `stack_id` (Number) - `status` (String) +- `to_active` (List of Object) (see [below for nested schema](#nestedatt--to_active)) +- `to_installing` (List of Object) (see [below for nested schema](#nestedatt--to_installing)) +- `to_maintenance` (List of Object) (see [below for nested schema](#nestedatt--to_maintenance)) +- `to_restricted` (List of Object) (see [below for nested schema](#nestedatt--to_restricted)) - `version` (String) @@ -110,6 +116,33 @@ Read-Only: - `phys_count` (Number) + +### Nested Schema for `dpdk` + +Read-Only: + +- `bridges` (List of Object) (see [below for nested schema](#nestedobjatt--dpdk--bridges)) +- `hp_memory` (Map of Number) +- `pmd_cpu` (List of Number) + + +### Nested Schema for `dpdk.bridges` + +Read-Only: + +- `backplane1` (List of Object) (see [below for nested schema](#nestedobjatt--dpdk--bridges--backplane1)) + + +### Nested Schema for `dpdk.bridges.backplane1` + +Read-Only: + +- `interfaces` (List of String) +- `numa_node` (Number) + + + + ### Nested Schema for `net_addr` @@ -166,3 +199,45 @@ Read-Only: - `one_g` (Number) - `total` (Number) - `two_m` (Number) + + + + + +### Nested Schema for `to_active` + +Read-Only: + +- `actor` (String) +- `reason` (String) +- `time` (Number) + + + +### Nested Schema for `to_installing` + +Read-Only: + +- `actor` (String) +- `reason` (String) +- `time` (Number) + + + +### Nested Schema for `to_maintenance` + +Read-Only: + +- `actor` (String) +- `reason` (String) +- `time` (Number) + + + +### Nested Schema for `to_restricted` + +Read-Only: + +- `actor` (String) +- `reason` (String) +- `time` (Number) diff --git a/docs/data-sources/cb_node_list.md b/docs/data-sources/cb_node_list.md index 2f8c20f..ccbf946 100644 --- a/docs/data-sources/cb_node_list.md +++ b/docs/data-sources/cb_node_list.md @@ -52,6 +52,7 @@ Read-Only: - `additional_pkgs` (List of String) - `cpu_info` (List of Object) (see [below for nested schema](#nestedobjatt--items--cpu_info)) - `description` (String) +- `dpdk` (List of Object) (see [below for nested schema](#nestedobjatt--items--dpdk)) - `gid` (Number) - `guid` (String) - `hostkey` (String) @@ -86,6 +87,7 @@ Read-Only: - `status` (String) - `tags` (List of String) - `type` (String) +- `uefi_firmware_file` (String) - `version` (String) @@ -98,6 +100,33 @@ Read-Only: - `phys_count` (Number) + +### Nested Schema for `items.dpdk` + +Read-Only: + +- `bridges` (List of Object) (see [below for nested schema](#nestedobjatt--items--dpdk--bridges)) +- `hp_memory` (Map of Number) +- `pmd_cpu` (List of Number) + + +### Nested Schema for `items.dpdk.bridges` + +Read-Only: + +- `backplane1` (List of Object) (see [below for nested schema](#nestedobjatt--items--dpdk--bridges--backplane1)) + + +### Nested Schema for `items.dpdk.bridges.backplane1` + +Read-Only: + +- `interfaces` (List of String) +- `numa_node` (Number) + + + + ### Nested Schema for `items.net_addr` diff --git a/docs/data-sources/cb_sep.md b/docs/data-sources/cb_sep.md index 475c6b4..d4fb73e 100644 --- a/docs/data-sources/cb_sep.md +++ b/docs/data-sources/cb_sep.md @@ -25,15 +25,14 @@ description: |- ### Read-Only -- `ckey` (String) ckey - `config` (String) config - `consumed_by` (Set of Number) consumed by - `desc` (String) description - `gid` (Number) gid - `guid` (Number) guid - `id` (String) The ID of this resource. -- `meta` (List of String) meta - `milestones` (Number) milestones +- `multipath_num` (Number) multipath_num - `name` (String) name - `obj_status` (String) object status - `provided_by` (List of Number) provided by diff --git a/docs/data-sources/cb_sep_list.md b/docs/data-sources/cb_sep_list.md index f37930a..b683f53 100644 --- a/docs/data-sources/cb_sep_list.md +++ b/docs/data-sources/cb_sep_list.md @@ -49,14 +49,13 @@ Optional: Read-Only: -- `ckey` (String) - `config` (String) - `consumed_by` (Set of Number) - `desc` (String) - `gid` (Number) - `guid` (Number) -- `meta` (List of String) - `milestones` (Number) +- `multipath_num` (Number) - `name` (String) - `obj_status` (String) - `provided_by` (List of Number) diff --git a/docs/data-sources/cb_vins.md b/docs/data-sources/cb_vins.md index ece344b..f2df62c 100644 --- a/docs/data-sources/cb_vins.md +++ b/docs/data-sources/cb_vins.md @@ -241,10 +241,7 @@ Read-Only: Read-Only: -- `client_type` (String) -- `description` (String) -- `domain_name` (String) -- `host_name` (String) +- `account_id` (Number) - `ip` (String) - `mac` (String) - `type` (String) diff --git a/docs/data-sources/kvmvm.md b/docs/data-sources/kvmvm.md index 74d2cd3..b24f858 100644 --- a/docs/data-sources/kvmvm.md +++ b/docs/data-sources/kvmvm.md @@ -75,6 +75,7 @@ description: |- - `os_users` (List of Object) (see [below for nested schema](#nestedatt--os_users)) - `pci_devices` (List of Number) - `pinned` (Boolean) +- `preferred_cpu` (List of Number) - `ram` (Number) - `reference_id` (String) - `registered` (Boolean) diff --git a/docs/data-sources/kvmvm_list.md b/docs/data-sources/kvmvm_list.md index 4aa844a..b36d655 100644 --- a/docs/data-sources/kvmvm_list.md +++ b/docs/data-sources/kvmvm_list.md @@ -97,6 +97,7 @@ Read-Only: - `numa_affinity` (String) - `numa_node_id` (Number) - `pinned` (Boolean) +- `preferred_cpu` (List of Number) - `ram` (Number) - `reference_id` (String) - `registered` (Boolean) diff --git a/docs/data-sources/kvmvm_list_deleted.md b/docs/data-sources/kvmvm_list_deleted.md index 5e754f3..ee75b76 100644 --- a/docs/data-sources/kvmvm_list_deleted.md +++ b/docs/data-sources/kvmvm_list_deleted.md @@ -95,6 +95,7 @@ Read-Only: - `numa_affinity` (String) - `numa_node_id` (Number) - `pinned` (Boolean) +- `preferred_cpu` (List of Number) - `ram` (Number) - `reference_id` (String) - `registered` (Boolean) diff --git a/docs/resources/cb_kvmvm.md b/docs/resources/cb_kvmvm.md index 67a1270..b70f783 100644 --- a/docs/resources/cb_kvmvm.md +++ b/docs/resources/cb_kvmvm.md @@ -60,6 +60,7 @@ description: |- - `pin_to_stack` (Boolean) - `pool` (String) Pool to use if sepId is set, can be also empty if needed to be chosen by system. - `port_forwarding` (Block Set) (see [below for nested schema](#nestedblock--port_forwarding)) +- `preferred_cpu` (List of Number) Recommended isolated CPUs. Field is ignored if compute.cpupin=False or compute.pinned=False - `reset` (Boolean) - `restore` (Boolean) - `rollback` (Block Set, Max: 1) (see [below for nested schema](#nestedblock--rollback)) diff --git a/docs/resources/cb_sep.md b/docs/resources/cb_sep.md index 7930c38..cd5f86c 100644 --- a/docs/resources/cb_sep.md +++ b/docs/resources/cb_sep.md @@ -37,11 +37,10 @@ description: |- ### Read-Only -- `ckey` (String) ckey - `guid` (Number) guid - `id` (String) The ID of this resource. -- `meta` (List of String) meta - `milestones` (Number) milestones +- `multipath_num` (Number) multipath_num - `obj_status` (String) object status - `tech_status` (String) tech status diff --git a/docs/resources/cb_vins.md b/docs/resources/cb_vins.md index a4c37ee..f93bfbb 100644 --- a/docs/resources/cb_vins.md +++ b/docs/resources/cb_vins.md @@ -307,10 +307,7 @@ Read-Only: Read-Only: -- `client_type` (String) -- `description` (String) -- `domain_name` (String) -- `host_name` (String) +- `account_id` (Number) - `ip` (String) - `mac` (String) - `type` (String) diff --git a/docs/resources/kvmvm.md b/docs/resources/kvmvm.md index 21e045f..de28bcb 100644 --- a/docs/resources/kvmvm.md +++ b/docs/resources/kvmvm.md @@ -56,6 +56,7 @@ description: |- - `pin_to_stack` (Boolean) - `pool` (String) Pool to use if sepId is set, can be also empty if needed to be chosen by system. - `port_forwarding` (Block Set) (see [below for nested schema](#nestedblock--port_forwarding)) +- `preferred_cpu` (List of Number) Recommended isolated CPUs. Field is ignored if compute.cpupin=False or compute.pinned=False - `reset` (Boolean) - `restore` (Boolean) - `rollback` (Block Set, Max: 1) (see [below for nested schema](#nestedblock--rollback)) diff --git a/go.mod b/go.mod index 757b8ab..90ceb1b 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.0 + repository.basistech.ru/BASIS/decort-golang-sdk v1.10.1 ) require ( diff --git a/go.sum b/go.sum index c7822ef..2d14865 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.9.2 h1:MPH1tMQrDN1Gri4FrQP3cx60uR3uZioEDb707D88/7c= -repository.basistech.ru/BASIS/decort-golang-sdk v1.9.2/go.mod h1:OaUynHHuSjWMzpfyoL4au6oLcUogqUkPPBKA15pbHWo= +repository.basistech.ru/BASIS/decort-golang-sdk v1.10.1 h1:Z6drv1seHY6nkyEdjGp2LoNKbne1ihrNRs32q93UhcM= +repository.basistech.ru/BASIS/decort-golang-sdk v1.10.1/go.mod h1:OaUynHHuSjWMzpfyoL4au6oLcUogqUkPPBKA15pbHWo= diff --git a/internal/service/cloudapi/kvmvm/data_source_compute.go b/internal/service/cloudapi/kvmvm/data_source_compute.go index 9ddf474..453a143 100644 --- a/internal/service/cloudapi/kvmvm/data_source_compute.go +++ b/internal/service/cloudapi/kvmvm/data_source_compute.go @@ -885,6 +885,13 @@ func dataSourceComputeSchemaMake() map[string]*schema.Schema { Type: schema.TypeBool, Computed: true, }, + "preferred_cpu": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Schema{ + Type: schema.TypeInt, + }, + }, "ram": { Type: schema.TypeInt, 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 5d10670..6677ddf 100644 --- a/internal/service/cloudapi/kvmvm/data_source_compute_list.go +++ b/internal/service/cloudapi/kvmvm/data_source_compute_list.go @@ -273,6 +273,13 @@ func itemComputeSchemaMake() map[string]*schema.Schema { Type: schema.TypeBool, Computed: true, }, + "preferred_cpu": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Schema{ + Type: schema.TypeInt, + }, + }, "ram": { Type: schema.TypeInt, Computed: true, diff --git a/internal/service/cloudapi/kvmvm/flattens.go b/internal/service/cloudapi/kvmvm/flattens.go index 618d17a..281313f 100644 --- a/internal/service/cloudapi/kvmvm/flattens.go +++ b/internal/service/cloudapi/kvmvm/flattens.go @@ -218,6 +218,7 @@ func flattenComputeList(computes *compute.ListComputes) []map[string]interface{} "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, @@ -415,6 +416,7 @@ func flattenCompute(d *schema.ResourceData, computeRec compute.RecordCompute, pc return err } d.Set("pinned", computeRec.Pinned) + d.Set("preferred_cpu", computeRec.PreferredCPU) d.Set("ram", computeRec.RAM) d.Set("reference_id", computeRec.ReferenceID) d.Set("registered", computeRec.Registered) @@ -659,6 +661,7 @@ func flattenDataCompute(d *schema.ResourceData, computeRec compute.RecordCompute d.Set("natable_vins_network_name", computeRec.NatableVINSNetworkName) d.Set("os_users", flattenOsUsers(computeRec.OSUsers)) d.Set("pinned", computeRec.Pinned) + d.Set("preferred_CPU", computeRec.PreferredCPU) d.Set("ram", computeRec.RAM) d.Set("reference_id", computeRec.ReferenceID) d.Set("registered", computeRec.Registered) diff --git a/internal/service/cloudapi/kvmvm/resource_compute.go b/internal/service/cloudapi/kvmvm/resource_compute.go index e326ebf..150b2cf 100644 --- a/internal/service/cloudapi/kvmvm/resource_compute.go +++ b/internal/service/cloudapi/kvmvm/resource_compute.go @@ -248,6 +248,16 @@ func resourceComputeCreate(ctx context.Context, d *schema.ResourceData, m interf createReqX86.HPBacked = d.Get("hp_backed").(bool) createReqX86.Chipset = d.Get("chipset").(string) + if preferredCPU, ok := d.GetOk("preferred_cpu"); ok { + preferredList := preferredCPU.([]interface{}) + if len(preferredList) > 0 { + for _, v := range preferredList { + cpuNum := v.(int) + createReqX86.PreferredCPU = append(createReqX86.PreferredCPU, int64(cpuNum)) + } + } + } + log.Debugf("resourceComputeCreate: creating Compute of type KVM VM x86") apiResp, err := c.CloudAPI().KVMX86().Create(ctx, createReqX86) if err != nil { @@ -307,6 +317,17 @@ func resourceComputeCreate(ctx context.Context, d *schema.ResourceData, m interf } } + if d.Get("pin_to_stack").(bool) { + req := compute.PinToStackRequest{ + ComputeID: computeId, + } + req.AutoStart = d.Get("auto_start_w_node").(bool) + _, err := c.CloudAPI().Compute().PinToStack(ctx, req) + if err != nil { + warnings.Add(err) + } + } + // Note bene: we created compute in a STOPPED state (this is required to properly attach 1st network interface), // now we need to start it before we report the sequence complete if start, ok := d.GetOk("started"); ok { @@ -487,17 +508,6 @@ func resourceComputeCreate(ctx context.Context, d *schema.ResourceData, m interf } } - if d.Get("pin_to_stack").(bool) { - req := compute.PinToStackRequest{ - ComputeID: computeId, - } - req.AutoStart = d.Get("auto_start_w_node").(bool) - _, err := c.CloudAPI().Compute().PinToStack(ctx, req) - if err != nil { - warnings.Add(err) - } - } - if !d.Get("pin_to_stack").(bool) && d.Get("auto_start_w_node").(bool) { req := compute.UpdateRequest{ ComputeID: computeId, @@ -816,6 +826,22 @@ func resourceComputeUpdate(ctx context.Context, d *schema.ResourceData, m interf resizeReq.CPU = 0 } + if resizeReq.CPU != 0 { + if preferredCPU, ok := d.GetOk("preferred_cpu"); ok { + preferredList := preferredCPU.([]interface{}) + if len(preferredList) > 0 { + for _, v := range preferredList { + cpuNum := v.(int) + resizeReq.PreferredCPU = append(resizeReq.PreferredCPU, int64(cpuNum)) + } + } + } + oldPCPU, newPCPU := d.GetChange("preferred_cpu") + if len(oldPCPU.([]interface{})) != 0 && len(newPCPU.([]interface{})) == 0 { + resizeReq.PreferredCPU = []int64{-1} + } + } + oldRam, newRam := d.GetChange("ram") if oldRam.(int) != newRam.(int) { resizeReq.RAM = uint64(newRam.(int)) @@ -869,14 +895,31 @@ func resourceComputeUpdate(ctx context.Context, d *schema.ResourceData, m interf } } - if d.HasChange("network") { - err = utilityComputeNetworksConfigure(ctx, d, m) - if err != nil { - return diag.FromErr(err) + if d.HasChange("pin_to_stack") { + oldPin, newPin := d.GetChange("pin_to_stack") + if !newPin.(bool) { + req := compute.UnpinFromStackRequest{ + ComputeID: computeRec.ID, + } + + _, err := c.CloudAPI().Compute().UnpinFromStack(ctx, req) + if err != nil { + return diag.FromErr(err) + } + } + if !oldPin.(bool) { + req := compute.PinToStackRequest{ + ComputeID: computeRec.ID, + } + req.AutoStart = d.Get("auto_start_w_node").(bool) + _, err := c.CloudAPI().Compute().PinToStack(ctx, req) + if err != nil { + return diag.FromErr(err) + } } } - if d.HasChanges("description", "name", "numa_affinity", "cpu_pin", "hp_backed", "chipset", "auto_start_w_node") { + if d.HasChanges("description", "name", "numa_affinity", "cpu_pin", "hp_backed", "chipset", "auto_start_w_node", "preferred_cpu") { req := compute.UpdateRequest{ ComputeID: computeRec.ID, } @@ -893,6 +936,21 @@ func resourceComputeUpdate(ctx context.Context, d *schema.ResourceData, m interf if d.HasChange("chipset") { req.Chipset = d.Get("chipset").(string) } + if d.HasChange("preferred_cpu") { + if preferredCPU, ok := d.GetOk("preferred_cpu"); ok { + preferredList := preferredCPU.([]interface{}) + if len(preferredList) > 0 { + for _, v := range preferredList { + cpuNum := v.(int) + req.PreferredCPU = append(req.PreferredCPU, int64(cpuNum)) + } + } + } + oldPCPU, newPCPU := d.GetChange("preferred_cpu") + if len(oldPCPU.([]interface{})) != 0 && len(newPCPU.([]interface{})) == 0 { + req.PreferredCPU = []int64{-1} + } + } req.CPUPin = d.Get("cpu_pin").(bool) req.HPBacked = d.Get("hp_backed").(bool) req.AutoStart = d.Get("auto_start_w_node").(bool) @@ -900,7 +958,7 @@ func resourceComputeUpdate(ctx context.Context, d *schema.ResourceData, m interf // 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 - if d.HasChanges("numa_affinity", "cpu_pin", "hp_backed", "chipset") && d.Get("started").(bool) { + if d.HasChanges("numa_affinity", "cpu_pin", "hp_backed", "chipset", "preferred_cpu") && d.Get("started").(bool) { isStopRequired = true } if isStopRequired { @@ -922,6 +980,13 @@ func resourceComputeUpdate(ctx context.Context, d *schema.ResourceData, m interf } } + if d.HasChange("network") { + err = utilityComputeNetworksConfigure(ctx, d, m) + if err != nil { + return diag.FromErr(err) + } + } + if d.HasChange("disks") { deletedDisks := make([]interface{}, 0) addedDisks := make([]interface{}, 0) @@ -1475,30 +1540,6 @@ func resourceComputeUpdate(ctx context.Context, d *schema.ResourceData, m interf } } - if d.HasChange("pin_to_stack") { - oldPin, newPin := d.GetChange("pin_to_stack") - if !newPin.(bool) { - req := compute.UnpinFromStackRequest{ - ComputeID: computeRec.ID, - } - - _, err := c.CloudAPI().Compute().UnpinFromStack(ctx, req) - if err != nil { - return diag.FromErr(err) - } - } - if !oldPin.(bool) { - req := compute.PinToStackRequest{ - ComputeID: computeRec.ID, - } - req.AutoStart = d.Get("auto_start_w_node").(bool) - _, err := c.CloudAPI().Compute().PinToStack(ctx, req) - if err != nil { - return diag.FromErr(err) - } - } - } - if d.HasChange("pause") { oldPause, newPause := d.GetChange("pause") if !newPause.(bool) { @@ -2209,6 +2250,15 @@ func ResourceComputeSchemaMake() map[string]*schema.Schema { 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, @@ -2465,7 +2515,7 @@ func ResourceCompute() *schema.Resource { CustomizeDiff: func(ctx context.Context, diff *schema.ResourceDiff, i interface{}) error { if diff.HasChanges() || diff.HasChanges("chipset", "pin_to_stack", "auto_start_w_node", "network", "affinity_rules", "anti_affinity_rules", - "disks", "extra_disks", "tags", "port_forwarding", "user_access", "snapshot", "pci_devices") { + "disks", "extra_disks", "tags", "port_forwarding", "user_access", "snapshot", "pci_devices", "preferred_cpu") { diff.SetNewComputed("updated_time") diff.SetNewComputed("updated_by") } diff --git a/internal/service/cloudbroker/kvmvm/flattens.go b/internal/service/cloudbroker/kvmvm/flattens.go index f1bbc27..36b0f41 100644 --- a/internal/service/cloudbroker/kvmvm/flattens.go +++ b/internal/service/cloudbroker/kvmvm/flattens.go @@ -76,6 +76,7 @@ func flattenCompute(d *schema.ResourceData, computeRec *compute.RecordCompute, p d.Set("numa_node_id", computeRec.NumaNodeId) d.Set("os_users", flattenOSUsers(computeRec.OSUsers)) d.Set("pinned", computeRec.Pinned) + d.Set("preferred_cpu", computeRec.PreferredCPU) d.Set("reference_id", computeRec.ReferenceID) d.Set("registered", computeRec.Registered) d.Set("res_name", computeRec.ResName) @@ -332,6 +333,7 @@ func flattenComputeList(computes *compute.ListComputes) []map[string]interface{} "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, @@ -656,6 +658,7 @@ func flattenDataCompute(d *schema.ResourceData, compFacts *compute.RecordCompute d.Set("numa_node_id", compFacts.NumaNodeId) d.Set("os_users", flattenOSUsers(compFacts.OSUsers)) d.Set("pinned", compFacts.Pinned) + d.Set("preferred_cpu", compFacts.PreferredCPU) d.Set("ram", compFacts.RAM) d.Set("reference_id", compFacts.ReferenceID) d.Set("registered", compFacts.Registered) diff --git a/internal/service/cloudbroker/kvmvm/resource_compute.go b/internal/service/cloudbroker/kvmvm/resource_compute.go index 1eea0a3..1f0c40d 100644 --- a/internal/service/cloudbroker/kvmvm/resource_compute.go +++ b/internal/service/cloudbroker/kvmvm/resource_compute.go @@ -197,6 +197,16 @@ func resourceComputeCreate(ctx context.Context, d *schema.ResourceData, m interf createReqX86.HPBacked = d.Get("hp_backed").(bool) createReqX86.Chipset = d.Get("chipset").(string) + if preferredCPU, ok := d.GetOk("preferred_cpu"); ok { + preferredList := preferredCPU.([]interface{}) + if len(preferredList) > 0 { + for _, v := range preferredList { + cpuNum := v.(int) + createReqX86.PreferredCPU = append(createReqX86.PreferredCPU, int64(cpuNum)) + } + } + } + log.Debugf("resourceComputeCreate: creating Compute of type KVM VM x86") apiResp, err := c.CloudBroker().KVMX86().Create(ctx, createReqX86) if err != nil { @@ -260,6 +270,26 @@ func resourceComputeCreate(ctx context.Context, d *schema.ResourceData, m interf } } + if pin, ok := d.GetOk("pin_to_stack"); ok && pin.(bool) { + req := compute.PinToStackRequest{ + ComputeID: computeId, + TargetStackID: uint64(d.Get("target_stack_id").(int)), + } + + if force, ok := d.Get("force_pin").(bool); ok { + req.Force = force + } + + if autoStart, ok := d.Get("auto_start_w_node").(bool); ok { + req.AutoStart = autoStart + } + + _, err := c.CloudBroker().Compute().PinToStack(ctx, req) + if err != nil { + warnings.Add(err) + } + } + if libvirtSettings, ok := d.GetOk("libvirt_settings"); ok { if libvirtSettings.(*schema.Set).Len() > 0 { lvs := libvirtSettings.(*schema.Set).List() @@ -474,26 +504,6 @@ func resourceComputeCreate(ctx context.Context, d *schema.ResourceData, m interf } } - if pin, ok := d.GetOk("pin_to_stack"); ok && pin.(bool) { - req := compute.PinToStackRequest{ - ComputeID: computeId, - TargetStackID: uint64(d.Get("target_stack_id").(int)), - } - - if force, ok := d.Get("force_pin").(bool); ok { - req.Force = force - } - - if autoStart, ok := d.Get("auto_start_w_node").(bool); ok { - req.AutoStart = autoStart - } - - _, err := c.CloudBroker().Compute().PinToStack(ctx, req) - if err != nil { - warnings.Add(err) - } - } - if !d.Get("pin_to_stack").(bool) && d.Get("auto_start_w_node").(bool) { req := compute.UpdateRequest{ ComputeID: computeId, @@ -696,19 +706,25 @@ func resourceComputeUpdate(ctx context.Context, d *schema.ResourceData, m interf } } - if d.HasChanges("network", "libvirt_settings") { - err = utilityComputeNetworksConfigure(ctx, d, m) // pass do_delta = true to apply changes, if any - if err != nil { + if d.HasChange("pin_to_stack") { + if err := utilityComputePinToStack(ctx, d, m); err != nil { return diag.FromErr(err) } } - if d.HasChanges("description", "name", "numa_affinity", "cpu_pin", "hp_backed", "chipset", "auto_start_w_node") { + if d.HasChanges("description", "name", "numa_affinity", "cpu_pin", "hp_backed", "chipset", "auto_start_w_node", "preferred_cpu") { if err := utilityComputeUpdate(ctx, d, m); err != nil { return diag.FromErr(err) } } + if d.HasChanges("network", "libvirt_settings") { + err = utilityComputeNetworksConfigure(ctx, d, m) // pass do_delta = true to apply changes, if any + if err != nil { + return diag.FromErr(err) + } + } + if d.HasChange("disks") { if err := utilityComputeUpdateDisks(ctx, d, m); err != nil { return diag.FromErr(err) @@ -769,12 +785,6 @@ func resourceComputeUpdate(ctx context.Context, d *schema.ResourceData, m interf } } - if d.HasChange("pin_to_stack") { - if err := utilityComputePinToStack(ctx, d, m); err != nil { - return diag.FromErr(err) - } - } - if d.HasChange("pause") { if err := utilityComputePause(ctx, d, m); err != nil { return diag.FromErr(err) @@ -857,7 +867,7 @@ func ResourceCompute() *schema.Resource { 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", - "disks", "extra_disks", "tags", "port_forwarding", "user_access", "snapshot", "pci_devices") { + "disks", "extra_disks", "tags", "port_forwarding", "user_access", "snapshot", "pci_devices", "preferred_cpu") { diff.SetNewComputed("updated_time") diff.SetNewComputed("updated_by") } diff --git a/internal/service/cloudbroker/kvmvm/schema.go b/internal/service/cloudbroker/kvmvm/schema.go index c1a1ef5..1f625ab 100644 --- a/internal/service/cloudbroker/kvmvm/schema.go +++ b/internal/service/cloudbroker/kvmvm/schema.go @@ -792,6 +792,13 @@ func dataSourceComputeSchemaMake() map[string]*schema.Schema { Type: schema.TypeBool, Computed: true, }, + "preferred_cpu": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Schema{ + Type: schema.TypeInt, + }, + }, "ram": { Type: schema.TypeInt, Computed: true, @@ -1491,6 +1498,13 @@ func dataSourceComputeListSchemaMake() map[string]*schema.Schema { Type: schema.TypeBool, Computed: true, }, + "preferred_cpu": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Schema{ + Type: schema.TypeInt, + }, + }, "ram": { Type: schema.TypeInt, Computed: true, @@ -2104,6 +2118,13 @@ func dataSourceComputeListDeletedSchemaMake() map[string]*schema.Schema { Type: schema.TypeInt, Computed: true, }, + "preferred_cpu": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Schema{ + Type: schema.TypeInt, + }, + }, "reference_id": { Type: schema.TypeString, Computed: true, @@ -3485,6 +3506,15 @@ func resourceComputeSchemaMake() map[string]*schema.Schema { 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, diff --git a/internal/service/cloudbroker/kvmvm/utility_compute.go b/internal/service/cloudbroker/kvmvm/utility_compute.go index 2360dcf..9741fc8 100644 --- a/internal/service/cloudbroker/kvmvm/utility_compute.go +++ b/internal/service/cloudbroker/kvmvm/utility_compute.go @@ -135,6 +135,22 @@ func utilityComputeResize(ctx context.Context, d *schema.ResourceData, m interfa resizeReq.CPU = 0 } + if resizeReq.CPU != 0 { + if preferredCPU, ok := d.GetOk("preferred_cpu"); ok { + preferredList := preferredCPU.([]interface{}) + if len(preferredList) > 0 { + for _, v := range preferredList { + cpuNum := v.(int) + resizeReq.PreferredCPU = append(resizeReq.PreferredCPU, int64(cpuNum)) + } + } + } + oldPCPU, newPCPU := d.GetChange("preferred_cpu") + if len(oldPCPU.([]interface{})) != 0 && len(newPCPU.([]interface{})) == 0 { + resizeReq.PreferredCPU = []int64{-1} + } + } + oldRam, newRam := d.GetChange("ram") if oldRam.(int) != newRam.(int) { resizeReq.RAM = uint64(newRam.(int)) @@ -859,10 +875,26 @@ func utilityComputeUpdate(ctx context.Context, d *schema.ResourceData, m interfa req.HPBacked = d.Get("hp_backed").(bool) req.AutoStart = d.Get("auto_start_w_node").(bool) + if d.HasChange("preferred_cpu") { + if preferredCPU, ok := d.GetOk("preferred_cpu"); ok { + preferredList := preferredCPU.([]interface{}) + if len(preferredList) > 0 { + for _, v := range preferredList { + cpuNum := v.(int) + req.PreferredCPU = append(req.PreferredCPU, int64(cpuNum)) + } + } + } + oldPCPU, newPCPU := d.GetChange("preferred_cpu") + if len(oldPCPU.([]interface{})) != 0 && len(newPCPU.([]interface{})) == 0 { + req.PreferredCPU = []int64{-1} + } + } + // 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 - if d.HasChanges("numa_affinity", "cpu_pin", "hp_backed", "chipset") && d.Get("started").(bool) { + if d.HasChanges("numa_affinity", "cpu_pin", "hp_backed", "chipset", "preferred_cpu") && d.Get("started").(bool) { isStopRequired = true } if isStopRequired { diff --git a/internal/service/cloudbroker/node/flattens.go b/internal/service/cloudbroker/node/flattens.go index 9fa21fb..6a5e3fc 100644 --- a/internal/service/cloudbroker/node/flattens.go +++ b/internal/service/cloudbroker/node/flattens.go @@ -46,12 +46,14 @@ func flattenNode(d *schema.ResourceData, item *node.RecordNode) { d.Set("consumption", flattenConsumption(item.Consumption)) d.Set("cpu_info", flattenCpuInfo(item.CpuInfo)) d.Set("cpu_allocation_ratio", item.CPUAllocationRatio) + d.Set("dpdk", flattenDPDKItem(item.DPDK)) d.Set("gid", item.GID) d.Set("ipaddr", item.IPAddr) d.Set("isolated_cpus", flattenNodeItem(item.IsolatedCpus)) d.Set("name", item.Name) d.Set("need_reboot", item.NeedReboot) d.Set("net_addr", flattenGetNetAddr(item.NetAddr)) + d.Set("network_mode", item.NetworkMode) d.Set("nic_info", flattenNicInfo(item.NicInfo)) d.Set("numa_topology", flattenNumaTopology(item.NumaTopology)) d.Set("reserved_cpus", flattenNodeItem(item.ReservedCPUs)) @@ -59,6 +61,10 @@ func flattenNode(d *schema.ResourceData, item *node.RecordNode) { d.Set("sriov_enabled", item.SriovEnabled) d.Set("stack_id", item.StackID) d.Set("status", item.Status) + d.Set("to_active", flattenRole(item.ToActive)) + d.Set("to_installing", flattenRole(item.ToInstalling)) + d.Set("to_maintenance", flattenRole(item.ToMaintenance)) + d.Set("to_restricted", flattenRole(item.ToRestricted)) d.Set("version", item.Version) } @@ -107,44 +113,46 @@ func flattenNodeList(nodes *node.ListNodes) []map[string]interface{} { res := make([]map[string]interface{}, 0, len(nodes.Data)) for _, item := range nodes.Data { temp := map[string]interface{}{ - "additional_pkgs": flattenNodeItem(item.AdditionalPkgs), - "cpu_info": flattenCpuInfo(item.CpuInfo), - "description": item.Description, - "gid": item.GID, - "guid": item.GUID, - "hostkey": item.HostKey, - "node_id": item.ID, - "ipaddr": item.IPAddr, - "isolated_cpus": flattenNodeItem(item.IsolatedCpus), - "lastcheck": item.LastCheck, - "machine_guid": item.MachineGUID, - "mainboard_sn": item.MainboardSN, - "memory": item.Memory, - "milestones": item.Milestones, - "model": item.Model, - "name": item.Name, - "need_reboot": item.NeedReboot, - "net_addr": flattenNetAddr(item.NetAddr), - "network_mode": item.NetworkMode, - "nic_info": flattenNicInfo(item.NicInfo), - "node_uuid": item.NodeUUID, - "numa_topology": flattenNumaTopology(item.NumaTopology), - "peer_backup": item.PeerBackup, - "peer_log": item.PeerLog, - "peer_stats": item.PeerStats, - "pgpus": item.Pgpus, - "public_keys": item.PublicKeys, - "release": item.Release, - "reserved_cpus": flattenNodeItem(item.ReservedCPUs), - "roles": item.Roles, - "seps": item.Seps, - "serial_num": item.SerialNum, - "sriov_enabled": item.SriovEnabled, - "stack_id": item.StackID, - "status": item.Status, - "tags": item.Tags, - "type": item.Type, - "version": item.Version, + "additional_pkgs": flattenNodeItem(item.AdditionalPkgs), + "cpu_info": flattenCpuInfo(item.CpuInfo), + "description": item.Description, + "dpdk": flattenDPDKItem(item.DPDK), + "gid": item.GID, + "guid": item.GUID, + "hostkey": item.HostKey, + "node_id": item.ID, + "ipaddr": item.IPAddr, + "isolated_cpus": flattenNodeItem(item.IsolatedCpus), + "lastcheck": item.LastCheck, + "machine_guid": item.MachineGUID, + "mainboard_sn": item.MainboardSN, + "memory": item.Memory, + "milestones": item.Milestones, + "model": item.Model, + "name": item.Name, + "need_reboot": item.NeedReboot, + "net_addr": flattenNetAddr(item.NetAddr), + "network_mode": item.NetworkMode, + "nic_info": flattenNicInfo(item.NicInfo), + "node_uuid": item.NodeUUID, + "numa_topology": flattenNumaTopology(item.NumaTopology), + "peer_backup": item.PeerBackup, + "peer_log": item.PeerLog, + "peer_stats": item.PeerStats, + "pgpus": item.Pgpus, + "public_keys": item.PublicKeys, + "release": item.Release, + "reserved_cpus": flattenNodeItem(item.ReservedCPUs), + "roles": item.Roles, + "seps": item.Seps, + "serial_num": item.SerialNum, + "sriov_enabled": item.SriovEnabled, + "stack_id": item.StackID, + "status": item.Status, + "tags": item.Tags, + "type": item.Type, + "uefi_firmware_file": item.UEFIFirmwareFile, + "version": item.Version, } res = append(res, temp) } @@ -261,3 +269,36 @@ func flattenNodeItem(m []interface{}) []string { } return output } + +func flattenDPDKItem(dpdk node.DPDK) []map[string]interface{} { + res := make([]map[string]interface{}, 1) + bridges := make([]map[string]interface{}, 1) + backplane := make([]map[string]interface{}, 1) + backplane[0] = map[string]interface{}{ + "interfaces": dpdk.Bridges.Backplane1.Interfaces, + "numa_node": dpdk.Bridges.Backplane1.NumaNode, + } + + bridges[0] = map[string]interface{}{ + "backplane1": backplane, + } + + res[0] = map[string]interface{}{ + "bridges": bridges, + "hp_memory": dpdk.HPMemory, + "pmd_cpu": dpdk.PMDCPU, + } + + return res +} + +func flattenRole(role node.Role) []map[string]interface{} { + res := make([]map[string]interface{}, 1) + temp := map[string]interface{}{ + "actor": role.Actor, + "reason": role.Reason, + "time": role.Time, + } + res[0] = temp + return res +} diff --git a/internal/service/cloudbroker/node/schema.go b/internal/service/cloudbroker/node/schema.go index 4579470..ed48196 100644 --- a/internal/service/cloudbroker/node/schema.go +++ b/internal/service/cloudbroker/node/schema.go @@ -105,6 +105,55 @@ func dataSourceNodeSchemaMake() map[string]*schema.Schema { Type: schema.TypeInt, Computed: true, }, + "dpdk": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "bridges": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "backplane1": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "interfaces": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Schema{ + Type: schema.TypeString, + }, + }, + "numa_node": { + Type: schema.TypeInt, + Computed: true, + }, + }, + }, + }, + }, + }, + }, + "hp_memory": { + Type: schema.TypeMap, + Computed: true, + Elem: &schema.Schema{ + Type: schema.TypeInt, + }, + }, + "pmd_cpu": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Schema{ + Type: schema.TypeInt, + }, + }, + }, + }, + }, "gid": { Type: schema.TypeInt, Computed: true, @@ -150,6 +199,10 @@ func dataSourceNodeSchemaMake() map[string]*schema.Schema { }, }, }, + "network_mode": { + Type: schema.TypeString, + Computed: true, + }, "nic_info": { Type: schema.TypeList, Computed: true, @@ -272,6 +325,86 @@ func dataSourceNodeSchemaMake() map[string]*schema.Schema { Type: schema.TypeString, Computed: true, }, + "to_active": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "actor": { + Type: schema.TypeString, + Computed: true, + }, + "reason": { + Type: schema.TypeString, + Computed: true, + }, + "time": { + Type: schema.TypeInt, + Computed: true, + }, + }, + }, + }, + "to_installing": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "actor": { + Type: schema.TypeString, + Computed: true, + }, + "reason": { + Type: schema.TypeString, + Computed: true, + }, + "time": { + Type: schema.TypeInt, + Computed: true, + }, + }, + }, + }, + "to_maintenance": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "actor": { + Type: schema.TypeString, + Computed: true, + }, + "reason": { + Type: schema.TypeString, + Computed: true, + }, + "time": { + Type: schema.TypeInt, + Computed: true, + }, + }, + }, + }, + "to_restricted": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "actor": { + Type: schema.TypeString, + Computed: true, + }, + "reason": { + Type: schema.TypeString, + Computed: true, + }, + "time": { + Type: schema.TypeInt, + Computed: true, + }, + }, + }, + }, "version": { Type: schema.TypeString, Computed: true, @@ -368,6 +501,55 @@ func dataSourceNodeListSchemaMake() map[string]*schema.Schema { Type: schema.TypeString, Computed: true, }, + "dpdk": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "bridges": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "backplane1": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "interfaces": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Schema{ + Type: schema.TypeString, + }, + }, + "numa_node": { + Type: schema.TypeInt, + Computed: true, + }, + }, + }, + }, + }, + }, + }, + "hp_memory": { + Type: schema.TypeMap, + Computed: true, + Elem: &schema.Schema{ + Type: schema.TypeInt, + }, + }, + "pmd_cpu": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Schema{ + Type: schema.TypeInt, + }, + }, + }, + }, + }, "gid": { Type: schema.TypeInt, Computed: true, @@ -650,6 +832,10 @@ func dataSourceNodeListSchemaMake() map[string]*schema.Schema { Type: schema.TypeString, Computed: true, }, + "uefi_firmware_file": { + Type: schema.TypeString, + Computed: true, + }, "version": { Type: schema.TypeString, Computed: true, diff --git a/internal/service/cloudbroker/sep/flattens.go b/internal/service/cloudbroker/sep/flattens.go index f0d0df2..dc8231c 100644 --- a/internal/service/cloudbroker/sep/flattens.go +++ b/internal/service/cloudbroker/sep/flattens.go @@ -37,18 +37,16 @@ import ( "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" "repository.basistech.ru/BASIS/decort-golang-sdk/pkg/cloudbroker/sep" - "repository.basistech.ru/BASIS/terraform-provider-decort/internal/flattens" ) func flattenSep(d *schema.ResourceData, desSep *sep.RecordSEP) { - d.Set("ckey", desSep.CKey) - d.Set("meta", flattens.FlattenMeta(desSep.Meta)) d.Set("consumed_by", desSep.ConsumedBy) d.Set("desc", desSep.Description) d.Set("gid", desSep.GID) d.Set("guid", desSep.GUID) d.Set("sep_id", desSep.ID) d.Set("milestones", desSep.Milestones) + d.Set("multipath_num", desSep.MultipathNum) d.Set("name", desSep.Name) d.Set("obj_status", desSep.ObjStatus) d.Set("provided_by", desSep.ProvidedBy) @@ -64,21 +62,20 @@ func flattenSepListItems(sl *sep.ListSEP) []map[string]interface{} { for _, item := range sl.Data { data, _ := json.Marshal(item.Config) temp := map[string]interface{}{ - "ckey": item.CKey, - "meta": flattens.FlattenMeta(item.Meta), - "consumed_by": item.ConsumedBy, - "desc": item.Description, - "gid": item.GID, - "guid": item.GUID, - "sep_id": item.ID, - "milestones": item.Milestones, - "name": item.Name, - "obj_status": item.ObjStatus, - "provided_by": item.ProvidedBy, - "shared_with": item.SharedWith, - "tech_status": item.TechStatus, - "type": item.Type, - "config": string(data), + "consumed_by": item.ConsumedBy, + "desc": item.Description, + "gid": item.GID, + "guid": item.GUID, + "sep_id": item.ID, + "milestones": item.Milestones, + "name": item.Name, + "multipath_num": item.MultipathNum, + "obj_status": item.ObjStatus, + "provided_by": item.ProvidedBy, + "shared_with": item.SharedWith, + "tech_status": item.TechStatus, + "type": item.Type, + "config": string(data), } res = append(res, temp) } diff --git a/internal/service/cloudbroker/sep/schema.go b/internal/service/cloudbroker/sep/schema.go index 57e7b48..2778de4 100644 --- a/internal/service/cloudbroker/sep/schema.go +++ b/internal/service/cloudbroker/sep/schema.go @@ -9,19 +9,6 @@ func dataSourceSepCSchemaMake() map[string]*schema.Schema { Required: true, Description: "sep type des id", }, - "ckey": { - Type: schema.TypeString, - Computed: true, - Description: "ckey", - }, - "meta": { - Type: schema.TypeList, - Computed: true, - Description: "meta", - Elem: &schema.Schema{ - Type: schema.TypeString, - }, - }, "config": { Type: schema.TypeString, Computed: true, @@ -50,6 +37,11 @@ func dataSourceSepCSchemaMake() map[string]*schema.Schema { Computed: true, Description: "guid", }, + "multipath_num": { + Type: schema.TypeInt, + Computed: true, + Description: "multipath_num", + }, "milestones": { Type: schema.TypeInt, Computed: true, @@ -295,19 +287,6 @@ func dataSourceSepListSchemaMake() map[string]*schema.Schema { Description: "sep list", Elem: &schema.Resource{ Schema: map[string]*schema.Schema{ - "ckey": { - Type: schema.TypeString, - Computed: true, - Description: "ckey", - }, - "meta": { - Type: schema.TypeList, - Computed: true, - Description: "meta", - Elem: &schema.Schema{ - Type: schema.TypeString, - }, - }, "config": { Description: "config", Type: schema.TypeString, @@ -346,6 +325,11 @@ func dataSourceSepListSchemaMake() map[string]*schema.Schema { Computed: true, Description: "milestones", }, + "multipath_num": { + Type: schema.TypeInt, + Computed: true, + Description: "multipath_num", + }, "name": { Type: schema.TypeString, Computed: true, @@ -607,19 +591,6 @@ func resourceSepSchemaMake() map[string]*schema.Schema { }, }, }, - "ckey": { - Type: schema.TypeString, - Computed: true, - Description: "ckey", - }, - "meta": { - Type: schema.TypeList, - Computed: true, - Description: "meta", - Elem: &schema.Schema{ - Type: schema.TypeString, - }, - }, "config": { Type: schema.TypeString, Required: true, @@ -651,6 +622,11 @@ func resourceSepSchemaMake() map[string]*schema.Schema { Computed: true, Description: "milestones", }, + "multipath_num": { + Type: schema.TypeInt, + Computed: true, + Description: "multipath_num", + }, "obj_status": { Type: schema.TypeString, Computed: true, diff --git a/internal/service/cloudbroker/vins/flattens.go b/internal/service/cloudbroker/vins/flattens.go index 7d46edd..841f56e 100644 --- a/internal/service/cloudbroker/vins/flattens.go +++ b/internal/service/cloudbroker/vins/flattens.go @@ -372,12 +372,11 @@ func flattenVinsListReservations(li vins.ListReservations) []map[string]interfac res := make([]map[string]interface{}, 0, len(li)) for _, v := range li { temp := map[string]interface{}{ - //TODO - //"account_id": v.AccountID, - "ip": v.IP, - "mac": v.MAC, - "type": v.Type, - "vm_id": v.VMID, + "account_id": v.AccountID, + "ip": v.IP, + "mac": v.MAC, + "type": v.Type, + "vm_id": v.VMID, } res = append(res, temp) } diff --git a/internal/service/cloudbroker/vins/schema.go b/internal/service/cloudbroker/vins/schema.go index 5d6fe1e..4660520 100644 --- a/internal/service/cloudbroker/vins/schema.go +++ b/internal/service/cloudbroker/vins/schema.go @@ -590,26 +590,11 @@ func dataSourceVinsSchemaMake() map[string]*schema.Schema { Description: "reservations", Elem: &schema.Resource{ Schema: map[string]*schema.Schema{ - "client_type": { - Type: schema.TypeString, + "account_id": { + Type: schema.TypeInt, Computed: true, Description: "client type", }, - "description": { - Type: schema.TypeString, - Computed: true, - Description: "description", - }, - "domain_name": { - Type: schema.TypeString, - Computed: true, - Description: "domain name", - }, - "host_name": { - Type: schema.TypeString, - Computed: true, - Description: "host name", - }, "ip": { Type: schema.TypeString, Computed: true, @@ -2707,26 +2692,11 @@ func resourceVinsSchemaMake() map[string]*schema.Schema { Description: "reservations", Elem: &schema.Resource{ Schema: map[string]*schema.Schema{ - "client_type": { - Type: schema.TypeString, + "account_id": { + Type: schema.TypeInt, Computed: true, Description: "client type", }, - "description": { - Type: schema.TypeString, - Computed: true, - Description: "description", - }, - "domain_name": { - Type: schema.TypeString, - Computed: true, - Description: "domain name", - }, - "host_name": { - Type: schema.TypeString, - Computed: true, - Description: "host name", - }, "ip": { Type: schema.TypeString, Computed: true, @@ -2753,7 +2723,6 @@ func resourceVinsSchemaMake() map[string]*schema.Schema { }, }, }, - "created_time": { Type: schema.TypeInt, Computed: true, diff --git a/samples/cloudapi/kvmvm/resource_kvmvm/main.tf b/samples/cloudapi/kvmvm/resource_kvmvm/main.tf index 62670e6..a8644b6 100644 --- a/samples/cloudapi/kvmvm/resource_kvmvm/main.tf +++ b/samples/cloudapi/kvmvm/resource_kvmvm/main.tf @@ -269,7 +269,7 @@ resource "decort_kvmvm" "comp" { #Ρ‚ΠΈΠΏ сСти #ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ #Ρ‚ΠΈΠΏ - строка - #Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ значСния - "VINS", "EXTNET", "VFNIC", "DPDK" + #Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ значСния - "VINS", "EXTNET", "VFNIC", "DPDK" (ΠΏΡ€ΠΈ Π²Ρ‹Π±ΠΎΡ€Π΅ Ρ‚ΠΈΠΏΠ° DPDK, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ hp_backed = true) net_type = "VINS" #id сСти @@ -396,6 +396,12 @@ resource "decort_kvmvm" "comp" { #Ρ‚ΠΈΠΏ - Π±ΡƒΠ»Π΅Π² pin_to_stack = true + #список ядСр для использования Π² ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ΅ vcpupinning. ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Ρ… ядСр Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π²Π½ΠΎ количСству Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… процСссоров Π’Πœ + #игнорируСтся Ссли cpu_pin=false ΠΈΠ»ΠΈ pin_to_stack=false + #ΠΎΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ + #Ρ‚ΠΈΠΏ - массив Ρ†Π΅Π»Ρ‹Ρ… чисСл + preferred_cpu = [1234, 456] + #Ρ„Π»Π°Π³ для старта ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π° ΠΏΡ€ΠΈ рСстартС Π½ΠΎΠ΄Ρ‹ #ΠΎΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ #Ρ‚ΠΈΠΏ - Π±ΡƒΠ»Π΅Π² diff --git a/samples/cloudbroker/kvmvm/resource_kvmvm/main.tf b/samples/cloudbroker/kvmvm/resource_kvmvm/main.tf index 1e88672..9b79b4c 100644 --- a/samples/cloudbroker/kvmvm/resource_kvmvm/main.tf +++ b/samples/cloudbroker/kvmvm/resource_kvmvm/main.tf @@ -281,7 +281,7 @@ resource "decort_cb_kvmvm" "comp" { #network { #Ρ‚ΠΈΠΏ сСти #ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ - #Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ значСния - "VINS", "EXTNET", "VFNIC", "DPDK" + #Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ значСния - "VINS", "EXTNET", "VFNIC", "DPDK" (ΠΏΡ€ΠΈ Π²Ρ‹Π±ΠΎΡ€Π΅ Ρ‚ΠΈΠΏΠ° DPDK, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ hp_backed = true) #Ρ‚ΠΈΠΏ - строка #net_type = "VINS" @@ -409,6 +409,12 @@ resource "decort_cb_kvmvm" "comp" { #Ρ‚ΠΈΠΏ - Π±ΡƒΠ»Π΅Π² #pin_to_stack = true + #список ядСр для использования Π² ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ΅ vcpupinning. ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Ρ… ядСр Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π²Π½ΠΎ количСству Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… процСссоров Π’Πœ + #игнорируСтся Ссли cpu_pin=false ΠΈΠ»ΠΈ pin_to_stack=false + #ΠΎΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ + #Ρ‚ΠΈΠΏ - массив Ρ†Π΅Π»Ρ‹Ρ… чисСл + #preferred_cpu = [1234, 456] + #Ρ„Π»Π°Π³ для старта ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π° ΠΏΡ€ΠΈ рСстартС Π½ΠΎΠ΄Ρ‹ #ΠΎΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ #Ρ‚ΠΈΠΏ - Π±ΡƒΠ»Π΅Π² diff --git a/samples/cloudbroker/sep/resource_sep/main.tf b/samples/cloudbroker/sep/resource_sep/main.tf index c571760..a400ebb 100644 --- a/samples/cloudbroker/sep/resource_sep/main.tf +++ b/samples/cloudbroker/sep/resource_sep/main.tf @@ -42,7 +42,7 @@ resource "decort_cb_sep" "s" { #Ρ‚ΠΈΠΏ sep #ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ - #Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ значСния - des, dorado, tatlin, hitachi + #Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ значСния - des, dorado, tatlin, hitachi, ovs, local, shared #Ρ‚ΠΈΠΏ - строка type = "des" diff --git a/wiki/4.8.0/04.01-Установка-Terraform-ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€Π°-DECORT.md b/wiki/4.8.0/04.01-Установка-Terraform-ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€Π°-DECORT.md index c01246b..e057351 100644 --- a/wiki/4.8.0/04.01-Установка-Terraform-ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€Π°-DECORT.md +++ b/wiki/4.8.0/04.01-Установка-Terraform-ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€Π°-DECORT.md @@ -2,7 +2,7 @@ Для запуска ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€Π° Π²Π°ΠΌ потрСбуСтся машина, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ установлСн Terraform. -ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π² связи с Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ начиная с вСрсии 0.12 Terraform ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ» Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ поиска ΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€ΠΎΠ², настройка Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€Π° для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Terraform 0.12 ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ Π½ΠΎΠ²Ρ‹ΠΌΠΈ вСрсиями ΠΏΠΎΡ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ выполнСния ряда Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… дСйствий. ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ см. [8.3 Настройка локального ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€Π° для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π½ΠΎΠ²Ρ‹ΠΌΠΈ вСрсиями Terraform](https://repository.basistech.ru/BASIS/terraform-provider-decort/src/branch/main/wiki/4.8.0/08.-ΠŸΠΎΠ»Π΅Π·Π½Ρ‹Π΅-совСты#user-content-8-3-настройка-локального-ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€Π°-для-Ρ€Π°Π±ΠΎΡ‚Ρ‹-с-Π½ΠΎΠ²Ρ‹ΠΌΠΈ-вСрсиями-terraform.md). +ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π² связи с Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ начиная с вСрсии 0.12 Terraform ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ» Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ поиска ΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€ΠΎΠ², настройка Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€Π° для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Terraform 0.12 ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ Π½ΠΎΠ²Ρ‹ΠΌΠΈ вСрсиями ΠΏΠΎΡ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ выполнСния ряда Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… дСйствий. ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ см. [8.3 Настройка локального ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€Π° для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π½ΠΎΠ²Ρ‹ΠΌΠΈ вСрсиями Terraform](https://repository.basistech.ru/BASIS/terraform-provider-decort/src/branch/main/wiki/4.8.0/08.-ΠŸΠΎΠ»Π΅Π·Π½Ρ‹Π΅-совСты.md#8-3-настройка-локального-ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€Π°-для-Ρ€Π°Π±ΠΎΡ‚Ρ‹-с-Π½ΠΎΠ²Ρ‹ΠΌΠΈ-вСрсиями-terraform). ## Установка Начиная с вСрсии ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€Π° `4.3.0` Π² Ρ€Π΅Π»ΠΈΠ·Π½ΠΎΠΌ Π°Ρ€Ρ…ΠΈΠ²Π΅ находятся скрипты-инсталляторы. diff --git a/wiki/4.8.0/04.02-Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ-Terraform-ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€Π°-DECORT.md b/wiki/4.8.0/04.02-Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ-Terraform-ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€Π°-DECORT.md index 85346e3..6808e46 100644 --- a/wiki/4.8.0/04.02-Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ-Terraform-ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€Π°-DECORT.md +++ b/wiki/4.8.0/04.02-Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ-Terraform-ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€Π°-DECORT.md @@ -1,7 +1,7 @@ ## Бписок Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² для ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠŸΠ΅Ρ€Π΅Π΄ Π½Π°Ρ‡Π°Π»ΠΎΠΌ использования любой Terraform ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½. -Π’ процСссС ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Terraform ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€Π° DECORT провСряСтся ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½Ρ‹Ρ… Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΈ выполняСтся авторизация Π² ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΌ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅ ΠΎΠ±Π»Π°Ρ‡Π½ΠΎΠΉ инфраструктуры. ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΎ способах Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ Π² ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ DECORT смотри ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ [Ρ€Π°Π·Π΄Π΅Π»](https://repository.basistech.ru/BASIS/terraform-provider-decort/src/branch/main/wiki/4.8.0/03.-ΠžΠ±Π·ΠΎΡ€-ΠΎΠ±Π»Π°Ρ‡Π½ΠΎΠΉ-ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹-DECORT#user-content-способы-Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ.md). +Π’ процСссС ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Terraform ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€Π° DECORT провСряСтся ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½Ρ‹Ρ… Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΈ выполняСтся авторизация Π² ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΌ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅ ΠΎΠ±Π»Π°Ρ‡Π½ΠΎΠΉ инфраструктуры. ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΎ способах Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ Π² ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ DECORT смотри ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ [Ρ€Π°Π·Π΄Π΅Π»](https://repository.basistech.ru/BASIS/terraform-provider-decort/src/branch/main/wiki/4.8.0/03.-ΠžΠ±Π·ΠΎΡ€-ΠΎΠ±Π»Π°Ρ‡Π½ΠΎΠΉ-ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹-DECORT.md#способы-Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ). ΠŸΡ€ΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Terraform ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€Π° DECORT ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹: diff --git a/wiki/4.8.0/07.01.01-Resource_decort_kvmvm.md b/wiki/4.8.0/07.01.01-Resource_decort_kvmvm.md index 8bb22ed..ca1f00d 100644 --- a/wiki/4.8.0/07.01.01-Resource_decort_kvmvm.md +++ b/wiki/4.8.0/07.01.01-Resource_decort_kvmvm.md @@ -687,7 +687,7 @@ resource "decort_kvmvm" "comp" { #Ρ‚ΠΈΠΏ сСти #ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ #Ρ‚ΠΈΠΏ - строка - #Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ значСния - "VINS", "EXTNET", "VFNIC", "DPDK" + #Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ значСния - "VINS", "EXTNET", "VFNIC", "DPDK" (ΠΏΡ€ΠΈ Π²Ρ‹Π±ΠΎΡ€Π΅ Ρ‚ΠΈΠΏΠ° DPDK, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ hp_backed = true) net_type = "VINS" #id сСти diff --git a/wiki/4.8.0/07.02.03-Resource_decort_cb_sep.md b/wiki/4.8.0/07.02.03-Resource_decort_cb_sep.md index 1f6cbb3..043f43e 100644 --- a/wiki/4.8.0/07.02.03-Resource_decort_cb_sep.md +++ b/wiki/4.8.0/07.02.03-Resource_decort_cb_sep.md @@ -1,11 +1,14 @@ Ѐункция доступна Π² ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€Π΅ вСрсии 4.5.1 ΠΈ Π²Ρ‹ΡˆΠ΅. -_Resource_ функция **decort_cb_sep** слуТит для управлСния storage endpoint. Storage endpoint (sep) - Ρ‚ΠΎΡ‡ΠΊΠ° доступа ΠΊ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Ρƒ Π΄Π°Π½Π½Ρ‹Ρ…. Sep Π±Ρ‹Π²Π°Π΅Ρ‚ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅Ρ… Ρ‚ΠΈΠΏΠΎΠ²: +_Resource_ функция **decort_cb_sep** слуТит для управлСния storage endpoint. Storage endpoint (sep) - Ρ‚ΠΎΡ‡ΠΊΠ° доступа ΠΊ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Ρƒ Π΄Π°Π½Π½Ρ‹Ρ…. Sep Π±Ρ‹Π²Π°Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Ρ‚ΠΈΠΏΠΎΠ²: - des - hitachi - dorado - tatlin +- shared +- ovs +- local ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ‚ΠΈΠΏ отличаСтся Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠΉ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠ΅ΠΉ. _Resource_ функция **decort_cb_sep** позволяСт ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ, ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ sep. ИзмСнСниС ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ рСсурса Ρ‡Π΅Ρ€Π΅Π· terraform Π½Π΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ. Обо всСх доступных полях ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° storage endpoint см. Π½ΠΈΠΆΠ΅. @@ -84,7 +87,7 @@ resource "decort_cb_sep" "s" { #Ρ‚ΠΈΠΏ sep #ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ - #Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ значСния - des, dorado, tatlin, hitachi + #Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ значСния - des, dorado, tatlin, hitachi, ovs, local, shared #Ρ‚ΠΈΠΏ - строка type = "des" @@ -546,3 +549,143 @@ terraform output -json >> .json } } ``` + +### local + +| ПолС | Π’ΠΈΠΏ | ОписаниС | +| --- | --- | --- | +| disk_max_size | int | ΠœΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ диска | +| format | string | Π€ΠΎΡ€ΠΌΠ°Ρ‚ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΄Π°Π½Π½Ρ‹Ρ… | +| name_prefix | string | ΠŸΡ€Π΅Ρ„ΠΈΠΊΡ ΠΈΠΌΠ΅Π½ΠΈ | +| pools | []struct | Бписок ΠΏΡƒΠ»ΠΎΠ² | +| protocol | string | ΠŸΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» сообщСния | + +```json +{ + "disk_max_size": 2000, + "format": "qcow2", + "name_prefix": "de_local", + "pools": [ + { + "accessAccountIds": [], + "accessResGroupIds": [], + "description": "test_pool_local_sep", + "name": "pool_test", + "stack_consumer": 4, + "types": [ + "D", + "B" + ], + "usage_limit": 3000, + "block_disk": [ + "/dev/sdc" + ] + } + ], + "protocol": "local" +} +``` + +### shared + +| ПолС | Π’ΠΈΠΏ | ОписаниС | +| --- | --- | --- | +| disk_max_size | int | ΠœΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ диска | +| edgeuser_password | string | ΠŸΠ°Ρ€ΠΎΠ»ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ | +| edgeuser_name | string | Имя ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ | +| format | string | Π€ΠΎΡ€ΠΌΠ°Ρ‚ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΄Π°Π½Π½Ρ‹Ρ… | +| pools | []struct | Бписок ΠΏΡƒΠ»ΠΎΠ² | +| protocol | string | ΠŸΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» сообщСния | + +```json +{ + "disk_max_size": 2000, + "edgeuser_name": "usrname", + "edgeuser_password": "pwd", + "format": "qcow2", + "housekeeping_settings": { + "disk_del_queue": { + "purge_attempts_threshold": 20 + } + }, + "multipathNum": 4, + "name_prefix": "de_local", + "pools": [ + { + "accessAccountIds": [], + "accessResGroupIds": [], + "allocation_type": "block", + "description": "description", + "name": "pool_test", + "system": 4, + "types": [ + "D", + "B" + ], + "usage_limit": 3000, + "wwns": [ + "123456789" + ] + } + ], + "protocol": "iscsi" +} +``` + +### ovs + +| ПолС | Π’ΠΈΠΏ | ОписаниС | +| --- | --- | --- | +| API_URLs | []string | Бписок адрСсов для api | +| disk_max_size | int | ΠœΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ диска | +| edgeuser_password | string | ΠŸΠ°Ρ€ΠΎΠ»ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ | +| edgeuser_name | string | Имя ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ | +| pools | []struct | Бписок ΠΏΡƒΠ»ΠΎΠ² | +| protocol | string | ΠŸΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» сообщСния | + +```json +{ + "decs3o_app_id": "app_id", + "decs3o_app_secret": "app_secret", + "edgeuser_name": "username", + "edgeuser_password": "password", + "API_IPs": [ + "192.168.1.1", + "192.168.1.2", + "192.168.1.3", + ], + "protocol": "openvstorage" + "transport": "tcp", + "pools": [ + { + "name": "pool_name", + "uris": [ + { + "ip": "192.168.1.4", + "port": 8080 + }, + ], + "refId": "reference_id", + "description": "description", + "types": ["B", "D", "A", "Any"], + "max_disk_size": 2000, + "pagecache_ratio": 20 + }, + ], + "ovs_settings": { + "vpool_data_metadatacache": 100, + "vpool_vmstor_metadatacache": 150, + }, + "housekeeping_settings": { + "disk_del_queue": { + "purgatory_object": "ovsdisks", + "chunk_max_size": 200, + "disk_count_max": 5, + "oversize_time_to_sleep": 300, + "normal_time_to_sleep": 30, + "one_minute_la_threshold": 10, + "purge_attempts_threshold": 10, + } + }, +} +``` \ No newline at end of file diff --git a/wiki/4.8.0/07.02.11-Resource_decort_cb_kvmvm.md b/wiki/4.8.0/07.02.11-Resource_decort_cb_kvmvm.md index 3e5836e..091dd50 100644 --- a/wiki/4.8.0/07.02.11-Resource_decort_cb_kvmvm.md +++ b/wiki/4.8.0/07.02.11-Resource_decort_cb_kvmvm.md @@ -644,7 +644,7 @@ _Resource_ функция **decort_cb_kvmvm** ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ #network { #Ρ‚ΠΈΠΏ сСти #ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ - #Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ значСния - "VINS", "EXTNET", "VFNIC", "DPDK" + #Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ значСния - "VINS", "EXTNET", "VFNIC", "DPDK" (ΠΏΡ€ΠΈ Π²Ρ‹Π±ΠΎΡ€Π΅ Ρ‚ΠΈΠΏΠ° DPDK, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ hp_backed = true) #Ρ‚ΠΈΠΏ - строка #net_type = "VINS" diff --git a/wiki/4.8.1/01.-Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅.md b/wiki/4.8.1/01.-Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅.md new file mode 100644 index 0000000..6edf90b --- /dev/null +++ b/wiki/4.8.1/01.-Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅.md @@ -0,0 +1,7 @@ +DECORT Terraform Provider вСрсии 4.8.x позволяСт ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΎΠ±Π»Π°Ρ‡Π½Ρ‹ΠΌΠΈ рСсурсами Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ Digital Energy Cloud Orchestration Technology (DECORT) вСрсии 4.2.x ΠΈ Π²Ρ‹ΡˆΠ΅ посрСдством Terraform. + +Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ рСсурсами (_compute_), рСсурсными Π³Ρ€ΡƒΠΏΠΏΠ°ΠΌΠΈ, сСтСвыми ΠΈ дисковыми рСсурсами, ΠΎΠ±Ρ€Π°Π·Π°ΠΌΠΈ дисков, кластСром, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ ΠΎΠ±Π»Π°Ρ‡Π½ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ DECORT. + +Если Π²Ρ‹ Ρ…ΠΎΡ€ΠΎΡˆΠΎ Π·Π½Π°ΠΊΠΎΠΌΡ‹ с инструмСнтом Terraform ΠΈ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ максимально быстро Π½Π°Ρ‡Π°Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡƒ DECORT Π² своих Terraform-ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ…, Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ сразу ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ Ρ€Π°Π·Π΄Π΅Π»Ρƒ [ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Ρ€Π°Π±ΠΎΡ‚Ρ‹](https://repository.basistech.ru/BASIS/terraform-provider-decort/src/branch/main/wiki/4.8.1/02.-ΠŸΡ€ΠΈΠΌΠ΅Ρ€-Ρ€Π°Π±ΠΎΡ‚Ρ‹.md), Π³Π΄Π΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Π½ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ ΠΎΡ‚ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с основными Π²ΠΈΠ΄Π°ΠΌΠΈ рСсурсов ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹. Если Ρƒ вас всё ΠΆΠ΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ вопросы ΠΏΠΎ ΠΎΠ±Π»Π°Ρ‡Π½ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ DECORT ΠΈ порядку Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ Π² Π½Π΅ΠΉ, Ρ‚ΠΎ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ΡΡŒ ΠΊ Π³Π»Π°Π²Π΅ [Β«ΠžΠ±Π·ΠΎΡ€ ΠΎΠ±Π»Π°Ρ‡Π½ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ DECORTΒ»](https://repository.basistech.ru/BASIS/terraform-provider-decort/src/branch/main/wiki/4.8.1/03.-ΠžΠ±Π·ΠΎΡ€-ΠΎΠ±Π»Π°Ρ‡Π½ΠΎΠΉ-ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹-DECORT.md). Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ Π³Π»Π°Π²Π° [Β«Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ Terraform ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€Π° DECORTΒ»](https://repository.basistech.ru/BASIS/terraform-provider-decort/src/branch/main/wiki/4.8.1/04.02-Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ-Terraform-ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€Π°-DECORT.md). + +Если Π²Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ инструмСнт Terraform ΠΈ ΠΎΠ±Π»Π°Ρ‡Π½ΡƒΡŽ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡƒ DECORT, Ρ‚ΠΎ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌ Π²Π°ΠΌ Π½Π°Ρ‡Π°Ρ‚ΡŒ с Π³Π»Π°Π²Ρ‹ [Β«ΠžΠ±Π·ΠΎΡ€ ΠΎΠ±Π»Π°Ρ‡Π½ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ DECORTΒ»](https://repository.basistech.ru/BASIS/terraform-provider-decort/src/branch/main/wiki/4.8.1/03.-ΠžΠ±Π·ΠΎΡ€-ΠΎΠ±Π»Π°Ρ‡Π½ΠΎΠΉ-ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹-DECORT.md), послС Ρ‡Π΅Π³ΠΎ ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒ Π³Π»Π°Π²Ρ‹ [Β«_Data source_ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Terraform ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€Π° DECORTΒ»](https://repository.basistech.ru/BASIS/terraform-provider-decort/src/branch/main/wiki/4.8.1/06.-Data-source-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ-Terraform-ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€Π°-DECORT.md) ΠΈ [Β«_Resource_ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Terraform ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€Π° DECORTΒ»](https://repository.basistech.ru/BASIS/terraform-provider-decort/src/branch/main/wiki/4.8.1/07.-Resource-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ-Terraform-ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€Π°-DECORT.md). ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹, ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹Π΅ Π² этих Ρ€Π°Π·Π΄Π΅Π»Π°Ρ…, ΠΏΠΎΠΌΠΎΠ³ΡƒΡ‚ Π²Π°ΠΌ быстро ΠΎΡΠ²ΠΎΠΈΡ‚ΡŒ Π±Π°Π·ΠΎΠ²Ρ‹Π΅ ΠΏΡ€ΠΈΡ‘ΠΌΡ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с инструмСнтом Terraform ΠΈ ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€ΠΎΠΌ DECORT. diff --git a/wiki/4.8.1/02.-ΠŸΡ€ΠΈΠΌΠ΅Ρ€-Ρ€Π°Π±ΠΎΡ‚Ρ‹.md b/wiki/4.8.1/02.-ΠŸΡ€ΠΈΠΌΠ΅Ρ€-Ρ€Π°Π±ΠΎΡ‚Ρ‹.md new file mode 100644 index 0000000..b076ae4 --- /dev/null +++ b/wiki/4.8.1/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.8.1/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.8.1/03.-ΠžΠ±Π·ΠΎΡ€-ΠΎΠ±Π»Π°Ρ‡Π½ΠΎΠΉ-ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹-DECORT.md b/wiki/4.8.1/03.-ΠžΠ±Π·ΠΎΡ€-ΠΎΠ±Π»Π°Ρ‡Π½ΠΎΠΉ-ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹-DECORT.md new file mode 100644 index 0000000..938223a --- /dev/null +++ b/wiki/4.8.1/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.8.1/04.-Начало-Ρ€Π°Π±ΠΎΡ‚Ρ‹-с-terraform-ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€ΠΎΠΌ-DECORT.md b/wiki/4.8.1/04.-Начало-Ρ€Π°Π±ΠΎΡ‚Ρ‹-с-terraform-ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€ΠΎΠΌ-DECORT.md new file mode 100644 index 0000000..edaa664 --- /dev/null +++ b/wiki/4.8.1/04.-Начало-Ρ€Π°Π±ΠΎΡ‚Ρ‹-с-terraform-ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€ΠΎΠΌ-DECORT.md @@ -0,0 +1,6 @@ +Π”Π°Π½Π½Ρ‹ΠΉ Ρ€Π°Π·Π΄Π΅Π» описываСт: +- БистСмныС трСбования +- Установку ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€Π° +- Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€Π° +- ΠŸΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Ρ€Π΅ΠΆΠΈΠΌΠ° Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ Π³Ρ€ΡƒΠΏΠΏΠ°ΠΌΠΈ API +- ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ gid/grid_id ΠΏΠ»ΠΎΡ‰Π°Π΄ΠΊΠΈ diff --git a/wiki/4.8.1/04.01-Установка-Terraform-ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€Π°-DECORT.md b/wiki/4.8.1/04.01-Установка-Terraform-ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€Π°-DECORT.md new file mode 100644 index 0000000..e057351 --- /dev/null +++ b/wiki/4.8.1/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.8.0/08.-ΠŸΠΎΠ»Π΅Π·Π½Ρ‹Π΅-совСты.md#8-3-настройка-локального-ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€Π°-для-Ρ€Π°Π±ΠΎΡ‚Ρ‹-с-Π½ΠΎΠ²Ρ‹ΠΌΠΈ-вСрсиями-terraform). + +## Установка +Начиная с вСрсии ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€Π° `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.8.1/04.02-Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ-Terraform-ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€Π°-DECORT.md b/wiki/4.8.1/04.02-Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ-Terraform-ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€Π°-DECORT.md new file mode 100644 index 0000000..6808e46 --- /dev/null +++ b/wiki/4.8.1/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.8.0/03.-ΠžΠ±Π·ΠΎΡ€-ΠΎΠ±Π»Π°Ρ‡Π½ΠΎΠΉ-ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹-DECORT.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.8.1/04.03-ΠŸΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅-ΠΌΠ΅ΠΆΠ΄Ρƒ-Π³Ρ€ΡƒΠΏΠΏΠ°ΠΌΠΈ-API.md b/wiki/4.8.1/04.03-ΠŸΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅-ΠΌΠ΅ΠΆΠ΄Ρƒ-Π³Ρ€ΡƒΠΏΠΏΠ°ΠΌΠΈ-API.md new file mode 100644 index 0000000..fb722ac --- /dev/null +++ b/wiki/4.8.1/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.8.1/04.04-ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅-gid-ΠΈΠ»ΠΈ-grid_id.md b/wiki/4.8.1/04.04-ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅-gid-ΠΈΠ»ΠΈ-grid_id.md new file mode 100644 index 0000000..4b316ac --- /dev/null +++ b/wiki/4.8.1/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.8.1/04.05-Π‘Π±ΠΎΡ€ΠΊΠ°-terraform-ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€Π°-Π²-ΠΎΠ±Ρ€Π°Π·.md b/wiki/4.8.1/04.05-Π‘Π±ΠΎΡ€ΠΊΠ°-terraform-ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€Π°-Π²-ΠΎΠ±Ρ€Π°Π·.md new file mode 100644 index 0000000..02bc8b7 --- /dev/null +++ b/wiki/4.8.1/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.8.1/05.-Π Π°Π±ΠΎΡ‚Π°-с-terraform.md b/wiki/4.8.1/05.-Π Π°Π±ΠΎΡ‚Π°-с-terraform.md new file mode 100644 index 0000000..675f2ea --- /dev/null +++ b/wiki/4.8.1/05.-Π Π°Π±ΠΎΡ‚Π°-с-terraform.md @@ -0,0 +1,4 @@ +Π Π°Π·Π΄Π΅Π» описываСт Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с terraform, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ. +Π Π°Π·Π΄Π΅Π» Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ: +- Π˜ΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ рСсурсов +- Π Π°Π±ΠΎΡ‚Π° с Ρ‚Π°ΠΉΠΌΠ°ΡƒΡ‚Π°ΠΌΠΈ diff --git a/wiki/4.8.1/05.01-Π˜ΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅-рСсурсов.md b/wiki/4.8.1/05.01-Π˜ΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅-рСсурсов.md new file mode 100644 index 0000000..8a419d3 --- /dev/null +++ b/wiki/4.8.1/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.8.1/05.02-Π Π°Π±ΠΎΡ‚Π°-с-Ρ‚Π°ΠΉΠΌΠ°ΡƒΡ‚Π°ΠΌΠΈ.md b/wiki/4.8.1/05.02-Π Π°Π±ΠΎΡ‚Π°-с-Ρ‚Π°ΠΉΠΌΠ°ΡƒΡ‚Π°ΠΌΠΈ.md new file mode 100644 index 0000000..9a739b4 --- /dev/null +++ b/wiki/4.8.1/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