Skip to content

Home operations repository for a single-node Kubernetes cluster on Talos Linux, managed with Flux, SOPS, and GitHub Actions.

License

Notifications You must be signed in to change notification settings

Heavybullets8/heavy-ops

Repository files navigation

My Home Operations Repository

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


📖 Overview

This repository contains the configuration for my home infrastructure and Kubernetes cluster. I follow Infrastructure as Code (IaC) and GitOps practices using tools like Talos Linux, Kubernetes, Flux, SOPS, and GitHub Actions.


⛵ Kubernetes

My Kubernetes cluster is deployed with Talos Linux on a single powerful node. For persistent storage, I use OpenEBS HostPath and OpenEBS ZFS.

Core Components

  • cert-manager: Automates the creation and management of TLS certificates.
  • cilium: Provides networking, security, and observability for the cluster.
  • external-secrets: Syncs secrets from external APIs into Kubernetes.
  • ingress-nginx: Acts as a reverse proxy and load balancer for Kubernetes services.
  • sops: Encrypts and manages secrets within Git.

GitOps and Automation

Flux monitors the kubernetes directory in this repository and ensures the cluster state matches the configuration. Changes pushed to the main branch are automatically applied to the cluster.

I use GitHub Actions for continuous integration and deployment workflows, leveraging self-hosted GitHub runners within the cluster for execution.


☁️ Cloud Dependencies

While the core infrastructure is self-hosted, I utilize a few cloud services for critical functionalities:

Service Purpose Cost
Migadu Email hosting ~$90/year
Cloudflare DNS, domain management and R2 bucket ~$8/month
GitHub Repository hosting and CI/CD pipelines Free
Pushover Application and system notifications $5 one-time

🌐 DNS and Networking

My network is managed using a UniFi Dream Machine Pro Max, which serves as the router, firewall, and DNS server for my home network.


🔧 Hardware

Kubernetes Node

  • Case: Fractal Design Torrent
  • Motherboard: ASUS Pro WS TRX50-SAGE
  • CPU: AMD Ryzen™ Threadripper™ 7970X (32 cores, 64 threads)
  • RAM: 192 GB (G.SKILL Zeta R5 NEO Series DDR5, 4× 48 GB)
  • Boot Drive: Intel Optane 905p 960 GB (formatted with XFS)
  • Persistent Volumes:
    • 4× Intel Optane 905p 1.5 TB (configured as 2 mirrored VDEVs using ZFS)
    • Adapter: GLOTRENDS PU41 Quad U.2 SSD to PCIe 4.0 X16
  • GPU: NVIDIA Quadro P2200
  • Cooling: SilverStone Technology XE360-TR5 AIO cooler
  • Power Supply: FSP Twins Pro 900 W
  • Network:
    • Mellanox X5 ADAT 25 Gb

NAS Server

  • CPU: AMD Ryzen Threadripper 3960X (24 cores, 48 threads)
  • RAM: 256 GB
  • Storage:
    • HDDs: 12× 18 TB WD Red Pro (configured as 2 VDEVs in RAIDZ2)
    • SLOG: 2× 2 TB WD 850x SSDs
  • Power Supply: FSP Twins Pro 900 W
  • Network:
    • Mellanox X5 ADAT 25 Gb

🤝 Acknowledgments

I would like to express my gratitude to the following resources and communities that have significantly contributed to my home operations setup: