Skip to content
/ home Public

My homelab baremetal-to-k8s media server. Codified and GitOpsified

License

Notifications You must be signed in to change notification settings

ProfMoo/home

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

diagram

GitHub Stars GitHub last commit

A onedr0p home-ops inspired project, with some ProfMoo sprinkled in.

Overview

This is a mono repository for my homelab Kubernetes cluster. I strictly adhere to Infrastructure as Code (IaC) and GitOps practices using tools like Kubernetes, Terraform, Talos, Flux, Renovate, and GitHub Actions.

diagram

Infrastructure

I use Talos, Terraform, and Proxmox to spin up Kubernetes in a GitOps fashion in this directory.

Proxmox, a VM-management technology, is used to spin up VMs in the Proxmox cluster. These raw VMs are bootstrapped via Terraform with Talos configuration(s) that create a functional Kubernetes cluster with the initial cluster components (such as Flux) already deployed.

Kubernetes

I configure Kubernetes with GitOps via Flux. The Flux controllers scans the kubernetes directory for kustomization files to apply to the cluster.

Inspirations

The home-operations Discord group has been a huge inspiration for this repository. In particular, the repos by onedr0p, bjw-s, and buroa.

One major change from the typical home operations Discord setup is my desire to setup the Kubernetes clusters in VMs. For those repositories, I drew great inspiration from the two repos here and here.

TODO

  1. Remove unnecessary Grafana dashboards.
    1. Fix Grafana. Lots of dashboards were broken with a recent upgrade.
  2. Setup TrueNAS storage. Actually, just do Ceph/Rook with Volsync natively on the nodes for PVCs.
  3. Figure out the correct way to expose endpoints outside my local network (via Cloudflare)
  4. Move over all applications from windows machine:
    1. Jellyfin (needs GPU)
    2. Roon (might need a completely different setup to accomplish this)
    3. Factorio (need to figure out filesystem permission issue)