Skip to content

alfi0812/talos

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

4,672 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐ŸงŠ Personal Talos Kubernetes Cluster

A self-hosted, GitOps-driven Kubernetes cluster built on Talos Linux, focused on reliability, observability, and clean automation.

Truenasย ย  Talosย ย  Kubernetesย ย  Fluxย ย 

Home-Internetย ย  Status-Pageย ย  Alertmanager

Age-Daysย ย  Uptime-Daysย ย  Node-Countย ย  Pod-Countย ย  CPU-Usageย ย  Memory-Usageย ย  Alertsย ย 


๐Ÿ“Œ Overview

This repository contains the full GitOps-managed configuration for my personal Kubernetes cluster. The cluster runs on Talos Linux and is fully declarative: every component, application, and configuration is defined in Git and continuously reconciled using FluxCD.

Key goals of this setup:

  • ๐Ÿ” Reproducibility โ€“ rebuild the entire cluster from Git
  • ๐Ÿ”’ Immutability & Security โ€“ minimal OS, no SSH, API-driven management
  • ๐Ÿ“ˆ Observability โ€“ metrics, alerts, and public status visibility
  • ๐Ÿค– Automation-first โ€“ updates, deployments, and testing without manual intervention

๐Ÿง  Design Decisions

Why Talos Linux?

  • Immutable, minimal OS reduces attack surface
  • No SSH or package manager
  • Fully API-driven, ideal for GitOps-based Kubernetes clusters

Why FluxCD?

  • Continuous reconciliation instead of one-shot deployments
  • Native Kubernetes integration
  • Works seamlessly with SOPS for encrypted secrets

Why a Single-Node Cluster?

  • Simplifies operations and reduces complexity
  • Ideal for homelab and learning environments
  • Focuses on reproducibility rather than high availability

๐Ÿ“ก Networking Assumptions

This cluster assumes a simple and reliable home network environment.

  • The Talos VM relies on the Fritzbox router for primary network connectivity
  • No advanced routing, BGP, or multi-homing is assumed
  • Networking is optimized for simplicity and stability rather than redundancy
  • External access is handled via managed ingress and tunnels where required

๐Ÿงฉ Core Components

Component Description
Kubernetes Container orchestration platform for running and managing workloads
Talos Linux Immutable, API-driven Linux distribution purpose-built for Kubernetes
FluxCD GitOps operator used for continuous reconciliation of cluster state
Mend Renovate Automatically tracks and updates container images and dependencies
GitHub Actions CI pipelines for validation, linting, and testing of cluster configs
SOPS Encryption of all secrets and credentials stored in Git, integrated with FluxCD
ClusterTool Bootstrap tool from TrueForge used to build the basic Cluster Structure and Setup

๐Ÿ—‚ Directory Structure

clusters/
โ””โ”€โ”€ main/
    โ”œโ”€โ”€ components/   # Common components applied to multiple parts of the cluster
    โ”œโ”€โ”€ kubernetes/   # Applications and Kubernetes workloads
    โ””โ”€โ”€ talos/        # Talos Linux machine and cluster configuration

repositories/
โ”œโ”€โ”€ entries/           # Repository entry definitions
โ”œโ”€โ”€ git/               # Flux GitRepository sources
โ”œโ”€โ”€ helm/              # Flux HelmRepository sources
โ””โ”€โ”€ oci/               # Flux OCIRepository sources

๐Ÿ” Secrets Management

All secrets and credentials are stored in this repository encrypted with SOPS.

  • Secrets are committed to Git in encrypted form
  • Decryption happens inside the cluster via FluxCD
  • Decryption keys are managed externally and are never stored in Git
  • This enables full GitOps workflows without exposing sensitive data

โ˜๏ธ Cloud & External Dependencies

Service Usage
Cloudflare DNS management, tunnels, and S3-compatible object storage
GitHub Source control, CI, and GitOps reconciliation source

๐Ÿ–ฅ Hardware

TrueNAS Storage Server

Component Specification
CPU AMD Ryzen 7 5700G
RAM 64 GB DDR4 @ 3200 MHz
SAS Controller LSI SAS 9300-16i
Boot Drive 1ร— Crucial P310 500 GB NVMe
Metadata VDEV 2ร— Samsung 870 EVO 1 TB (Mirror)
Data VDEV 6ร— Seagate Exos X24 16 TB HDD
Remote Management NanoKVM PCIe Edition

Talos Kubernetes Node

Component Specification
CPU AMD Ryzen 9 9950X
RAM 128 GB DDR5 @ 5600 MHz
Storage 2 TB Crucial P3 Plus NVMe
GPU Sparkle Intel Arc A770 (16 GB)
Remote Management NanoKVM PCIe Edition

๐Ÿ“Š Monitoring & Status

  • ๐Ÿ“ˆ Metrics & Dashboards via Prometheus-compatible tooling
  • ๐Ÿšจ Alerting with Alertmanager
  • ๐ŸŒ Public Status Page for service and connectivity visibility
  • ๐Ÿงฎ Cluster Statistics exposed via Kromgo and Shields.io

๐Ÿ™ Acknowledgements

This cluster is heavily inspired by and built upon the excellent work of:

Their open-source contributions and documentation made this setup possible.


โš ๏ธ Note This repository is public for transparency and learning purposes. Secrets and credentials are stored in Git in encrypted form using SOPS. Decryption keys are managed externally and are not committed to the repository, ensuring sensitive values remain protected.

๐Ÿงช This cluster is used as a learning, testing, and long-running homelab environment.
Configurations may evolve as new Kubernetes, Talos, or GitOps features are evaluated.

About

Personal Talos Cluster

Topics

Resources

Stars

8 stars

Watchers

0 watching

Forks

Contributors

Languages