I haven't seen this behavior of k8s modifying git. Typically it is as you describe, desired state comes from git and is fed to k8s, k8s then attempts to make that a reality.
-
-
The issue is k8s mutates the resources under its own management in ways that conflict with declarative representation in git. Requiring merge on rollout.
3 replies 0 retweets 2 likes -
I see, yeah, basically "kubectl apply" is required, is not a pure update, but a merge process. The only thing I wish k8s had done differently there would be that spec and status were two different resources. But that's the beauty of hindsight.
2 replies 0 retweets 1 like -
K8s itself is a distributed system with bidirectional state mutation (lots of concurrency). It doesn’t take a distributed systems master to anticipate these issues. Ironically, using git as the k8s backend would have at least been functionally correct.
2 replies 0 retweets 1 like -
i don't think you really give enough credit to k8s here. k8s is a system that allows mutation, but bidirectional, as you say, is not a core tenet and would be more a flaw in implementation. i think you'd prefer a system based on immutable data, which I too think is compelling
4 replies 0 retweets 0 likes -
Immutable data is a convient way to skirt concurrency problems in a distributed system. My issue is that k8s claims ownership of the resource version identifier, that it usually leads the versions in VCS, and requires non-trivial merge downstream from git (the gitops master).
3 replies 0 retweets 2 likes -
Replying to @allingeek @ibuildthecloud and
Are you talking about mutation in, for example, number of pods deployed? Or something more substantial?
2 replies 0 retweets 0 likes -
Replying to @aronchick @ibuildthecloud and
The field or kind doesn’t really matter. Some are more immutable than others but that’s detail. Git + k8s is a multi-master system where the state is mutated in both. Collisions are going to happen.
1 reply 0 retweets 1 like -
Replying to @allingeek @ibuildthecloud and
It's an interesting point - I don't know that there's an efficient way to tackle some of the deployment time config changes without having k8s mutate the system (and sync back)
1 reply 0 retweets 0 likes -
Replying to @aronchick @ibuildthecloud and
Distributed systems are usually fairly closed. The open nature of this one puts a pretty heavy burden on integrations. And yeah. Super difficult to get right.
1 reply 0 retweets 0 likes
From what I can tell, Terraform's all-or-nothing approach pushes users to adopt other tools to manage less static resource types, even for providers other than Kubernetes.
-
-
Replying to @bgrant0607 @allingeek and
This feels like the 4th normal form debate all over again ... right tool, right job.
1 reply 0 retweets 1 like -
Replying to @aronchick @bgrant0607 and
Not really trying to debate anything. Just calling out a fundamental incompatibility between tools. (declarative gitops flows and Kubernetes in a multi-master relationship)
1 reply 0 retweets 0 likes - Show replies
New conversation -
Loading seems to be taking a while.
Twitter may be over capacity or experiencing a momentary hiccup. Try again or visit Twitter Status for more information.