From e7235d96c98470121a3d8fb511ea62d8475f14d3 Mon Sep 17 00:00:00 2001 From: ayurishchev Date: Mon, 7 Sep 2026 23:35:59 +0300 Subject: [PATCH] Scale out to 4 routers (router_count = 3 -> 4) Horizontal scale-out of the deployed group per user request - all other requirements unchanged. terraform apply added only router4 and its 2 private ports (3 added, 0 changed, 0 destroyed); the existing 3 routers were untouched. Deployment summary updated with router4's addresses. Co-Authored-By: Claude Sonnet 5 Claude-Session: https://claude.ai/code/session_011hXR2ftXZZhJ4Y3XuSoR8r --- docs/DEPLOYMENT_SUMMARY.md | 17 +++++++++++++---- terraform/terraform.tfvars | 2 +- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/docs/DEPLOYMENT_SUMMARY.md b/docs/DEPLOYMENT_SUMMARY.md index fdc1773..85bc089 100644 --- a/docs/DEPLOYMENT_SUMMARY.md +++ b/docs/DEPLOYMENT_SUMMARY.md @@ -1,6 +1,6 @@ -# Deployment Summary — VK Cloud PROD (3 роутера) +# Deployment Summary — VK Cloud PROD (4 роутера) -Дата: 2026-09-07 · Статус: **развёрнуто и проверено пользователем** · Коммит: `8886c1b` +Дата: 2026-09-07 · Статус: **развёрнуто и проверено пользователем** · Коммиты: `8886c1b`, `e7bdc46`, +horizontal scale-out до 4 роутеров ## Что развёрнуто @@ -20,10 +20,15 @@ flowchart TB R3p1["priv1: 10.90.0.13"] R3p2["priv2: 10.90.0.29"] end + subgraph R4["router4 · 95.163.208.228"] + R4p1["priv1: 10.90.0.6"] + R4p2["priv2: 10.90.0.22"] + end INET --- R1 INET --- R2 INET --- R3 + INET --- R4 NET1[("priv1 network\n10.90.0.0/28")] NET2[("priv2 network\n10.90.0.16/28")] @@ -31,9 +36,11 @@ flowchart TB R1p1 --- NET1 R2p1 --- NET1 R3p1 --- NET1 + R4p1 --- NET1 R1p2 --- NET2 R2p2 --- NET2 R3p2 --- NET2 + R4p2 --- NET2 ``` | ВМ | Публичный IP (WAN) | priv1 (`10.90.0.0/28`) | priv2 (`10.90.0.16/28`) | @@ -41,16 +48,18 @@ flowchart TB | router1 | 95.163.209.37 | 10.90.0.12 | 10.90.0.21 | | router2 | 95.163.209.99 | 10.90.0.5 | 10.90.0.28 | | router3 | 95.163.209.23 | 10.90.0.13 | 10.90.0.29 | +| router4 | 95.163.208.228 | 10.90.0.6 | 10.90.0.22 | Каждая ВМ — 3 сетевых интерфейса (1 внешний + 2 приватных), flavor `STD3-4-4`, keypair `mcs_ru`, образ Ubuntu 24.04. Приватные адреса назначены Neutron IPAM автоматически (без ручного вычисления — см. ниже, почему). -`terraform apply`: **19 added, 0 changed, 0 destroyed.** +`terraform apply` (изначальный, 3 роутера): **19 added, 0 changed, 0 destroyed.** +`terraform apply` (горизонтальное масштабирование до 4 роутеров, только `router_count = 3 → 4` в `terraform.tfvars`): **3 added, 0 changed, 0 destroyed** — только `router4` и его 2 приватных порта, остальные 3 роутера не затронуты. ## Задача и её реализация | Требование | Как реализовано | |---|---| -| 3 роутера | `router_count = 3` в `terraform/terraform.tfvars` | +| Количество роутеров (изначально 3, масштабировано до 4) | `router_count` в `terraform/terraform.tfvars` | | 3 порта на роутер (1 внешний + 2 приватных) | 1 динамический внешний порт + `dynamic "network"` по числу `private_network_cidrs` | | Каждый приватный порт — в своей подсети | `vkcs_networking_network`/`subnet` по `for_each` на каждый CIDR | | Размер приватной подсети `/28` | `private_network_cidrs = ["10.90.0.0/28", "10.90.0.16/28"]` | diff --git a/terraform/terraform.tfvars b/terraform/terraform.tfvars index 71fcde0..2cf11bc 100644 --- a/terraform/terraform.tfvars +++ b/terraform/terraform.tfvars @@ -4,7 +4,7 @@ project_id = "XXXXXd424998422XXXXXf13ac9XXXXX" ssh_key_name = "mcs_ru" # Adaptive router VM count (has a default - see variables.tf - uncomment to override). -router_count = 3 +router_count = 4 # router_availability_zones = ["ME1"] # One CIDR per private network that router VMs get an interface into.