Skip to main content

gitops-base Development Setup

Purpose: For contributors, shows how to set up the gitops-base development environment.

What you'll have at the end

A local Kubernetes cluster (Kind) with FluxCD bootstrapped, reconciling against your fork of openCenter-gitops-base. You can add or modify services and see them deploy in real time.

Prerequisites

  • kubectl, flux, kustomize, and kind CLI tools installed
  • A container runtime (Podman or Docker)
  • A GitHub account with a fork of openCenter-gitops-base

Step 1: Create a local Kind cluster

kind create cluster --name gitops-dev

Step 2: Bootstrap FluxCD

Point FluxCD at your fork so you can push changes and watch reconciliation:

flux bootstrap github \
--owner=<your-github-user> \
--repository=openCenter-gitops-base \
--branch=dev \
--path=applications/base \
--personal

Step 3: Verify FluxCD is running

flux check
kubectl get kustomizations -n flux-system

All Kustomizations should show Ready: True.

Step 4: Test a service locally

To test changes to a service (e.g., cert-manager), validate the Kustomize output before pushing:

kustomize build applications/base/services/cert-manager/

This renders the final manifests. Check for YAML errors and correct resource definitions.

Step 5: Push and reconcile

git add .
git commit -m "feat: update cert-manager values"
git push origin dev

# Force immediate reconciliation (instead of waiting for the poll interval)
flux reconcile source git flux-system

Step 6: Verify deployment

flux get helmreleases -A
kubectl get pods -n cert-manager

Check your work

  • flux check reports no issues
  • flux get kustomizations -A shows all resources as Ready
  • Modified services deploy and pods reach Running state

Next steps

  • Read Adding a Service to add a new platform service
  • Review existing services under applications/base/services/ for patterns
  • See Kustomize Patterns for the base + overlay composition model