Исправлено вычисление nodes индекс

This commit is contained in:
admin 2026-03-11 10:20:09 +03:00
parent 63a2d92f12
commit 7ffe475cb3

View File

@ -1,51 +1,51 @@
Что содержит проект
Модуль OpenTofu для создания Kubernetes-нод в Proxmox.
Генерацию cloud-init конфигураций.
Параметризованную выдачу VMID, IP, hostname.
Готовый root-конфиг, использующий модуль k8s-node.
Возможность добавлять и удалять конкретные ноды без count.
Подготовку виртуальных машин к установке Kubernetes.
Структура репозитория
├── README.md
├── locals.tf
├── main.tf
├── modules
│ └── k8s-node
│ ├── cloud-config
│ ├── locals.tf
│ ├── main.tf
│ ├── outputs.tf
│ └── variables.tf
├── outputs.tf
├── providers.tf
├── terraform.tfstate
├── terraform.tfstate.backup
├── terraform.tfvars
└── variables.tf
Быстрый старт
1. Инициализация проекта
tofu init
2. Проверка плана
tofu plan
3. Создание инфраструктуры
tofu apply
1. Инициализация проекта
```
tofu init
```
2. Проверка плана
```
tofu plan
```
3. Создание инфраструктуры
```
tofu apply
```
После выполнения этой команды Proxmox создаст виртуальные машины, сгенерирует userdata для cloud-init и развернёт требуемые ноды.
Управление нодами
Модуль принимает объект вида:
```
nodes = {
master1 = { role = "master", cpu = 2, memory = 4096 }
worker1 = { role = "worker", cpu = 2, memory = 4096 }
worker2 = { role = "worker", cpu = 2, memory = 4096 }
}
master1 = { role = "master", cpu = 2, memory = 4096 }
worker1 = { role = "worker", cpu = 2, memory = 4096 }
worker2 = { role = "worker", cpu = 2, memory = 4096 }
}
```
Вы можете:
Добавить новую ноду, просто вписав её в map.
Удалить ноду, удалив её ключ из map.
Иметь несколько кластеров, копируя модуль в разные окружения.