Live data from Hacker News

GitOpper: GitOps Without Kubernetes

github.com

41–50 of 51 posts

Re: GitOpper: GitOps Without Kubernetes

#41
post #9

Curious when I might use this over GH Actions or GL Runners?

At least three situations that come to mind without even trying to think at all(*), after just skimming the readme:

- When you don't use GitHub or GitLab.

- When you use GitHub or GitLab, but you don't have write permissions to use the repository (e.g. because you don't own it).

- When you just want to deploy a VM image or a container (either one instance, or multiple instances), and be able to shut them down, but don't want to bother updating the repository pipeline references every time. Maybe the image/container is actually a FreeBSD jail created from a ZFS snapshot, with a repository hosted in a NAS.

Note: I won't use this project so I'm not trying to justify its existence or usefulness. For all I know, it's just someone's pet project that the author only intends to use themselves, but someone else submitted to HN.

(* EDIT: On retrospect this actually comes off as negative, but I meant this as in "my reasons might not even be all that good" due to me not being that interested in the first place, and not as a judgement or anything like that. Leaving it as-is for transparency.)

Re: GitOpper: GitOps Without Kubernetes

#42

Is this when you don't require availability

You may or may not be joking, but gitops has been the cause of outages for us in quite a few instances. I have been unable to stress what a terrible idea arbitrarily pulling and applying from git is. I am unable to stress it because that's the overwhelming way that many k8s setups are done, so clearly they cannot be wrong.

I mean making changes in prod without testing will do that, Gitops or not.

Re: GitOpper: GitOps Without Kubernetes

#43

Correct me if I'm wrong: - GitOps is a fancy word recently created by Gitlab or Github to sound cooler - It means storing your code / services in git and deploying on push It all seems so weird. We had tools like puppet since ice ages which can, after you push to git, reconfigure and deploy whatever you described in your git. Over all your fleet of machines. Am I missing something?

You're half wrong. The term was invented by Weaveworks, a company which no longer exists, but it's main product, FluxCD and the GitOps toolkit it is based on, lives on as a CNCF project. There never was and still is not any requirement that you use Github or Gitlab as your Git server to use this or any other GitOps product I'm aware of. I guess you're more 75% wrong because the second statement is still half wrong. D…

So how did people mange kubernetes before gitops? Automating "kubectl apply" in a different way in each company?

Also it's useless to this discussion but polling was also a standard thing in puppet / chef / saltstack. Main motivation was to make deployments more gradual so in case of untested code only stone subset of servers is affected

Re: GitOpper: GitOps Without Kubernetes

#44

Correct me if I'm wrong: - GitOps is a fancy word recently created by Gitlab or Github to sound cooler - It means storing your code / services in git and deploying on push It all seems so weird. We had tools like puppet since ice ages which can, after you push to git, reconfigure and deploy whatever you described in your git. Over all your fleet of machines. Am I missing something?

You're half wrong. The term was invented by Weaveworks, a company which no longer exists, but it's main product, FluxCD and the GitOps toolkit it is based on, lives on as a CNCF project. There never was and still is not any requirement that you use Github or Gitlab as your Git server to use this or any other GitOps product I'm aware of. I guess you're more 75% wrong because the second statement is still half wrong. D…

I see, I guess I only saw GitOps in gitlab and assumed it's another half-backed feature

Re: GitOpper: GitOps Without Kubernetes

#45
post #11

Earlier quoted context omitted.

The term is pretty synonymous with Kubernetes since it was coined in a Kubernetes context: https://web.archive.org/web/20200104172859/https://www.weave...

A Kubernetes tool coined the term but it’s always been about using git to store your manifests for your infrastructure, with some method of synchronization between the current state and what is in the git repo. With that in mind, it makes no sense to call them synonymous, GitOps transcends the concept of a particular tool or ecosystem.

I mean "synonymous" in the sense of:

> having the same connotations, implications, or reference

> to runners, Boston is synonymous with marathon

Re: GitOpper: GitOps Without Kubernetes

#46
post #11

Earlier quoted context omitted.

The term is pretty synonymous with Kubernetes since it was coined in a Kubernetes context: https://web.archive.org/web/20200104172859/https://www.weave...

A Kubernetes tool coined the term but it’s always been about using git to store your manifests for your infrastructure, with some method of synchronization between the current state and what is in the git repo. With that in mind, it makes no sense to call them synonymous, GitOps transcends the concept of a particular tool or ecosystem.

It definitely correlates with Kubernetes pretty well. I read the title and already had a good sense of what the project is about and found the title accurate after reading more.

Re: GitOpper: GitOps Without Kubernetes

#47
post #12

One of my favorite GitOps tricks is adding a post-recieve.hook with the contents: #!/bin/bash echo -e "\e[1;31mUpdating worktree and fetching remotes\e[m" git --git-dir="$GIT_DIR" --work-tree="$GIT_DIR/.." reset --hard git --git-dir="$GIT_DIR" fetch origin master while read oldref newref refname; do echo -e "\e[1;32mPushed ${refname##refs/heads/}\t${oldref::7} -> ${newref::7}\e[m" done echo -e "\e[1;31mRestarting ser…

Interesting hack! I'll be using it from now on. Do you have any tips for when a machine is behind a NAT? Specifically, I want a service to automatically pick up changes from Git whenever their origin is pushed, without using any fancy tools. I prefer a simple, "Taco Bell programming" approach.

Re: GitOpper: GitOps Without Kubernetes

#48
post #12

One of my favorite GitOps tricks is adding a post-recieve.hook with the contents: #!/bin/bash echo -e "\e[1;31mUpdating worktree and fetching remotes\e[m" git --git-dir="$GIT_DIR" --work-tree="$GIT_DIR/.." reset --hard git --git-dir="$GIT_DIR" fetch origin master while read oldref newref refname; do echo -e "\e[1;32mPushed ${refname##refs/heads/}\t${oldref::7} -> ${newref::7}\e[m" done echo -e "\e[1;31mRestarting ser…

Interesting hack! I'll be using it from now on. Do you have any tips for when a machine is behind a NAT? Specifically, I want a service to automatically pick up changes from Git whenever their origin is pushed, without using any fancy tools. I prefer a simple, "Taco Bell programming" approach.

I typically tunnel SSH through Cloudflare tunnels for this! Requires a bit of client-side config in the ~/.ssh/config file, but once you do that you can very easily SSH through a NAT!

Re: GitOpper: GitOps Without Kubernetes

#49

Earlier quoted context omitted.

A Kubernetes tool coined the term but it’s always been about using git to store your manifests for your infrastructure, with some method of synchronization between the current state and what is in the git repo. With that in mind, it makes no sense to call them synonymous, GitOps transcends the concept of a particular tool or ecosystem.

It definitely correlates with Kubernetes pretty well. I read the title and already had a good sense of what the project is about and found the title accurate after reading more.

I disagree on the basis that managing kubernetes deployments isn’t necessarily done in a GitOps fashion. You have to elect to. You might manage your deployments with manifests that you don’t store in git at all, with no automation to synchronize your git repository state to cluster state. You might opt to manage your cluster in a ClickOps fashion with one of the many GUI tools available for doing so. Kubernetes can be managed in a GitOps fashion, but you have to elect to do so. And in that way I don’t see how anybody could say they correlate.

Re: GitOpper: GitOps Without Kubernetes

#50
post #45

Earlier quoted context omitted.

A Kubernetes tool coined the term but it’s always been about using git to store your manifests for your infrastructure, with some method of synchronization between the current state and what is in the git repo. With that in mind, it makes no sense to call them synonymous, GitOps transcends the concept of a particular tool or ecosystem.

I mean "synonymous" in the sense of: > having the same connotations, implications, or reference > to runners, Boston is synonymous with marathon

> to runners, Boston is synonymous with marathon

So to people that manage deployments to kubernetes in a GitOps way, kubernetes is synonymous with GitOps?

I disagree with that logic. To people that manage deployments to kubernetes in a ClickOps way, I suppose kubernetes is synonymous with ClickOps.

Post reply on HN