From 2b03ba520e501641c197c814effbadb96571437e Mon Sep 17 00:00:00 2001 From: Naeel Date: Thu, 26 Mar 2026 06:43:53 +0300 Subject: [PATCH] examples/DEVfromGround: add Terraform manifests (nubes_vc_org, DEV endpoint) --- examples/DEVfromGround/main.tf | 28 ++++++++++++++++++++++++++++ examples/DEVfromGround/vc_org.tf | 30 ++++++++++++++++++++++++++++++ 2 files changed, 58 insertions(+) create mode 100644 examples/DEVfromGround/main.tf create mode 100644 examples/DEVfromGround/vc_org.tf diff --git a/examples/DEVfromGround/main.tf b/examples/DEVfromGround/main.tf new file mode 100644 index 0000000..1d1f939 --- /dev/null +++ b/examples/DEVfromGround/main.tf @@ -0,0 +1,28 @@ +// 2026-03-26 — main.tf: провайдер Nubes для DEV-стенда. +// DEV API endpoint: https://deck-api-dev.ngcloud.ru/api/v1 +// Токен: secrets/dev.token (tazet@narod.ru) + +terraform { + required_providers { + nubes = { + source = "terra.k8c.ru/nubes/nubes" + version = "5.0.31" + } + } +} + +variable "api_token" { + type = string + sensitive = true + description = "Nubes API токен (DEV-стенд). Значение — в terraform.tfvars." +} + +variable "resource_realm" { + type = string + description = "Платформа развёртывания (например k8s-3.ext.nubes.ru). Уточнить у сервис-менеджера." +} + +provider "nubes" { + api_token = var.api_token + api_endpoint = "https://deck-api-dev.ngcloud.ru/api/v1" +} diff --git a/examples/DEVfromGround/vc_org.tf b/examples/DEVfromGround/vc_org.tf new file mode 100644 index 0000000..75d2bb2 --- /dev/null +++ b/examples/DEVfromGround/vc_org.tf @@ -0,0 +1,30 @@ +// 2026-03-26 — vc_org.tf: ресурс «Организация в Cloud Director» для DEV-стенда. +// nubes_vc_org — тенант vCloud Director (organization_type = "iaas"). +// resource_realm задаётся через переменную (terraform.tfvars или -var). + +resource "nubes_vc_org" "dev_org" { + resource_realm = var.resource_realm + + # organization_type "iaas" — единственный вариант с доступом к организации. + # Значение по умолчанию "iaas", явно прописано для читаемости. + organization_type = "iaas" + + # adopt_existing_on_create = true позволяет взять существующий инстанс под управление. + # Для DEV-стенда оставляем false — при apply создаётся новый; ошибка если уже есть. + adopt_existing_on_create = false + + # suspend_on_destroy = true (по умолчанию) — при destroy инстанс уходит в Suspend, не удаляется. + suspend_on_destroy = true +} + +# ─── Outputs ───────────────────────────────────────────────────────────────── + +output "dev_org_id" { + description = "ID созданной организации (используется в зависимых ресурсах)" + value = nubes_vc_org.dev_org.id +} + +output "dev_org_state_flat" { + description = "Плоский state организации — endpoints, статусы" + value = nubes_vc_org.dev_org.state_out_flat +}