Homelab GitOps

Prerequisite: This project requires the K3s cluster set up in K3s Lab Automation. Complete that project first to provision the servers and VMs.

Kubernetes homelab cluster managed with Kustomize and deployed via Argo CD using GitOps principles.

Overview

A GitOps-based Kubernetes homelab that uses Argo CD for continuous deployment and Kustomize for configuration management. The cluster runs Google’s Online Boutique microservices demo application as a proof-of-concept.

Role

Owner - Designed and implemented the GitOps workflow

Technologies

  • K3s Kubernetes (1 control-plane + 3 workers)
  • Argo CD (GitOps engine)
  • Kustomize (configuration management)
  • Traefik (ingress controller)
  • VMware Workstation (virtualization)
  • Git (version control)

Repository

GitHub: jmartinez-homelab-gitops

Screenshot

Homelab GitOps Screenshot

Architecture

  • Cluster: K3s on VMware Workstation VMs
  • GitOps: Argo CD for declarative continuous deployment
  • Applications: Google Online Boutique microservices demo
  • Ingress: Traefik (K3s default)
  • Structure: Apps, Bootstrap, Infrastructure directories

Key Features

  • Declarative GitOps workflow with Argo CD
  • Kustomize overlays for environment-specific configurations
  • App of Apps pattern for managing multiple applications
  • Bootstrap script for initial cluster setup
  • Traefik ingress for external access

Directory Structure

├── apps/online-boutique/     # Application deployments
├── bootstrap/argocd/         # Argo CD bootstrap manifests
├── infrastructure/monitoring/ # Cluster-wide services
└── docs/                     # Documentation

This project has detailed documentation in the knowledge base:

Quick Start

# Bootstrap Argo CD
cd bootstrap/argocd && ./bootstrap.sh
 
# Validate Kustomize builds
kubectl kustomize apps/online-boutique/overlays/lab
 
# Check Argo CD applications
argocd app list

Access URLs

  • Online Boutique: http://boutique.lab.local
  • Argo CD UI: http://argocd.lab.local