| Ko

Homelab Build Log #9: Prometheus Monitoring

Overview In the previous post, I pulled together the overall IDP structure using Helm chart-based project templates and ArgoCD ApplicationSet. This post covers how I added Prometheus and Grafana for metrics, plus Loki for centralized log collection and analysis. Together, they form the monitoring stack for the homelab Kubernetes cluster. The Need for Monitoring When operating a homelab Kubernetes cluster, I need to keep an eye on node and pod status, resource usage such as CPU and memory, whether applications are behaving normally, and the logs that help explain failures. For that, I used the following tools. ...

February 28, 2025 · 7 min · 1360 words · In-Jun

Homelab Build Log #8: Building an IDP, Part 2

Overview In the previous post, I set up Harbor container registry, Argo Events, and Argo Workflows as the foundation of the IDP. This post covers integrating those components with ArgoCD and designing Helm chart-based project templates to turn them into an Internal Developer Platform (IDP) that can deploy projects from a single YAML file. What Is an Internal Developer Platform? What is an Internal Developer Platform (IDP)? ...

February 28, 2025 · 12 min · 2498 words · In-Jun

Homelab Build Log #7: IDP Foundations

Overview In the previous post, we installed HashiCorp Vault to build a secure secrets management system. This post covers the foundational pieces I set up before the internal developer platform itself: Harbor container registry, Argo Events, and Argo Workflows. Foundation Components for the IDP For the IDP I had in mind, I first needed the following core components: Container Registry: A central repository for storing and distributing built container images, enabling self-management of images without depending on public registries like Docker Hub. Event Processing System: Responsible for detecting various events such as code changes in Git repositories and webhook receipts, and triggering subsequent tasks in response. Workflow Engine: An engine for defining and executing actual CI/CD tasks such as code building, test execution, and container image creation. GitOps Deployment System: A system that automatically synchronizes the desired state defined in Git repositories to the cluster. ArgoCD, which was installed in an earlier post in this series, handles this role. In this post, I set up the container registry, event processing system, and workflow engine using Harbor, Argo Events, and Argo Workflows. In the next post, I connect these pieces to ArgoCD and the project template structure so they start to behave like an actual IDP. ...

February 28, 2025 · 9 min · 1764 words · In-Jun

Homelab Build Log #6: Vault Secrets Management

Overview In the previous post, we configured DDNS and port forwarding to enable external internet access to services running in the homelab Kubernetes cluster. This post covers how to install and configure HashiCorp Vault to securely manage sensitive information like passwords, API keys, and certificates in the Kubernetes cluster. Limitations of Default Kubernetes Secrets Secret management was the biggest challenge while building the homelab environment using GitOps methodology. Several limitations became clear when using default Kubernetes Secrets. ...

February 26, 2025 · 11 min · 2186 words · In-Jun

Homelab Build Log #5: External Access

Overview In the previous post, we installed the Traefik ingress controller and configured secure access to management interfaces by separating internal and external services. This post covers how to configure DDNS and port forwarding to enable external internet access to services running in the homelab Kubernetes cluster. Network Architecture Summary First, let’s briefly summarize the network architecture configured in the previous post: Internal Load Balancer (192.168.0.200): Exposes only management interfaces like ArgoCD, Longhorn, and Traefik dashboard, accessible only from within the internal network. External Load Balancer (192.168.0.201): Exposes only public services like blogs and personal projects, accessible from the external internet through router port forwarding. ...

February 26, 2025 · 9 min · 1884 words · In-Jun

Homelab Build Log #4: Internal Services

Overview In the previous post, we installed the Longhorn distributed storage system to build a persistent storage environment where data is retained even when pods restart or move to different nodes. This post covers installing the Traefik ingress controller on a homelab Kubernetes cluster and configuring secure access to management interfaces from the internal network. Choosing an Ingress Controller There are several methods for exposing Kubernetes services externally in a homelab environment: ...

February 25, 2025 · 8 min · 1662 words · In-Jun

Homelab Build Log #3: Longhorn Storage

Overview In the previous post, I set up a GitOps environment by installing ArgoCD. This post covers how I installed and configured the Longhorn distributed storage system in my homelab Kubernetes cluster, along with what I learned from comparing storage options and why persistent storage turned out to be necessary. Storage Challenges in a Homelab Environment One of the biggest challenges when building a homelab Kubernetes cluster was configuring storage. Most practical applications such as databases, monitoring tools, and backup systems require persistent storage that maintains data even when pods restart or move to different nodes. ...

February 25, 2025 · 9 min · 1724 words · In-Jun

Homelab Build Log #2: ArgoCD GitOps

Overview In the previous post, we set up a homelab Kubernetes cluster using Dell OptiPlex Micro machines and completed the basic configuration. This post covers installing ArgoCD, a GitOps tool for declaratively managing all cluster components from a Git repository, and applying the App of Apps pattern to build a scalable infrastructure management system. Understanding GitOps What is GitOps? GitOps is an operational model first proposed by Alexis Richardson of Weaveworks in 2017. It uses a Git repository as the Single Source of Truth for infrastructure and application configurations. All infrastructure changes are tracked through Git commits, reviewed via Pull Requests, and reflected in the actual environment through automated processes, enabling infrastructure to be managed like code. ...

February 25, 2025 · 11 min · 2168 words · In-Jun

Homelab Build Log #1: Mini PC Kubernetes Cluster Setup

Overview This series is a place to record the parts of my homelab that feel worth writing down. Rather than treating it as a step-by-step guide, I want it to focus more on what I built and why I chose to put it together that way. This first post covers the hardware I used and the initial setup for a Mini PC-based Kubernetes cluster. The hardware setup uses five Dell OptiPlex Micro units as cluster nodes, with a TP-Link router and switch handling the network. The Dell OptiPlex Micro is a low-power mini PC that can be purchased affordably on the used market. The models used here are equipped with 9th-generation i5 CPUs, 16GB of memory, and 256GB SSDs, which is sufficient for handling Kubernetes workloads. ...

February 24, 2025 · 9 min · 1735 words · In-Jun
[email protected]