Infraestructura como código para cluster Talos Kubernetes en KVM/Libvirt con despliegue totalmente automatizado.
- OS: Talos v1.11.5 (preinstalled QCOW2 images)
- Kubernetes: v1.34.0
- CNI: Flannel (instalado automáticamente)
- Infraestructura: KVM/libvirt con red NAT
- Control Plane: 1 nodo (10.0.0.11)
- Workers: 1 nodo (10.0.0.12)
- ✅ Despliegue 100% automatizado con Terraform
- ✅ Bootstrap automático del cluster
- ✅ CNI Flannel instalado automáticamente
- ✅ Scripts de setup ejecutados remotamente
- ✅ Kubeconfig generado en el hypervisor
- ✅ Sin intervención manual requerida
# Preparar imagen base (primera vez)
./scripts/prepare-talos-image.sh
# Desplegar cluster completo
./scripts/deploy-cluster.shTiempo total: ~8 minutos
Resultado: Cluster Kubernetes completamente funcional
# 1. Preparar imagen base
./scripts/prepare-talos-image.sh
# 2. Capa base (red + volúmenes)
terraform -chdir=layers/1-base init
terraform -chdir=layers/1-base apply -auto-approve
# 3. Control plane + bootstrap + CNI
terraform -chdir=layers/2-controlplane init
terraform -chdir=layers/2-controlplane apply -var-file=terraform.tfvars -auto-approve
# 4. Workers (opcional)
terraform -chdir=layers/3-workers apply -auto-approve| Comando | Descripción |
|---|---|
make help |
Ver todos los comandos |
make apply-all |
Desplegar cluster completo |
make destroy-all |
Destruir todo |
./clean-all.sh |
Limpieza completa |
scripts/
└── prepare-talos-image.sh # Pre-descarga RAW
layers/
├── 1-base/ # Red, volúmenes con backing RAW
├── 2-controlplane/ # CP + bootstrap
├── 3-workers/ # Workers + kubeconfig
└── templates/ # Configs Talos
modules/
├── talos-vm/ # Módulo VM (disco único)
└── talos-config/ # Módulo configuración
Enfoque RAW con Backing Files:
Imagen RAW base (referencia read-only)
│
├──> VM1 disk (QCOW2 backing file) ✅ Sin conflictos
└──> VM2 disk (QCOW2 backing file) ✅ Sin conflictos
- Cada VM tiene su propio QCOW2
- QCOW2 solo guarda diferencias vs. base
- Sin conflictos de bloqueo
- Talos pre-instalado
- Hypervisor: Ubuntu 25.04 @ 192.168.1.10
- OS: Talos Linux v1.11.2
- Red: 10.0.0.0/24
- Control Plane: 1 nodo (2 vCPU, 2GB RAM)
- Workers: 1 nodo (2 vCPU, 3GB RAM)
Ver layers/README.md para más detalles.