Vegard Hagen 207b1892bf feat: cleanup of remodelling
move remodel folder down to root and delete old unused manifests
2024-07-21 23:21:12 +02:00
2024-07-21 23:21:12 +02:00
2024-07-21 23:21:12 +02:00
2024-07-21 23:21:12 +02:00
2022-05-26 15:50:10 +02:00
2024-07-21 23:21:12 +02:00

🪨 Homelab 🏡

Repository for home infrastructure and Kubernetes cluster using GitOps practices. Held together using Proxmox VE, OpenTofu, Talos, Kubernetes, Argo CD and copious amounts of YAML.


📖 Overview

This repository hosts the IaC (Infrastructure as Code) configuration for my homelab.

The Homelab is backed by Proxmox VE hypervisor nodes with VMs bootstrapped using OpenTofu/Terraform.

Most of the services run on Talos flavoured Kubernetes, though I'm also running a TrueNAS VM for storage and Home Assistant VM for home automation.

To organise all the configuration I've opted for an approach using Kustomized Helm with Argo CD which I've explained in more detail in this article.

I journal my homelab journey over at my self-hosted blog.

🧑‍💻 Getting Started

If you're new to Kubernetes I've written a fairly thorough guide on Bootstrapping k3s with Cilium. In the article I try to guide you from a fresh Debian 12 Bookworm install to a working cluster using the k3s flavour of Kubernetes with Cilium as a CNI and IngressController.

I've also written an article on how to get started with Kubernetes on Proxmox if virtualisation is more your thing.

I'm currently working on an article on how to bootstrap your own Talos-cluster using this repo.

⚙️ Core Components

  • Proxmox VE: Server management and KVM hypervisor.
  • OpenTofu: Open source infrastructure as code tool.
  • Cilium: eBPF-based Networking, Observability, Security.
  • Argo CD: Declarative, GitOps continuous delivery tool for Kubernetes.
  • Cert-manager: Cloud native certificate management.
  • Sealed-secrets: Encrypt your Secret into a SealedSecret, which is safe to store - even inside a public repository.

🗃️ Folder Structure

.
├── 📂 docs                # Documentation
├── 📂 k8s                 # Kubernetes manifests
│   ├── 📂 apps            # Applications on
│   ├── 📂 infra           # Infrastructure components
│   └── 📂 sets            # Bootstrapping ApplicationSets
└── 📂 tofu                # Tofu configuration
    ├── 📂 home-assistant  # Home Assistant VM
    └── 📂 kubernetes      # Kubernetes VM configuration
        ├── 📂 bootstrap   # Kubernetes bootstrap config
        └── 📂 talos       # Talos configuration 

🖥️ Hardware

Name Device CPU RAM Storage Purpose
Abel CWWK 6 LAN Port Intel i3-N305 32 GB DDR5 - Control-plane
Euclid ASUS ExpertCenter PN42 Intel N100 32 GB DDR4 - Control-plane
Cantor ASUS PRIME N100I-D D4 Intel N100 32 GB DDR4 5x8TB HDD RaidZ2 NAS/Control-plane
Gauss Dell Precision Tower 5810 Xeon E5-1650 v3 64 GB DDR4 ECC 14 TB HDD Compute

🏗️ Work in Progress

  • Set up AdGuard Home
  • Clean up DNS config
  • Renovate for automatic updates

👷 Future Projects

  • External DNS
  • Keycloak for auth
  • Implement NetBird
  • OPNSense/pfSense
  • Use BGP instead of ARP
  • Dynamic Resource Allocation for GPU
  • Local LLM
  • Cilium mTLS & SPIFFE/SPIRE

Proxmox logo Proxmox logo       OpenTofu logo OpenTofu logo       Kubernetes logo       Kubernetes logo
Description
No description provided
Readme MIT 1.1 MiB
Languages
HCL 100%