feat(fullpipe_chain): vApp и ВМ в цепочке — самодостаточный vm.tf (переменные+ресурсы+выводы), квота IP 4 и vCPU 12 (запас под кластер), README и tfvars-шаблон
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
# vDC → Edge → внешние IP → SNAT → Штурвал
|
||||
# vDC → Edge → внешние IP → SNAT → vApp → ВМ → Штурвал
|
||||
|
||||
Пример поднимает всю цепочку в Nubes:
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
- сетевой шлюз периметра (Edge) с балансировщиком AVI;
|
||||
- внешние IP на организации;
|
||||
- SNAT на шлюзе;
|
||||
- виртуальный каталог (vApp) и виртуальную машину (ВМ) внутри него — с доступом по SSH;
|
||||
- Kubernetes-кластер Штурвал (сервис 150) на этой сети.
|
||||
|
||||
Организацию создайте заранее в ЛК: Terraform её не создаёт и не удаляет.
|
||||
@@ -32,6 +33,7 @@ cd tf_examples/fullpipe_chain
|
||||
| `vdc_provider_vdc` | ЛК → создание vDC → «Provider VDC» | `Intel Broadwell 2.4` |
|
||||
| `vdc_storage_config` | ЛК → создание vDC → доступные дисковые политики | `SATA` |
|
||||
| `ip_space_name` | ЛК → карточка организации → внешние IP | `internet-ipv4-v1` |
|
||||
| `vm_user_public_key` | содержимое `~/.ssh/id_ed25519.pub` (`ssh-keygen` создаст пару, если её нет) | `ssh-ed25519 AAAA...` |
|
||||
|
||||
Остальные значения уже подставлены в `terraform.tfvars.example` — меняйте, если нужно.
|
||||
|
||||
@@ -48,7 +50,7 @@ nano terraform.tfvars # подставьте значения из шага
|
||||
|
||||
```bash
|
||||
terraform init # один раз — скачает провайдер
|
||||
terraform plan # покажет, что будет создано (5 ресурсов), ничего не меняет
|
||||
terraform plan # покажет, что будет создано (7 ресурсов: vDC, Edge, IP, SNAT, vApp, ВМ, Штурвал)
|
||||
terraform apply # создаст (подтвердить: yes)
|
||||
```
|
||||
|
||||
@@ -58,9 +60,12 @@ terraform apply # создаст (подтвердить: yes)
|
||||
terraform output # UUID и имена созданных услуг
|
||||
```
|
||||
|
||||
И в ЛК: появились vDC, Edge и кластер Штурвал, на организации выделены внешние IP,
|
||||
И в ЛК: появились vDC, Edge, vApp с ВМ и кластер Штурвал, на организации выделены внешние IP,
|
||||
на шлюзе включён SNAT. Повторный `terraform plan` должен показать `No changes`.
|
||||
|
||||
Адрес ВМ — в `terraform output vm_state_flat` (поля `externalConnect` и `internalConnect`),
|
||||
вход: `ssh <vm_user_login>@<externalConnect>`.
|
||||
|
||||
Кластер Штурвала создаётся десятки минут — провайдер ждёт его
|
||||
(`operation_timeout = "60m"`), а в ЛК он появится со статусом `running`.
|
||||
Адреса Kubernetes API и Ingress — в `terraform output shturval_state_params`
|
||||
@@ -81,14 +86,16 @@ terraform destroy
|
||||
| Edge | не трогается: у эджа нет операции `suspend` | `keep_on_destroy = true` |
|
||||
| SNAT | не выключается | `keep_on_destroy = true` |
|
||||
| Квота внешних IP | не меняется: адреса держит кластер | `keep_on_destroy = true` |
|
||||
| vApp | `suspend`: выключаются все ВМ внутри каталога | `suspend_on_destroy = true` |
|
||||
| ВМ | `suspend` | `suspend_on_destroy = true` |
|
||||
|
||||
Следующий `terraform apply` усыновит объекты по имени и разморозит кластер и vDC
|
||||
(`adopt_existing_on_create = true` → `resume`).
|
||||
**Организация не удаляется никогда.**
|
||||
|
||||
Полное удаление — осознанно: выставьте `keep_on_destroy = false` и
|
||||
`suspend_on_destroy = false`, порядок — кластер → `count = 0` → SNAT → Edge → vDC
|
||||
(vDC удаляется только через 14 дней после `suspend`).
|
||||
`suspend_on_destroy = false`, порядок — кластер → ВМ → vApp → `count = 0` → SNAT → Edge → vDC
|
||||
(vApp и vDC удаляются только через 14 дней после `suspend`).
|
||||
|
||||
## Состав файлов
|
||||
|
||||
@@ -100,6 +107,7 @@ terraform destroy
|
||||
| `vdc.tf` | виртуальный датацентр |
|
||||
| `edge.tf` | сетевой шлюз периметра (Edge) |
|
||||
| `modifiers.tf` | внешние IP на организации + SNAT на шлюзе |
|
||||
| `vm.tf` | vApp и ВМ: переменные vApp/ВМ, оба ресурса и их выводы (удаляется целиком — остальное не затронуто) |
|
||||
| `shturval.tf` | Kubernetes-кластер Штурвал: переменные Штурвала, группы воркеров и сам ресурс |
|
||||
| `outputs.tf` | UUID и имена созданных услуг (vDC, Edge, Штурвал) |
|
||||
| `terraform.tfvars.example` | шаблон значений (копируется в `terraform.tfvars`) |
|
||||
|
||||
Reference in New Issue
Block a user