diff --git a/SHTURVAL_MGMT/locals.tf b/SHTURVAL_MGMT/locals.tf new file mode 100644 index 0000000..95cb8a1 --- /dev/null +++ b/SHTURVAL_MGMT/locals.tf @@ -0,0 +1,39 @@ +# ============================================================================= +# locals.tf — настраиваемые значения для Менеджмент Kubernetes кластер Штурвал +# Сервис 148 — vc_mgmt_sthutrval_cluster +# ============================================================================= + +locals { + # ─── Имя ресурса ───────────────────────────────────────────────────────── + shturval_mgmt_name = "shturval-mgmt-dev" + + # ─── Startup Configuration ─────────────────────────────────────────────── + # resource_realm — только sandbox.nubes.ru для dev + shturval_realm = "sandbox.nubes.ru" + shturval_cluster_name = "shturval-mgmt-dev-00" + + # ─── Cluster Configuration ─────────────────────────────────────────────── + shturval_app_version = "2.13.1" # 2.13.1 | 2.12.1 | 2.11.0 + + # ─── Control Plane Configuration ───────────────────────────────────────── + shturval_cp_sizing_policy = "TKG 4CPU 8RAM" # TKG 4CPU 8RAM | TKG 8CPU 16RAM | TKG 16CPU 32RAM + shturval_cp_sizing_disk = 50 # ГБ + shturval_cp_count = 1 # 1 | 3 | 5 + + # ─── Worker Configuration ──────────────────────────────────────────────── + # JSON-строка, массив групп воркеров. Все поля имеют defaults. + shturval_worker_config = jsonencode([ + { + groupName = "workers-shturval-mgmt" + sizingPolicy = "TKG 4CPU 8RAM" + sizingDisk = 50 + count = 2 + } + ]) + + # ─── Access Configuration ──────────────────────────────────────────────── + shturval_api_need_external = true + shturval_api_access_ip_list = "[]" # пусто = доступ всем + shturval_ingress_need_external = true + shturval_ingress_access_ip_list = "[]" # пусто = доступ всем +} diff --git a/SHTURVAL_MGMT/main.tf b/SHTURVAL_MGMT/main.tf new file mode 100644 index 0000000..62fbbc3 --- /dev/null +++ b/SHTURVAL_MGMT/main.tf @@ -0,0 +1,29 @@ +terraform { + required_providers { + nubes = { + source = "registry.kube5s.ru/nubes-dev/nubes" + version = "3.1.13" + } + } +} + +variable "api_token" { + type = string + sensitive = true + description = "Nubes API token" +} + +variable "realm" { + type = string + description = "resource_realm for Штурвал (sandbox.nubes.ru)" +} + +variable "sizing_policy" { + type = string + description = "Control plane sizing policy (зависит от ресурсной платформы)" +} + +provider "nubes" { + api_token = var.api_token + api_endpoint = "https://lk-api-gateway-dev.ngcloud.ru/api/v1/svc" +} diff --git a/SHTURVAL_MGMT/shturval_mgmt.tf b/SHTURVAL_MGMT/shturval_mgmt.tf new file mode 100644 index 0000000..90dbba1 --- /dev/null +++ b/SHTURVAL_MGMT/shturval_mgmt.tf @@ -0,0 +1,32 @@ +# ============================================================================= +# Менеджмент Kubernetes кластер Штурвал (сервис 148) +# Ресурс: nubes_vc_mgmt_sthutrval_cluster +# ============================================================================= + +resource "nubes_vc_mgmt_sthutrval_cluster" "shturval_mgmt" { + resource_name = local.shturval_mgmt_name + + startup_configuration = { + resource_realm = local.shturval_realm + cluster_name = local.shturval_cluster_name + } + + cluster_configuration = { + app_version = local.shturval_app_version + } + + control_plane_configuration = { + sizing_policy = var.sizing_policy # ⚠️ обязательный, передаётся через tfvars + sizing_disk = local.shturval_cp_sizing_disk + count = local.shturval_cp_count + } + + worker_configuration = local.shturval_worker_config + + access_configuration = { + need_external_address_a_p_i = local.shturval_api_need_external + access_ip_list_a_p_i = local.shturval_api_access_ip_list + need_external_address_ingress = local.shturval_ingress_need_external + access_ip_list_ingress = local.shturval_ingress_access_ip_list + } +} diff --git a/SHTURVAL_MGMT/terraform.tfvars.example b/SHTURVAL_MGMT/terraform.tfvars.example new file mode 100644 index 0000000..e47ba83 --- /dev/null +++ b/SHTURVAL_MGMT/terraform.tfvars.example @@ -0,0 +1,8 @@ +# ============================================================================= +# terraform.tfvars.example — пример переменных для Штурвал Management (148) +# Скопировать в terraform.tfvars и заполнить реальными значениями +# ============================================================================= + +api_token = "ваш_api_токен" +realm = "sandbox.nubes.ru" +sizing_policy = "TKG 4CPU 8RAM" # TKG 4CPU 8RAM (мин) | TKG 8CPU 16RAM | TKG 16CPU 32RAM