This repository represents my HomeLab setup, showcasing an integration of various modern technologies for managing a Kubernetes-based infrastructure. It includes configurations for virtualization, networking, storage, and application deployment.
- Proxmox Server management and virtualization.
- Terraform Infrastructure as Code.
- Talos Linux Kubernetes OS.
- Cilium Network security and observability.
- Traefik Edge Router due to its simplicity and TLS passthrough capabilities and my router limitations.
- Cert-Manager Certificate management.
- Proxmox CSI Storage provisioning.
- Sealed Secrets Encrypted secrets management, which is safe to store in Git.
- Gateway API Next generation of Kubernetes Ingress.
- Grafana Cloud Monitoring and observability of the cluster.
- ArgoCD GitOps continuous delivery tool for declarative Kubernetes management.
- Home Assistant Operating System (HAOS) - Home automation.
- Immich - Google Photos alternative.
- Pi-hole - DNS and DHCP server. (currently under the scope of the repository)
- many more to come...
.
├── k8s
│ ├── apps # applications
│ │ ├── external # external-facing applications
│ │ └── internal # internal services
│ └── infra # k8s infrastructure
│ ├── argocd # gitops deployment
│ ├── network # networking components
│ ├── security # security components
│ └── storage # storage components
└── terraform
└── modules
├── monitoring # grafana cloud monitoring
├── proxmox # talos vm deployment
├── proxmox-csi-plugin # proxmox storage for k8s
├── sealed-secrets # k8s secret management
├── talos # talos cluster deployment
└── traefik # traefik tls passthrough lxc container
The cluster uses ArgoCD for GitOps-based continuous delivery. All applications and infrastructure components are automatically synchronized from this Git repository.
- UI Access: https://argocd.ravil.space
- Auto-sync: All applications are configured for automatic synchronization
- Self-healing: Automatic correction of manual cluster changes to match Git state
- Application Structure:
- Infrastructure components (
k8s/infra/*
) - Internal services (glance, isponsorblocktv)
- External applications (
k8s/apps/external/*
)
- Infrastructure components (
# Get ArgoCD admin password
make argocd-password
# Restart ArgoCD components
make argocd-restart
# View application status
kubectl -n argocd get applications
Planned features for this project include: