TOOLS/ — generators + scripts + config + ARCHITECTURE.md ├── yaml-generator/ (code) ├── resource-generator/ (code) ├── docs-generator/ (code) ├── scripts/ (← devops/*.sh) ├── config/ (← devops/profiles/ + devops/config/) │ ├── test/ profile.env, services_list.txt, operation_timeouts.json │ ├── prod/ │ └── dev/ └── ARCHITECTURE.md (← devops/ARCHITECTURE.md) generated/ — pipeline output only (gitignored) ├── test/resources_yaml/, go/, docs/, provider_build/ ├── prod/ └── dev/ provider/ — code only, no generated files resources_yaml/ — DELETED (generated) internal/resources_gen/ — DELETED (generated) devops/ — removed (replaced by TOOLS/scripts + TOOLS/config + generated/) Generators now fail if NUBES_*_DIR not set (no defaults to provider/). Provider requires pipeline to populate resources_gen/ before build.
3.2 KiB
3.2 KiB
Resource nubes_vc_complex
Service ID: 113
Service Name: Быстрый старт
Manual | Create params | Modify params | Output params | Operations | Example
Copy-ready manifest (vc_complex_main.tf)
terraform {
required_providers {
nubes = {
source = "terra.k8c.ru/nubes/nubes"
version = "5.0.75"
}
}
}
# Токен доступа api_token к Nubes API — замените на реальный.
provider "nubes" {
api_token = "token_***"
api_endpoint = "https://lk-api-gateway-test.ngcloud.ru/api/v1/svc"
}
resource "nubes_vc_complex" "baza" {
resource_realm = "TODO" # Платформа для развертывания
vapp_name = "TODO" # Имя vApp
# Параметры, имеющие значение по умолчанию, если не меняете - эти параметры не обязательно прописывать в манифесте
vdc_provider_gateway = "sandbox-v1cl1-pvdc" # Взять из свойств ресурсной платформы. Путь .vcd.providerVdc - взять KEY providerGateway Cloud Director. Влияет ресурсы будут предоставлены. Является полем (List<String>) в свойствах рес. платформы ЛК, но сам параметр передаётся только как один String
virtual_services_count = 1 # Кол-во виртуальных сервисов, которые выделяются на AVI. Во избежании коллапса пока выделяется до 4
ip_space_name = "internet-ipv4-v1" # Имя ip Space для внешнего IP. Целесообразнее брать самый дешёвый, так как это vip для исходящего трафика. Необходимо задавать если включен needExternalAddressSNAT
storage_config = [{"name": "", "size": 1024}] # Описывается как массив объектов, где описывается имя политики и её размер
vdc_network_pool = "nsxt-sandbox-geneve-np"
cpu_guaranteed = 20
mem_guaranteed = 20
segroup_name = "SEGROUP-SANDBOX-CL1-SHARED-01" # Наименование segroup, в котором будут выделяться пулы на AVI
need_external_address_snat = true # Выделяет внешний IP на Edge. Используется для SNAT всего трафика
need_enable_avi = false # Включает AVI в Cloud Director
cpu_allocated = 1 # шт
mem_allocated = 10 # gb
v_ipcount = 0 # ш
}
Outputs usage
# Выходные параметры можно использовать как
nubes_vc_complex.baza.state_params["имя_ключа"]
nubes_vc_complex.baza.state_out["имя_ключа"]
nubes_vc_complex.baza.state_params_flat["имя_ключа"]
nubes_vc_complex.baza.state_out_flat["имя_ключа"]
nubes_vc_complex.baza.vault_secrets["имя_ключа"]
nubes_vc_complex.baza.vault_url
nubes_vc_complex.baza.vault_user_path
nubes_vc_complex.baza.vault_fields