Skip to content

The source of truth for my home cluster to reconcile from following GitOps where possible.

License

Notifications You must be signed in to change notification settings

osnabrugge/home-ops

Repository files navigation

My home operations repository

... managed with Flux, Renovate and GitHub Actions 🤖

Kubernetes Renovate

Discord Home-Internet


📗Overview

This repo is the sources of truth for a semi-hyperconverged k3s cluster that I maintain at home. To best of my ability, I've tried to document the cluster's configuration and the tools I use to manage it. I hope that it can serve as a reference for others who are interested in building their own cluster.

Cluster Components

  • Authentication
  • Networking
    • cilium CNI providing networking between pods, services and provides L2 loadbalancing
    • ingress-nginx for reverse proxy ingress and loadbalancing
    • multus enables pods to access seperate VLANs & physical networks using:
      • sr-iov plugin attach pods to sr-iov capable interfaces & applicable VFs
      • whereabouts to ensure consistent IP addressing across physical nodes
  • Storage
    • openebs provides ephemeral storage for pods
    • rook-ceph manages a ceph cluster that provides replicated persistent storage
    • azure blob storage cold storage for backups and volume snapshots
  • Cluster Management
    • actions-runner-controller runs GitHub Actions as self-hosted runners on this cluster
    • flux GitOps operator that keeps this cluster in sync with this repository
  • DNS Management
    • external-dns publishes DNS records and automates split-horizon DNS between:
      • cloudflare for explicitly annotated ingress objects
      • pi-hole for all servies and ingress objects
  • Backup

🤝 Thanks

A lot of inspiration for my cluster came from the members of the Home Operations Discord community. They are responsible for these great resources:

  • Flux Cluster Template is a community driven template that provides a great starting point for anyone who has limited knowledge of Kubernetes and GitOps
  • Kubsearch.dev is a search engine for apps deployed across the community's clusters. It's a great way to find inspiration or solve challenges for your own cluster

Specifc thanks to the following members for their contributions and where I drew inspiration from: