osnabrugge / home-ops

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

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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
  • 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:

About

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

License:MIT License


Languages

Language:Shell 66.6%Language:Python 21.4%Language:Jinja 11.9%