Skip to content
MrCurlsTTVPublic

About

Homelab using many technologies such as Kubernetes, Ansible, Terraform

Resources

Stars

3 stars

Watchers

1 watching

Forks

Repository files navigation

🚀 Kubernetes Infrastructure

Kubernetes ArgoCD Istio Terraform Ansible

Enterprise-grade Kubernetes GitOps platform with ArgoCD deploying media management, monitoring, authentication, and database services via Istio service mesh on RKE2 cluster.

Features • Infrastructure • Getting Started • Operations • Documentation


⚡ Quick Links

Category Link
🚀 Setup Getting Started Guide
📊 Monitor Service Dashboard
🎬 Media Request Portal
🔐 Auth SSO Portal
📦 Deploy ArgoCD

📑 Table of Contents

✨ Key Features

A production-grade Kubernetes platform built for home media and infrastructure:

🔄 Automation & GitOps

  • ArgoCD for declarative application management
  • Terraform & Ansible for infrastructure provisioning
  • Automated SSL certificate management

🎬 Media Stack

  • Complete Servarr suite (Radarr, Sonarr, Lidarr, etc.)
  • Qbittorrent & NZBGet with Cloudflare proxy
  • Overseerr for media requests

🔒 Enterprise Security

  • Authentik SSO for identity management
  • Istio service mesh with mTLS
  • Network policies and traffic encryption

📊 Observability

  • Grafana dashboards & alerting
  • Prometheus metrics collection
  • Loki log aggregation

🏗 Infrastructure

Cluster Architecture

  • 3 Nodes: Alvin, Simon, Theodore

    • 20 CPU cores, 64GB RAM each
    • 6TB distributed Ceph storage (2TB per node)
    • 2x 10Gb SFP+ ports with FRR/OSPF routing
    • 2x 1Gb bonded uplinks with LACP
    • 2x Thunderbolt 4 ports (configurable)
  • Virtual Machines per Node:

    • 1 Master node: 2 CPU, 4GB RAM, 50GB storage
    • 2 Worker nodes: 4 CPU, 8GB RAM, 100GB storage each
    • HAProxy nodes (Alvin/Simon): 1 CPU, 2GB RAM, 20GB storage

Storage & Networking

🗄️ Storage Infrastructure

  • NFS Server: 192.168.103.114
  • Vault Array: 2 vdevs of 4x16TB drives with flash cache
  • Flash Array: Enterprise SSD storage for high IOPS
  • Domain: mrcurls.org

📡 Network Features

  • HAProxy load balancing with failover
  • FRR/OSPF routing between nodes
  • LACP bonded uplinks
  • Cloudflare DNS integration

🚀 Getting Started

Prerequisites

  • RKE2 Kubernetes cluster
  • kubectl and Helm 3.x
  • Istio CLI (istioctl)
  • Git repository access
  • Cloudflare API token
  • NFS server access

Installation

  1. Clone:

    git clone https://github.com/MrCurlsTTV/homelab.git

🔒 Security & Backups

🛡️ Security Features

  • Istio service mesh with mTLS
  • Authentik SSO integration
  • Network policies and RBAC
  • Automated SSL certificates
  • VPN-routed torrent traffic

💾 Backup Strategy

  • Distributed Ceph storage
  • Automated database backups
  • NFS-based persistence
  • Node failover support
  • HAProxy redundancy

📊 Monitoring Stack

  • Metrics Collection:
    • Prometheus for metrics storage and alerting
    • Grafana Agent for node and pod metrics
  • Log Aggregation:
    • Loki for centralized logging
    • Grafana Agent for log collection
  • Visualization:
    • Grafana dashboards for metrics and logs
    • Integrated log-to-trace correlation
  • Tracing: Istio telemetry with trace correlation

🛠 Operations Guide

Service URLs

Core Services

Service URL Description
🔐 Authentik auth.mrcurls.org Identity & Access Management
📊 Grafana grafana.mrcurls.org Metrics & Monitoring
📦 ArgoCD argocd.mrcurls.org GitOps Deployment

Media Services

Service URL Description
🎬 Overseerr overseerr.mrcurls.org Media Requests
📺 Sonarr sonarr.mrcurls.org TV Shows
🎥 Radarr radarr.mrcurls.org Movies
🎵 Lidarr lidarr.mrcurls.org Music
🔍 Prowlarr prowlarr.mrcurls.org Indexer Management
⬇️ Qbittorrent qbittorrent.mrcurls.org Download Client

Storage Classes

Class Name Purpose Size Limit
vault-data-nfs Media storage 2TB+
flash-configs-nfs App configs <100GB
monitoring-data-nfs Metrics <500GB
influxdb-nfs Time series <200GB
etcd-nfs Backups <50GB

Maintenance Tasks

  1. Adding Applications:

    • Create manifests in namespace directory
    • Add ArgoCD application definition
    • Commit and let ArgoCD sync
  2. Planned Upgrades:

    • Migrate to OpenTofu
    • Split repository structure
    • Declarative Authentik deployment
    • CI/CD integration
    • Servarr template standardization
    • Templatize some of the manifests for servarr.
    • Make the Readme on Github look pretty.

About

Homelab using many technologies such as Kubernetes, Ansible, Terraform

Resources

Stars

3 stars

Watchers

1 watching

Forks

Contributors

Languages