Live data from Hacker News

OpenGitOps

opengitops.dev

11–20 of 51 posts

Re: OpenGitOps

#11

Serious question: How do organizations deal with having git on the critical path for deployment? Current employer actually prohibits this due to frequent outages in the git plant.

gitlab on internal network works quite well. You can still use K8 / EKS / AKS for runners etc, just run it all on the internal network. Im always surprised at how many orgs use public platforms for their code and ci/cd.

Re: OpenGitOps

#12

Serious question: How do organizations deal with having git on the critical path for deployment? Current employer actually prohibits this due to frequent outages in the git plant.

Git is just the repo store.

Everything you are referring to is the CI/CD pipeline. GitHub actions, Gitlab Runners, ArgoCD; they can all do some sort of gitops. Those dependencies existed before gitops anyway, so nothing new is being added.

Re: OpenGitOps

#13
post #3

ArgoCD is the defacto gitops standard now and has the lions share of gitops deployments.

> ArgoCD is the defacto gitops standard now and has the lions share of gitops deployments.

That only covers pull-based GitOps. Push-based GitOps doesn't require Kubernetes, let alone magical Kubernetes operators, only plain old CICD pipelines.

Re: OpenGitOps

#14
post #8
post #5

Earlier quoted context omitted.

Last I saw, ArgoCD was heavily reliant on Kubernetes. Has this changed? (also, it seems like the site is heavily supporting ArgoCD)

The whole premise of opengitops is heavily reliant on kubernetes.

> The whole premise of opengitops is heavily reliant on kubernetes.

There's indeed a fair degree of short-sightedness in some GitOps proponents, who conflate their own personal implementation with the one true GitOps.

Back in the real world, the bulk of cloud infrastructure covers resources that go well beyond applying changes to pre-baked Kubernetes cluster. Any service running on the likes of AWS/Google Cloud/Azure/etc require configuring plenty of cloud resources with whatever IaC platform they use, and Kubernetes operators neither cover those nor are a reasonable approach to the problem domain.

Re: OpenGitOps

#15
post #3

ArgoCD is the defacto gitops standard now and has the lions share of gitops deployments.

> ArgoCD is the defacto gitops standard now and has the lions share of gitops deployments. That only covers pull-based GitOps. Push-based GitOps doesn't require Kubernetes, let alone magical Kubernetes operators, only plain old CICD pipelines.

I often hear folks use terminology like “push GitOps”. But as far as I understand things, it’s only GitOps if you’re following the four principles described in TFA. Otherwise it’s just sparkling pipelines.

Re: OpenGitOps

#16

Serious question: How do organizations deal with having git on the critical path for deployment? Current employer actually prohibits this due to frequent outages in the git plant.

> Serious question: How do organizations deal with having git on the critical path for deployment?

You mean like storing source code? CICD pipeline definitions? Container image specs? IaC manifests? Service configuration files?

I don't think that arbitrarily drawing the line on what package version is being deployed is a rational opinion to have. I mean, look at npm's package.json. Is it ok to specify which dependency versions you bundle with your software, but specifying which version you're deploying is unheard of?

The only drawback I see in GitOps is that CICD pipelines are still lagging way behind on providing adequate visualization strategies to monitor the current state of multi-environment deployments.

Re: OpenGitOps

#17
The problem with git ops only manifests after it’s become a standard within an org:

With 1 git ops pipeline, it’s fine, it’s the human merge gate, it’s doing its job protecting downstream

With multiple git ops pipelines however, they start to get in the way of progress - especially when they need to be joined in series

The better approach is to build API-first then optionally, add an API client into your git pipeline

Re: OpenGitOps

#18

The problem with git ops only manifests after it’s become a standard within an org: With 1 git ops pipeline, it’s fine, it’s the human merge gate, it’s doing its job protecting downstream With multiple git ops pipelines however, they start to get in the way of progress - especially when they need to be joined in series The better approach is to build API-first then optionally, add an API client into your git pipeline

> With multiple git ops pipelines however, they start to get in the way of progress - especially when they need to be joined in series

Definitely, that's why systems like Zuul exist.

They're esoteric and require a lot of engineering discipline in patience- but in my experience most people who reach for gitops aren't doing it for a sense of "everything as code" (for the audibility and theoretical reproducibility of it) it's because they think it will allow them to go faster; and a tool like Zuul is hard to learn and will intentionally slow you down.

Because slow is smooth, and smooth is fast.

Re: OpenGitOps

#19

The problem with git ops only manifests after it’s become a standard within an org: With 1 git ops pipeline, it’s fine, it’s the human merge gate, it’s doing its job protecting downstream With multiple git ops pipelines however, they start to get in the way of progress - especially when they need to be joined in series The better approach is to build API-first then optionally, add an API client into your git pipeline

For me, the key trait that makes gitops valuable is that it is declarative rather than imperative. The state of the git repo is the desired state of the system.

The key point there is that we don't have to worry about the existing state of the system. We don't have to worry that the api call made in your git pipeline actually failed, or that something else changed the system before your api call, and your state has drifted.

You can't replicate that by adding an API client to your git pipeline.

I am not sure how you end up with multiple git ops pipelines; ideally, you shouldn't be having multiple gitops pipelines. You should have a git repo that is defining the state, and then some reconciliation system that is checking the state of the system and the state of the repo, and taking any corrective actions needed to make the system state match the git state.

Re: OpenGitOps

#20

Serious question: How do organizations deal with having git on the critical path for deployment? Current employer actually prohibits this due to frequent outages in the git plant.

We use flux for our gitops, and it is easy to bypass if we need to in an emergency.

You can disable reconciliation and then manually apply a change if your git repo is unavailable.

Post reply on HN