This repository contains Infrastructure as Code (IaC) for deploying and managing a high-availability k3s cluster. The project uses modern IaC practices with helmfile and kustomize to maintain a clean, maintainable codebase.
This infrastructure stack provides:
- k3s cluster with 3 nodes
- kube-vip for control plane high availability
- Automatic failover for the Kubernetes API endpoint
- Traefik as the ingress controller
- External load balancing for services
- HTTP and HTTPS support
- Traefik dashboard for monitoring and management
- Example website deployment
- High availability configuration with multiple replicas
- Automatic load balancing
- DNS integration example
- Control Plane VIP: 192.168.68.20
- Node IPs: 192.168.68.21-23
- LoadBalancer IP: 10.0.10.2
.
├── cluster/
│ ├── base/ # Base cluster configurations
│ │ ├── kube-vip/ # HA control plane
│ │ ├── traefik/ # Ingress controller
│ │ └── apps/ # Application deployments
│ └── environments/ # Environment-specific configs
└── helmfile/ # Helm release definitions
Please see INSTALL.md for detailed installation and setup instructions.
- Fork the repository
- Create a new feature branch
- Make your changes
- Submit a pull request
MIT License - See LICENSE file for details