https://github.com/mchestr/home-cluster
Cat-approved, 100% renewable, GMO-Free HomeLab k8s cluster managed via Flux2 & Renovate
https://github.com/mchestr/home-cluster
gitops kubernetes kubesearch mise renovate selfhosted talos taskfile terraform
Last synced: about 14 hours ago
JSON representation
Cat-approved, 100% renewable, GMO-Free HomeLab k8s cluster managed via Flux2 & Renovate
- Host: GitHub
- URL: https://github.com/mchestr/home-cluster
- Owner: mchestr
- License: wtfpl
- Created: 2022-05-24T06:05:39.000Z (almost 4 years ago)
- Default Branch: main
- Last Pushed: 2026-03-05T16:26:44.000Z (7 days ago)
- Last Synced: 2026-03-05T17:53:37.791Z (7 days ago)
- Topics: gitops, kubernetes, kubesearch, mise, renovate, selfhosted, talos, taskfile, terraform
- Language: Shell
- Homepage: http://docs.chestr.dev/
- Size: 19.4 MB
- Stars: 155
- Watchers: 1
- Forks: 2
- Open Issues: 17
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Codeowners: .github/CODEOWNERS
Awesome Lists containing this project
README

## My Home Kubernetes Cluster 
... managed with Flux and Renovate 
[](https://talos.dev "Talos OS")
[](https://kubernetes.io)
[](https://fluxcd.io)

[](https://status.chestr.dev)
[](https://status.chestr.dev)
[](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/)
[](https://github.com/kashalls/kromgo/)
[](https://github.com/kashalls/kromgo)
## Overview
This repository is my home Kubernetes cluster in a declarative state. [Flux](https://github.com/fluxcd/flux2) watches the [kubernetes](./kubernetes/) folder and will make the changes to the cluster based on the YAML manifests.
###
Core Components
Core components that form the foundation of the cluster:
- [backube/volsync](https://github.com/backube/volsync) and [backube/snapscheduler](https://github.com/backube/snapscheduler): Backup and recovery of persistent volume claims.
- [cilium/cilium](https://github.com/cilium/cilium): Kubernetes CNI.
- [envoyproxy/envoy](https://github.com/envoyproxy/gateway): Kubernetes-based application gateway using [Kubernetes Gateway API](https://gateway-api.sigs.k8s.io/).
- [external-secrets/external-secrets](https://github.com/external-secrets/external-secrets): Managed Kubernetes secrets using [1Password Connect](https://github.com/1Password/connect).
- [jetstack/cert-manager](https://cert-manager.io/docs/): Creates SSL certificates for services in my Kubernetes cluster.
- [kubernetes-sigs/external-dns](https://github.com/kubernetes-sigs/external-dns): Automatically manages DNS records from my cluster in CloudFlare.
- [rancher/system-upgrade-controller](https://github.com/rancher/system-upgrade-controller): Handles Kubernetes and Talos upgrades automatically.
- [rook/rook](https://github.com/rook/rook): Distributed block storage for persistent storage.
- [siderolabs/talos](https://www.talos.dev/): The Kubernetes Operating System.
###
Observability
For observability and monitoring of the cluster the following software is used:
- [fluent/fluent-bit](https://github.com/fluent/fluent-bit): Log processor.
- [grafana/grafana](https://github.com/grafana/grafana): Data visualization platform.
- [prometheus/alertmanager](https://github.com/prometheus/alertmanager): Handles processing and sending alerts.
- [pushover](https://pushover.net): Handles receiving alerts on my devices.
- [TwiN/gatus](https://github.com/TwiN/gatus): High level status dashboard.
- [VictoriaMetrics/VictoriaLogs](https://docs.victoriametrics.com/victorialogs/): Database for logs.
- [prometheus/prometheus](https://github.com/prometheus/prometheus): Time series database for metrics.
###
Automation
- [Github Actions](https://docs.github.com/en/actions) for checking code formatting and running periodic jobs
- [Renovate](https://github.com/renovatebot/renovate) keeps the application charts and container images up-to-date
###
Cloud Dependencies
- [1Password](https://1password.com) for managing secrets via external-secrets.
- [AWS SES](https://aws.amazon.com/ses/) for sending emails.
- [Cloudflare](https://cloudflare.com) tunnels for exposing services & creating certificates & managing domains.
- [Cloudflare R2](https://www.cloudflare.com/developer-platform/r2/) for daily backups.
- [Pushover](https://pushover.net/) for sending alerts.
Total cloud costs yearly is approximately ~$150/year.
###
Directories
This Git repository contains the following directories.
```sh
📁 bootstrap # Flux installation to bootstrap cluster
📁 docs # Docs
📁 hacks # Contains random scripts
📁 kubernetes # Kubernetes cluster defined as code
├─📁 flux # Main Flux configuration of repository
├─📁 components # Flux components
└─📁 apps # Apps deployed into my cluster grouped by namespace
📁 talos # Contains the configuration for Talos operating system
📁 terraform # Contains Cloudflare terraform
```
##
Hardware
Checkout my rack

| Device | Count | OS Disk Size | Data Disk Size | Ram | Operating System | Purpose |
|-------------------------------------------------------|-------|---------------|----------------------|---------|------------------|-------------------|
| UDM-Pro-Max | 1 | - | - | - | UniFi | Router |
| USW-Pro-Aggregation | 1 | - | - | - | UniFi | Switch |
| USW-Pro-Max-24-PoE | 1 | - | - | - | UniFi | Switch |
| UAP-AC-Lite | 1 | - | - | - | UniFi | WiFi AP |
| ER-10X | 1 | - | - | - | EdgeOS | Switch |
| PiKVM V4 Mini | 1 | - | - | - | PiKVM | KVM |
| TESmart HDMI KVM Switch 8 Ports | 1 | - | - | - | - | KVM Switch |
| CyberPower CP1500PFCRM2U | 1 | - | - | | - | UPS |
| USP-PDU-Pro | 1 | - | - | - | UniFi | PDU |
| Synology DS920+ | 1 | - | 2x8TB & 2x16TB | 20GB | DSM | NAS |
| MS-01 i9-13900H | 3 | 1TB | 2TB | 96GB | Talos | Control Plane |
---
##
Graditude and Thanks
Thanks to all the people who donate their time to the [Kubernetes @Home](https://github.com/k8s-at-home/) community.
This repository was built off the [onedr0p/template-cluster-k3s](https://github.com/onedr0p/flux-cluster-template) repository.
##
Star History
[](https://star-history.com/#mchestr/home-cluster&Date)
##
License
See [LICENSE](./LICENSE)