Collection of patterns, examples and resources for GitOps process design, GitOps repository structures, etc
361
60 commits
updated Jul 6, 2026
This repo collects some patterns (AKA strategies, models, approaches, best practices, etc.) about GitOps process design (AKA GitOps repository structures, etc.) as well as links to talks, articles and example repos.
It originated in schnatterer's talk about the "perfect" GitOps process, our experience in consulting, and our GitOps trainings for both Flux and ArgoCD.
You can read more about the patterns in this series of articles.
PRs welcome!
![]() | Part 1️⃣: GitOps Chasm + categories |
![]() | Part 2️⃣: Deployment patterns |
![]() | Part 3️⃣: Repo patterns |
![]() | Part 4️⃣: Promotion patterns |
![]() | Part 5️⃣: Wiring patterns + conclusion |
![]() | Part 6️⃣: Example Repositories |
Let's group GitOps patterns into separate categories to make them easier to grasp.
See also part 1️⃣ of the article series.
See also part 2️⃣ of the article series.
More Patterns:
See also part 3️⃣ of the article series.
Application or a Flux GitRepository+Kustomization), avoiding redundancyvalue.yamls or overlays for different envs).Application or Flux Kustomization).helm template, kustomize build, kubectl kustomize, jsonnet, cuelang, timoni, etc. ) on the CI server for pushing the final manifests as OCI artifacts9 to the registry (Rendered Manifests Pattern10).Kustomization).See also part 4️⃣ of the article series.
We understand the term "promotion" as the process of deploying applications to different environments.
Sometimes, the term "promotion" is prefixed with other words: Release/Application/Environment/Workload/Change.
For promotion, we see different sets of patterns:
kustomization.yaml - operator-agnostic (GitOps Operator Rendering on Argo CD and Flux)Kustomization (GitOps Operator Rendering)kustomize build / kubectl kustomize via CI server (Rendered Manifests)HelmRelease (GitOps Operator Rendering on Flux) or Application (GitOps Operator Rendering on ArgoCD)helm template on CI server (Rendered Manifests)See also part 5️⃣ of the article series.
kubectl or operator-specific CLI such as flux or argocd-autopilotKustomization (Flux) or Application (ArgoCD)
ApplicationSets See also 4.
See also part 6️⃣ of the article series.
The diagrams have been created with tree2svg.
Helm, kubectlApplicationargoproj-labs/argocd-autopilot
argocd-autopilotkustomization.yaml, ArgoCD Application, ApplicationSetfluxcd/flux2-kustomize-helm-example
flux CLIkustomization.yaml, Flux Kustomizationflux CLIkustomization.yaml, Flux KustomizationTo be discussed in more detail
christianh814/example-kubernetes-go-repo
christianh814/example-kubernetes-goflux-repo
christianh814/example-openshift-go-repo
kustomization.yaml,
Application, ApplicationSet /Kustomizationkostis-codefresh/gitops-environment-promotion
kustomization.yamlkostis-codefresh/many-appsets-demo
kustomization.yaml, Argo CD ApplicationSet, (Application)Here are some other examples that we haven't had a chance to look at in more detail:
Article A Comprehensive Overview of Argo CD Architectures – 2023 by Dan Garfield ↩ ↩2 ↩3
Article/Book How to set up your GitOps directory structure by Christian Hernandez ↩ ↩2 ↩3 ↩4
Talk Control Plane, Service, or Both? – Argo CD Multi-Cluster Architectures - Nicholas Morey, Akuity, Article How many do you need? - Argo CD Architectures Explained by Nicholas Morey ↩ ↩2 ↩3
Slides The perfect GitOps process: repos, folders, stages, patterns by Johannes Schnatterer ↩ ↩2 ↩3 ↩4 ↩5
Documentation Flux | Ways of structuring your repositories ↩ ↩2 ↩3 ↩4 ↩5 ↩6 ↩7
Documentation Argo CD: Best Practices ↩
Talk GitOps: Core Concepts & Ways of Structuring Your Repos by Pinky Ravi and Scott Rigby ↩ ↩2
Discussion on LinkedIn Benjamin Ruland and Johannes Schnatterer ↩
Documentation Flux | OCI cheatsheet ↩
Talk: GitOpsCon EU 23: The Art of GitOps: Rendered Manifests by Christian Hernandez ↩ ↩2
Talk: Mastering GitOps 2023: Keynote: GitOps Emerging Developments and Predictions by Alexis Richardson ↩
Lesson GitOps at Scale Lesson series - Git repository strategies by Codefresh (paywalled) ↩ ↩2 ↩3 ↩4
Article Stop Using Branches for Deploying to Different GitOps Environments by Kostis Kapelonis ↩
Article Git best practices: Workflows for GitOps deployments by Christian Hernandez ↩
Article Monitoring and Hardening the GitOps Delivery Pipeline with Flux by Florian Heubeck ↩
Article Creating Temporary Preview Environments Based On Pull Requests With Argo CD And Codefresh by Codefresh ↩ ↩2
Talk GitOps Con Europe - Implementing Preview Environments with GitOps in Kubernetes by François Le Pape, Remazing ↩
Talk Preview Environments with ArgoCD by Brandon Phillips ↩
Video Environments Based On Pull Requests (PRs): Using Argo CD To Apply GitOps Principles On Previews by Viktor Farcic ↩
Documentation Vercel: Preview Deployments ↩
Documentation Netlify: Deploy Previews ↩
Discussion on GitHub Michael Crenshaw ↩
Discussion on LinkedIn Christian Hernandez, Scott Rigby and Johannes Schnatterer ↩
Documentation Helm | Chart Development Tips and Tricks ↩
Documentation Argo CD | Config Management Plugins ↩
Documentation ArgoCD: Cluster Bootstrapping - App Of Apps Pattern ↩
59 commits
1 commits
Collection of patterns, examples and resources for GitOps process design, GitOps repository structures, etc
361
60 commits
updated Jul 6, 2026
This repo collects some patterns (AKA strategies, models, approaches, best practices, etc.) about GitOps process design (AKA GitOps repository structures, etc.) as well as links to talks, articles and example repos.
It originated in schnatterer's talk about the "perfect" GitOps process, our experience in consulting, and our GitOps trainings for both Flux and ArgoCD.
You can read more about the patterns in this series of articles.
PRs welcome!
![]() | Part 1️⃣: GitOps Chasm + categories |
![]() | Part 2️⃣: Deployment patterns |
![]() | Part 3️⃣: Repo patterns |
![]() | Part 4️⃣: Promotion patterns |
![]() | Part 5️⃣: Wiring patterns + conclusion |
![]() | Part 6️⃣: Example Repositories |
Let's group GitOps patterns into separate categories to make them easier to grasp.
See also part 1️⃣ of the article series.
See also part 2️⃣ of the article series.
More Patterns:
See also part 3️⃣ of the article series.
Application or a Flux GitRepository+Kustomization), avoiding redundancyvalue.yamls or overlays for different envs).Application or Flux Kustomization).helm template, kustomize build, kubectl kustomize, jsonnet, cuelang, timoni, etc. ) on the CI server for pushing the final manifests as OCI artifacts9 to the registry (Rendered Manifests Pattern10).Kustomization).See also part 4️⃣ of the article series.
We understand the term "promotion" as the process of deploying applications to different environments.
Sometimes, the term "promotion" is prefixed with other words: Release/Application/Environment/Workload/Change.
For promotion, we see different sets of patterns:
kustomization.yaml - operator-agnostic (GitOps Operator Rendering on Argo CD and Flux)Kustomization (GitOps Operator Rendering)kustomize build / kubectl kustomize via CI server (Rendered Manifests)HelmRelease (GitOps Operator Rendering on Flux) or Application (GitOps Operator Rendering on ArgoCD)helm template on CI server (Rendered Manifests)See also part 5️⃣ of the article series.
kubectl or operator-specific CLI such as flux or argocd-autopilotKustomization (Flux) or Application (ArgoCD)
ApplicationSets See also 4.
See also part 6️⃣ of the article series.
The diagrams have been created with tree2svg.
Helm, kubectlApplicationargoproj-labs/argocd-autopilot
argocd-autopilotkustomization.yaml, ArgoCD Application, ApplicationSetfluxcd/flux2-kustomize-helm-example
flux CLIkustomization.yaml, Flux Kustomizationflux CLIkustomization.yaml, Flux KustomizationTo be discussed in more detail
christianh814/example-kubernetes-go-repo
christianh814/example-kubernetes-goflux-repo
christianh814/example-openshift-go-repo
kustomization.yaml,
Application, ApplicationSet /Kustomizationkostis-codefresh/gitops-environment-promotion
kustomization.yamlkostis-codefresh/many-appsets-demo
kustomization.yaml, Argo CD ApplicationSet, (Application)Here are some other examples that we haven't had a chance to look at in more detail:
Article A Comprehensive Overview of Argo CD Architectures – 2023 by Dan Garfield ↩ ↩2 ↩3
Article/Book How to set up your GitOps directory structure by Christian Hernandez ↩ ↩2 ↩3 ↩4
Talk Control Plane, Service, or Both? – Argo CD Multi-Cluster Architectures - Nicholas Morey, Akuity, Article How many do you need? - Argo CD Architectures Explained by Nicholas Morey ↩ ↩2 ↩3
Slides The perfect GitOps process: repos, folders, stages, patterns by Johannes Schnatterer ↩ ↩2 ↩3 ↩4 ↩5
Documentation Flux | Ways of structuring your repositories ↩ ↩2 ↩3 ↩4 ↩5 ↩6 ↩7
Documentation Argo CD: Best Practices ↩
Talk GitOps: Core Concepts & Ways of Structuring Your Repos by Pinky Ravi and Scott Rigby ↩ ↩2
Discussion on LinkedIn Benjamin Ruland and Johannes Schnatterer ↩
Documentation Flux | OCI cheatsheet ↩
Talk: GitOpsCon EU 23: The Art of GitOps: Rendered Manifests by Christian Hernandez ↩ ↩2
Talk: Mastering GitOps 2023: Keynote: GitOps Emerging Developments and Predictions by Alexis Richardson ↩
Lesson GitOps at Scale Lesson series - Git repository strategies by Codefresh (paywalled) ↩ ↩2 ↩3 ↩4
Article Stop Using Branches for Deploying to Different GitOps Environments by Kostis Kapelonis ↩
Article Git best practices: Workflows for GitOps deployments by Christian Hernandez ↩
Article Monitoring and Hardening the GitOps Delivery Pipeline with Flux by Florian Heubeck ↩
Article Creating Temporary Preview Environments Based On Pull Requests With Argo CD And Codefresh by Codefresh ↩ ↩2
Talk GitOps Con Europe - Implementing Preview Environments with GitOps in Kubernetes by François Le Pape, Remazing ↩
Talk Preview Environments with ArgoCD by Brandon Phillips ↩
Video Environments Based On Pull Requests (PRs): Using Argo CD To Apply GitOps Principles On Previews by Viktor Farcic ↩
Documentation Vercel: Preview Deployments ↩
Documentation Netlify: Deploy Previews ↩
Discussion on GitHub Michael Crenshaw ↩
Discussion on LinkedIn Christian Hernandez, Scott Rigby and Johannes Schnatterer ↩
Documentation Helm | Chart Development Tips and Tricks ↩
Documentation Argo CD | Config Management Plugins ↩
Documentation ArgoCD: Cluster Bootstrapping - App Of Apps Pattern ↩
59 commits
1 commits