https://github.com/cbirkenbeul/homelab
IaaC defined Homelab
https://github.com/cbirkenbeul/homelab
homelab homelab-setup iaac k8s-at-home proxmox
Last synced: 6 months ago
JSON representation
IaaC defined Homelab
- Host: GitHub
- URL: https://github.com/cbirkenbeul/homelab
- Owner: cbirkenbeul
- License: apache-2.0
- Created: 2023-01-01T17:14:58.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2024-10-19T10:10:38.000Z (12 months ago)
- Last Synced: 2024-10-19T12:36:47.517Z (12 months ago)
- Topics: homelab, homelab-setup, iaac, k8s-at-home, proxmox
- Language: Jinja
- Homepage:
- Size: 5.1 MB
- Stars: 16
- Watchers: 1
- Forks: 2
- Open Issues: 7
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
### My Home Operations repository :octocat:
_... managed with Flux, Renovate and GitHub Actions_ 🤖[](https://discord.gg/k8s-at-home)
[](https://www.talos.dev/)
[](https://github.com/cbirkenbeul/homelab/commits/main 'Commit History')
[](https://github.com/cbirkenbeul/homelab/stargazers 'This repo star count')[](https://github.com/kashalls/kromgo/)
[](https://github.com/kashalls/kromgo/)
[](https://github.com/kashalls/kromgo/)
[](https://github.com/kashalls/kromgo/)
[](https://github.com/kashalls/kromgo/)
[](https://github.com/kashalls/kromgo/)# k8s clusters backed by Flux v2
Kubernetes clusters using the [GitOps](https://www.weave.works/blog/what-is-gitops-really) tool [Flux](https://fluxcd.io/).
The Git repository is the driving the state of the Kubernetes clusters.
The awesome [Flux SOPS integration](https://toolkit.fluxcd.io/guides/mozilla-sops/) is used to encrypt secrets with gpg.## :computer: Software
The following apps are installed on the clusters.
| Software | Purpose |
| --------------------------------------------------------------------------------- | ------------------------------------------------------------- |
| [Flux2](https://fluxcd.io) | GitOps Tool managing the cluster |
| [NGINX Ingress Controller](https://kubernetes.github.io/ingress-nginx) | Cluster Ingress controller |
| [Rook-Ceph](https://rook.io/) | Cloud native distributed block storage for Kubernetes |
| [Cert-Manager](https://cert-manager.io) | Letsencrypt certificates with Cloudflare DNS |
| [ExternalDNS](https://github.com/kubernetes-sigs/external-dns) | Configure Cloudflare DNS Servers |
| [Kube-Prometheus Stack](https://github.com/prometheus-operator/kube-prometheus) | Prometheus & Exporters to monitor the cluster |
| [Grafana](https://grafana.com) | Monitoring & Logging Dashboard |
| [Alertmanager](https://prometheus.io/docs/alerting/latest/alertmanager) | Monitoring Alerts |
| [Grafana Loki](https://grafana.com/oss/loki) | Log aggregation system |
| [Kubernetes Metrics Server](https://github.com/kubernetes-sigs/metrics-server) | Source of container resource metrics for Kubernetes |## ☁️ Cloud Dependencies
While most of my infrastructure and workloads are self-hosted I do rely upon the cloud for certain key parts of my setup. This saves me from having to worry about two things. (1) Dealing with chicken/egg scenarios and (2) services I critically need whether my cluster is online or not.
| Service | Use | Cost |
|---------------------------------------------|-------------------------------------------------------------------|----------------|
| [1Password](https://1password.com/) | Secrets with [External Secrets](https://external-secrets.io/) | ~€80/yr |
| [NetCaup](https://www.netcup.de/) | Domain | ~€5/yr |
| [GitHub](https://github.com/) | Hosting this repository and continuous integration/deployments | Free |
| | | Total: ~€7/mo |---
## 🔧 Hardware
### Main Kubernetes Cluster
| Name | Device | CPU | OS Disk | Data Disk | RAM | OS | Purpose |
|-------|----------------|-----------|-----------|-----------|------|-------|-------------------|
| kube-01 | Dell 5090 | i5-10500T | 256 GB NVME | 128 GB SSD | 32 GB | Talos | k8s control-plane, worker |
| kube-02 | Dell 5090 | i5-10500T | 256 GB NVME | 128 GB SSD | 32 GB | Talos | k8s control-plane, worker |
| kube-03 | Dell 5090 | i5-10500T | 256 GB NVME | 128 GB SSD | 32 GB | Talos | k8s control-plane, worker |### Networking/UPS Hardware
| Device | Purpose |
|-----------------------------|------------------|
| Lenovo M920q (opnsense) | Network - Router |
| MikroTik CRS328-24P-4S+ | Network - Switch |
| Cyberpower USV OR600ERM | UPS |## :robot: Automation
[Renovate](https://www.whitesourcesoftware.com/free-developer-tools/renovate) Bot makes sure the components are never outdated.
It creates PullRequests when Helm charts or Docker images have newer versions available and even keeps Flux and k3s up-to-date.
## :handshake: Thanks
Big shout out to [k8s@home](https://github.com/k8s-at-home) and everyone from [awesome-home-kubernetes](https://github.com/k8s-at-home/awesome-home-kubernetes) for the inspiration :heart:
## Stars
[](https://star-history.com/#cbirkenbeul/homelab&Date)