GitOps configuration repository for multi-cluster Kubernetes application deployment using KubeFleet. This repository contains declarative resources for distributing and managing workloads across a fleet of Kubernetes clusters with staged rollout strategies.
This repository demonstrates how to combine KubeFleet with GitOps tools (Flux CD and Argo CD) to achieve progressive, multi-cluster application delivery. Each example shows how to:
- Distribute application resources from a hub cluster to member clusters via KubeFleet placements
- Customize deployments per cluster using overrides
- Perform staged rollouts across staging, canary, and production environments with approval gates
fleet-gitops/
├── applications/ # Application resources synced to the hub cluster
│ ├── kustomize-nginx/ # NGINX app using Flux CD + Kustomize
│ └── simple-guestbook/ # Guestbook app using Argo CD
├── kustomize-nginx-cluster/ # Flux manifests applied on member clusters for NGINX
├── rollout/ # Hub-level bootstrap manifests
│ ├── kustomize-nginx/ # Flux GitRepository & Kustomization for NGINX
│ └── guestbook/ # Argo CD AppProject & Application for Guestbook
└── LICENSE
Contains the KubeFleet placement, override, staged rollout, and GitOps resources that Flux or Argo CD syncs onto the hub cluster. These resources instruct KubeFleet to distribute and manage the applications across member clusters.
Contains the bootstrap manifests applied directly to the hub cluster to set up the GitOps pipeline (Flux or Argo CD) that watches and syncs the applications/ directory.
Deploys an NGINX application across multiple clusters using Flux CD for GitOps reconciliation and Kustomize overlays for per-cluster configuration. Features staged rollouts through staging, canary, and production environments.
- Hub bootstrap:
rollout/kustomize-nginx/ - Application resources:
applications/kustomize-nginx/ - Member-cluster Flux resources:
kustomize-nginx-cluster/ - Detailed guide:
rollout/kustomize-nginx/README.md
Deploys a Guestbook application across multiple clusters using Argo CD for GitOps reconciliation. Features per-cluster path overrides and staged rollouts through staging, canary, and production environments.
- Hub bootstrap:
rollout/guestbook/ - Application resources:
applications/simple-guestbook/ - Detailed guide:
rollout/guestbook/README.md
- A Kubernetes hub cluster with KubeFleet installed
- One or more member clusters joined to the hub cluster via Fleet
- Member clusters labeled with
kubernetes-fleet.io/env(values:staging,canary, orprod) - For the NGINX example: Flux CD installed on the hub and all member clusters
- For the Guestbook example: Argo CD installed on the hub and all member clusters
- Fork this repository and the companion guestbook-demo repository.
- Update Git URLs in the YAML files to point to your forks.
- Choose an example and follow its detailed guide:
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.