Skip to content

riupie/infra-lab

Repository files navigation

Infra Lab

This project is designed as a hands-on learning experience to set up an on-premise Kubernetes cluster using KVM. It covers the deployment of core Kubernetes services and demonstrates how to automate infrastructure setup and application delivery using Infrastructure as Code (IaC) and GitOps principles, leveraging tools like Terraform and ArgoCD.

Every step of the process—from planning and designing the cluster architecture to manually configuring each component—has been carefully documented. These guides are available in the documentation section, making it easy for anyone to replicate and build their own home Kubernetes cluster.

Directory Hierarchy

.
├── addons
│   └── bind9
├── docs
│   ├── assets
│   ├── getting-started
│   ├── storage
│   └── stylesheets
├── jarvis-kvm
│   ├── ansible
│   └── terraform
├── k0s
│   └── k0sctl.yaml
├── LICENSE
├── mkdocs.yml
├── README.md
└── requirements.txt

.git-crypt: contains gpg files of collaborators who can open encrypted git-crypt file.

jarvis-kvm: terraform code to provision VMs and other resources on top KVM hypervisor.

Technology Stack

The following picture shows the high level components of opensource solutions used so far in the cluster, which installation process has been documented and its deployment has been automated with Open Tofu:

Name Description
ArgoCD GitOps tool
Cloud-init Automate OS initial installation
Ceph Distributed Storage
Containerd Container runtime integrated with K0S
cilium logo Calico Kubernetes Networking (CNI) and Load Balancer
CoreDNS Kubernetes DNS
Debian Cluster nodes OS & Host OS
external-dns logo ExternalDNS External DNS synchronization
Cert-manager TLS Certificates management
K0S The simple, solid & certified Kubernetes distribution that works on any infrastructure
KVM Full virtualization solution for Linux on x86 hardware containing virtualization extensions (Intel VT or AMD-V)
MetalLB Load-balancer implementation for bare metal Kubernetes clusters

About

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •  

Languages