Skip to content

Repository files navigation

gitops-local

Local GitOps development environment using Kind clusters with Argo CD, Kargo, Istio, and a complete observability stack.

Overview

This repository provides a three-cluster setup that mimics production GitOps infrastructure:

 ┌─────────────────────────────────────┐
│ management-eu-central-1 │
│ │
│ ArgoCD, Kargo, Grafana, Mimir, │
│ Loki, Tempo, Kiali, Sealed Secrets │
│ │
│ https://*.localhost:8443 │
└─────────────────────────────────────┘
│
┌────────────────┴────────────────┐
│ │
▼ ▼
┌──────────────────────────┐ ┌───────────────────────────┐
│ dev-eu-central-1 │ │ prod-eu-central-1 │
│ │ │ │
│ ArgoCD, Istio, │ │ ArgoCD, Istio, │
│ Argo Rollouts, Kiali │ │ Argo Rollouts, Kiali │
│ │ │ │
│ https://*.localhost:9443│ │ https://*.localhost:10443│
└──────────────────────────┘ └───────────────────────────┘

Dev and Prod clusters send telemetry to the Management cluster's observability stack.

Quick Start

# Full setup (15-20 minutes)
./scripts/gitops setup
# Check cluster status
./scripts/gitops cluster status
# Teardown
./scripts/gitops teardown

Prerequisites

ToolInstall
Dockerbrew install docker and brew install --cask podman-desktop
kindbrew install kind
kubectlbrew install kubectl
helmbrew install helm
yqbrew install yq

Resource Requirements:

  • CPU: 6 cores
  • RAM: 24 GB
  • Disk: 40 GB free space

Commands

CommandDescription
./scripts/gitops setupFull setup (clusters + stack)
./scripts/gitops teardownDelete all clusters
./scripts/gitops cluster statusShow cluster status
./scripts/gitops context <cluster>Switch kubectl context
./scripts/gitops secrets backupBackup sealed secrets key
./scripts/gitops secrets restoreRestore sealed secrets key
./scripts/gitops secrets statusShow sealed secrets status

Service Access

All services use admin / admin credentials.

ServiceURL
ArgoCD (management)https://argocd.management.eu-central-1.localhost:8443
ArgoCD (dev)https://argocd.dev.eu-central-1.localhost:9443
ArgoCD (prod)https://argocd.prod.eu-central-1.localhost:10443
Grafanahttps://grafana.management.eu-central-1.localhost:8443
Kargohttps://kargo.management.eu-central-1.localhost:8443
Kiali (management)https://kiali.management.eu-central-1.localhost:8443
Kiali (dev)https://kiali.dev.eu-central-1.localhost:9443
Kiali (prod)https://kiali.prod.eu-central-1.localhost:10443
Argo Rollouts (dev)https://argo-rollouts.dev.eu-central-1.localhost:9443
Argo Rollouts (prod)https://argo-rollouts.prod.eu-central-1.localhost:10443
Phasor (dev)https://phasor.dev.eu-central-1.localhost:9443
Phasor (prod)https://phasor.prod.eu-central-1.localhost:10443

Note: Browser will show a certificate warning (self-signed). Click "Advanced" -> "Proceed" to continue.

Directory Structure

gitops-local/
├── apps/ # ArgoCD Application manifests
│ ├── management-eu-central-1/
│ ├── dev-eu-central-1/
│ └── prod-eu-central-1/
├── manifests/ # Helm values per component/environment
│ ├── argocd/
│ ├── grafana-operator/
│ ├── istio-*/
│ └── ...
├── scripts/ # Automation scripts
│ ├── gitops # Main entry point
│ └── lib/ # Bash library modules
└── kind-cluster-*.yaml.tmpl # Kind cluster templates

Key Components

CategoryComponents
GitOpsArgoCD (all clusters), Kargo (management)
Service MeshIstio CNI, istiod, ztunnel, ingress gateway
Progressive DeliveryKargo (management), Argo Rollouts (dev/prod)
ObservabilityGrafana, Mimir, Loki, Tempo, Alloy, Kiali
Securitycert-manager, Sealed Secrets

Documentation

DocumentDescription
apps/README.mdArgoCD Application structure and sync wave strategy
manifests/README.mdComponent manifest organization
scripts/README.mdScript library and command reference

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages