Skip to content

k1nho/homelab

Repository files navigation

Kinho's Homelab Cover

Welcome! This is my personal Kubernetes homelab, built as a platform for learning, experimenting, and refining cloud-native technologies. Using a GitOps-driven approach, it hosts and manages the applications and services that support my day-to-day self-hosted workloads listed in the Applications section.


The Homelab Series

The progress of the homelab is documented in a storytelling format through my blog, where I share updates, challenges, and lessons learned during the development and expansion of the cluster.


Architecture

This repository uses the app of apps pattern to trigger the installation all the Kubernetes resources with ArgoCD. Moreover, it uses a three tier structure based on environment hierarchy (homelab, gke, eks, lke, jet).

                +---------------------------+
                |         App of Apps       | Tier 3
                |         (root.yaml)       |
                +---------------------------+
                               |
                               v
                +---------------------------+
                |       ApplicationSet      | Tier 2
                |         (appsets)         |
                +---------------------------+
                               |
                               | creates Argo CD
                               | Applications from
                               v
                +---------------------------+
                |     Helm / Kustomize      | Tier 1
                |        Manifests          |
                +---------------------------+
  • root.yaml: The entrypoint defines a bootstrap application that points to all the homelab ApplicationSets
  • appsets: Contains all the ApplicationSet Custom Resource to apply
  • kustomize-apps: Contains all the applications that are installed via Kustomize
  • charts: Contains all the applications that are installed via Helm Charts
  • standby: Apps archive, serves as the uninstall place for apps.
  • docs: The homelab documentation
  • charts/<app>/envs, kustomize-apps/<app>/envs: Subdirectory that controls the installation of a tier 1 into the corresponding k8s environment.

Applications

Applications running in the cluster are split by the installation strategy which can be: Kustomize, and Helm Charts.

📜 Kustomize

App Description Homelab Kustomize
Argo UI The Argo UI Kustomize
Blog My personal blog Kustomize
Homepage Cluster Dashboard Entrypoint Kustomize
Koffan Shopping List App Kustomize
Linkding Bookmark manager application Kustomize
Uptime Kuma Service Uptime Monitoring Kustomize

☸️ Helm

App Description Chart Values
Cilium Cilium is the CNI of choice for the cluster Chart Values
Cloud Native PG Kubernetes operator to manage the full lifecycle of a PostgreSQL database cluster Chart Values
Infisical Secrets Operator Implements the external secret operator pattern (ESO) to manage Kubernetes secrets in the cluster Chart Values
Kube-Prometheus Stack Monitoring stack with Prometheus and Grafana Chart Values
OpenCost Cost monitoring stack Chart Values
Tailscale Operator Tailscale kubernetes operator (enable ingress to access services on all authorized tailnet devices) Chart Values
Traefik Traefik serves as an ingress controller for cloud based clusters Chart Values

About

⎈ K3s GitOps Powered Homelab

Topics

Resources

License

Stars

2 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors