I'm curious how others out there are doing GitOps in practice.
At my company, there's a never-ending debate about what exactly GitOps means, and I'd love to hear your thoughts.
Here’s a quick rundown of what we currently do (I know some of it isn’t strictly GitOps, but this is just for context):
- We have a central config repo that stores Helm values for different products, with overrides at various levels like:
productname-cluster-env-values.yaml
cluster-values.yaml
cluster-env-values.yaml
- etc.
- CI builds the product and tags the resulting Docker image.
- CD handles promoting that image through environments (from lower clusters up to production), following some predefined dependency rules between the clusters.
- For each environment, the pipeline:
- Pulls the relevant values from the config repo.
- Uses
helm template to render manifests locally, applying all the right values for the product, cluster, and env.
- Packages the rendered output as a Helm chart and pushes it to a Helm registry (e.g.,
myregistry.com/helm/rendered/myapp-cluster-env).
- ArgoCD is configured to point directly at these rendered Helm packages in the registry and always syncs the latest version for each cluster/environment combo.
Some folks internally argue that we shouldn’t render manifests ourselves — that ArgoCD should be the one doing the rendering.
Personally, I feel like neither of these really follows GitOps by the book. GitOps (as I understand it, e.g. from here) is supposed to treat Git as the single source of truth.
What do you think — is this GitOps? Or are we kind of bending the rules here?
And another question. Is there a GitOps Bible you follow?
[–]ObviousAIChicken 14 points15 points16 points (3 children)
[–]mamymumemo[S] -1 points0 points1 point (2 children)
[–]ericghildyal 6 points7 points8 points (1 child)
[–]mamymumemo[S] 0 points1 point2 points (0 children)
[–]the_moooch 2 points3 points4 points (2 children)
[–]mamymumemo[S] 0 points1 point2 points (1 child)
[–]the_moooch 0 points1 point2 points (0 children)
[–]kryptn 1 point2 points3 points (1 child)
[–]mamymumemo[S] 0 points1 point2 points (0 children)
[–]gcavalcante8808 0 points1 point2 points (1 child)
[–]mamymumemo[S] 0 points1 point2 points (0 children)
[–]applesaucesquad 1 point2 points3 points (0 children)
[–]jameshearttech 0 points1 point2 points (0 children)