Skip to content

Cat-approved, 100% renewable, GMO-Free HomeLab k8s cluster managed via Flux2 & Renovate

License

Notifications You must be signed in to change notification settings

mchestr/home-cluster

Repository files navigation

My Home Kubernetes Cluster β˜„

... managed with Flux and Renovate πŸ€–

TalosΒ Β  KubernetesΒ Β  FluxΒ Β 

Age-DaysΒ  Uptime-DaysΒ  Node-CountΒ  Pod-CountΒ  CPU-UsageΒ  Memory-UsageΒ  Power-UsageΒ  Alerts

Overview

This repository is my home Kubernetes cluster in a declarative state. Flux watches the kubernetes folder and will make the changes to the cluster based on the YAML manifests.

πŸ’‘ Core Components

πŸ€– Automation

  • Github Actions for checking code formatting and running periodic jobs
  • Renovate keeps the application charts and container images up-to-date

πŸŒͺ Cloud Dependencies

Total cloud costs yearly is approximately ~$150/year.

🍝 Directories

This Git repository contains the following directories.

πŸ“ ansible         # Ansible playbooks my router
πŸ“ hacks           # Contains random scripts
πŸ“ kubernetes      # Kubernetes cluster defined as code
β”œβ”€πŸ“ bootstrap     # Flux installation to bootstrap cluster
β”œβ”€πŸ“ flux           # Main Flux configuration of repository
β””β”€πŸ“ apps          # Apps deployed into my cluster grouped by namespace
πŸ“ talos           # Contains the configuration for Talos operating system
πŸ“ terraform       # Contains Cloudflare terraform

Network

architecture-beta
    group home(cloud)[Home]

    service wan(cloud)[WAN]
    service udm(internet)[UDM] in home
    service uswa(internet)[USW Aggregate] in home
    service usw(internet)[USW] in home
    service ap(internet)[Wifi AP] in home
    service n1(server)[Node1] in home
    service n2(server)[Node2] in home
    service n3(server)[Node3] in home
    service nas(server)[NAS] in home
    service clients(server)[Other Clients] in home
    junction j1 in home
    junction j2 in home


    wan:R -- L:udm
    udm:R -- L:uswa
    usw:L -- R:uswa
    n1:T -- R:j1
    n2:B -- T:j1
    n3:T -- L:j1
    j1:B -- T:uswa
    j2:L -- B:ap
    j2:R -- B:clients
    j2:T -- B:usw
    nas:T -- B:j2
Loading

βš™ Hardware

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 community.

This repository was built off the onedr0p/template-cluster-k3s repository.

✨ Star History

Star History Chart

✏ License

See LICENSE