From 5a2a5e74874f4d9d4684814bf03012a71f9958ab Mon Sep 17 00:00:00 2001 From: Nail Date: Thu, 24 Sep 2026 16:27:57 +0300 Subject: [PATCH] =?UTF-8?q?stand(FullPipe):=20=D0=B4=D0=BE=D0=B1=D0=B0?= =?UTF-8?q?=D0=B2=D0=BB=D0=B5=D0=BD=20=D0=A8=D1=82=D1=83=D1=80=D0=B2=D0=B0?= =?UTF-8?q?=D0=BB=20(nubes=5Fvc=5Fmgmt=5Fsthutrval=5Fcluster,=20148)=20?= =?UTF-8?q?=D0=B2=20=D0=BA=D0=BE=D0=BD=D0=B5=D1=86=20=D1=86=D0=B5=D0=BF?= =?UTF-8?q?=D0=BE=D1=87=D0=BA=D0=B8=20vDC=20->=20Edge=20->=20IP=20->=20SNA?= =?UTF-8?q?T?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- DEV_STAND/FullPipe/shturval.tf | 52 +++++++++++++++++++++++ DEV_STAND/FullPipe/variables.tf | 74 +++++++++++++++++++++++++++++++++ 2 files changed, 126 insertions(+) create mode 100644 DEV_STAND/FullPipe/shturval.tf diff --git a/DEV_STAND/FullPipe/shturval.tf b/DEV_STAND/FullPipe/shturval.tf new file mode 100644 index 0000000..b0a062d --- /dev/null +++ b/DEV_STAND/FullPipe/shturval.tf @@ -0,0 +1,52 @@ +# ============================================================================= +# Менеджмент-кластер Kubernetes «Штурвал» (сервис 148) +# +# Разворачивается последним в цепочке: +# орга (создана вручную в ЛК) +# -> nubes_vc_vdc.vdc +# -> nubes_vc_nsxt.edge +# -> nubes_vc_org_ip_allocation.org_ip +# -> nubes_vc_nsxt_snat.snat +# -> nubes_vc_mgmt_sthutrval_cluster.shturval (этот ресурс) +# +# Штурвалу нужны готовая сеть и внешние адреса (для Kubernetes API и Ingress), +# поэтому depends_on стоит на SNAT — последний ресурс цепочки. +# ============================================================================= + +resource "nubes_vc_mgmt_sthutrval_cluster" "shturval" { + resource_name = var.shturval_resource_name + + # Облако и имя кластера. Ресурсная платформа и сетевой провайдер — те же, + # что у vDC (берутся из общих переменных). + startup_configuration = { + resource_realm = var.shturval_realm + cluster_name = var.shturval_cluster_name + provider_vdc = var.vdc_provider_vdc + network_provider = var.vdc_network_provider + } + + # Версия Штурвала + cluster_configuration = { + app_version = var.shturval_app_version + } + + # Control plane: размер зависит от ресурсной платформы + control_plane_configuration = { + sizing_policy = var.shturval_cp_sizing_policy + sizing_disk = var.shturval_cp_sizing_disk + count = var.shturval_cp_count + } + + # Группы воркеров: JSON-строкой, после создания не изменяется + worker_configuration = var.shturval_worker_config + + # Доступ: внешние адреса для Kubernetes API и Ingress + access_configuration = { + need_external_address_api = var.shturval_api_need_external + access_ip_list_api = var.shturval_api_access_ip_list + need_external_address_ingress = var.shturval_ingress_need_external + access_ip_list_ingress = var.shturval_ingress_access_ip_list + } + + depends_on = [nubes_vc_nsxt_snat.snat] +} diff --git a/DEV_STAND/FullPipe/variables.tf b/DEV_STAND/FullPipe/variables.tf index 7e934d3..cc37a8c 100644 --- a/DEV_STAND/FullPipe/variables.tf +++ b/DEV_STAND/FullPipe/variables.tf @@ -114,3 +114,77 @@ variable "nsxt_second_dns" { default = "185.247.187.77" description = "Второй DNS" } + +# --- Штурвал (менеджмент-кластер Kubernetes, сервис 148) --- + +variable "shturval_resource_name" { + type = string + default = "shturval-mgmt-dev" + description = "Имя услуги Штурвал в ЛК" +} + +variable "shturval_realm" { + type = string + default = "sandbox.nubes.ru" + description = "Облако (resource_realm), в котором разворачивается Штурвал. Для DEV — sandbox.nubes.ru" +} + +variable "shturval_cluster_name" { + type = string + default = "shturval-mgmt-dev-00" + description = "Имя кластера внутри Штурвала" +} + +variable "shturval_app_version" { + type = string + default = "2.13.1" + description = "Версия Штурвала: 2.13.1, 2.12.1 или 2.11.0" +} + +variable "shturval_cp_sizing_policy" { + type = string + default = "TKG 4CPU 8RAM" + description = "Политика размера control plane, зависит от ресурсной платформы: TKG 4CPU 8RAM | TKG 8CPU 16RAM | TKG 16CPU 32RAM" +} + +variable "shturval_cp_sizing_disk" { + type = number + default = 50 + description = "Диск control plane, ГБ" +} + +variable "shturval_cp_count" { + type = number + default = 1 + description = "Количество узлов control plane: 1, 3 или 5" +} + +variable "shturval_worker_config" { + type = string + default = "[{\"groupName\":\"workers-shturval-mgmt\",\"sizingPolicy\":\"TKG 4CPU 8RAM\",\"sizingDisk\":50,\"count\":2}]" + description = "Группы воркеров JSON-строкой (groupName, sizingPolicy, sizingDisk, count). После создания не изменяется" +} + +variable "shturval_api_need_external" { + type = bool + default = true + description = "Выделить внешний адрес для Kubernetes API" +} + +variable "shturval_api_access_ip_list" { + type = string + default = "[]" + description = "Список адресов доступа к Kubernetes API. Пустой массив — доступ всем" +} + +variable "shturval_ingress_need_external" { + type = bool + default = true + description = "Выделить внешний адрес для Ingress" +} + +variable "shturval_ingress_access_ip_list" { + type = string + default = "[]" + description = "Список адресов доступа к Ingress. Пустой массив — доступ всем" +}