Skip to content

GitOps configuration and documentation of my Kubernetes homelab powered by FluxCD.

Notifications You must be signed in to change notification settings

pedrotchang/homelab

Repository files navigation

Welcome to my Home(lab) 🏡

https://www.pedrotchang.dev/

Introduction

Here you will find all tthe documentation of my homelab.

I am a big proponent to giving credit where it is due, and I would first like to take the time to thank Mischa van den Burg and the Kubecraft community. I could not learn to do all this without them!

If you have ever been curious about Cloud Native Technologies, DevOps or Kubernetes, then the place you want to be is in Kubecraft!

This repository is where I do all my testing, tinkering, and all-in-all a space for me to play, and work! It does have a serious note as well, since I will be working with my own personal data and require me to think about the whole process of deployment and maintanence!

Hardware & Cluster Provisioning

I like to start off talking about hardware first. It's I think a great base line to understand what I was working with.

I have currently 3 old hardware:
HP EliteDesk 800 G2 i5-6500T/16GB/256SSD
HP EliteDesk 800 G2 i5-6500T/16GB/256SSD
HP Laptop (atm do not know the model) 8GB/256SSD

I love Talos Linux. It has production grade security out of the box, is lightweight, and has robust features. At first, I used straight baremetal. But after sometime (a week...), I realized that Omni was the way to go.

I could spin up new clusters in seconds, and exposing external services is a breeze.

I have them in this structure:

Cluster Usage Hardware
Data PostgreSQL Database HP Laptop
Tachtit Apps HP 800 G2
Redacted Private Apps HP 800 G2

Apps

Infrastructure Applications 🚧 ( Some Apps are Under Construction)

Icon Name Description
Cilium logo Cilium An amazing CNI used for all my clusters. I opt out of Flannel for Cilium.
CloudnativePG logo CloudnativePG A Kubernetes operator for deploying and managing PostgreSQL clusters.
External Secrets logo External Secrets Operator A Kubernetes operator that synchronizes secrets from external APIs into Kubernetes. Currently, it uses secrets from my Azure Key Vault.
External DNS logo External DNS A Kubernetes addon that automates the management of DNS records based on Kubernetes resources.
FluxCD logo FluxCD A GitOps tool for automating Kubernetes deployments from Git repositories.
Grafana logo Grafana 🚧 A multi-platform analytics and visualization web application for monitoring data.
Prometheus logo Prometheus 🚧 An open-source monitoring and alerting toolkit for containers and microservices.
Renovate logo Renovate An automated dependency update tool that creates and maintains pull requests for your dependencies.

End User Applications

Icon Name Description
Linkding logo Linkding A self-hosted bookmark manager with tagging and search functionality.

Next Steps

  • Link my PostgreSQL Database in the data cluster to my TrueNAS Scale.
  • Have blob storage for my data cluster to create periodic backups.
  • Add on Immich, CommaFeed, Wallabag, to work with my data cluster, and also backup to blob storage.

About

GitOps configuration and documentation of my Kubernetes homelab powered by FluxCD.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published