My initial proposal, in http://issues.k8s.io/1178 , was to maintain and merge 2 separate layers of desired state in the server. Resistance to that idea led to my client-side Apply proposal in http://issues.k8s.io/1702 . We're finally getting server-side apply:https://github.com/kubernetes/enhancements/blob/master/keps/sig-api-machinery/0006-apply.md …
-
Show this thread
-
A gotcha we ran into early in the Apply implementation was complex schema topology. Merging 2 flat maps is easy, but we unfortunately had associative lists: https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#lists-of-named-subobjects-preferred-over-maps …. And also sets and undiscriminated unions (being addressed: https://github.com/kubernetes/enhancements/blob/master/keps/sig-api-machinery/20190325-unions.md …).
1 reply 0 retweets 5 likesShow this thread -
Strategic merge patch was developed so that we could diff and merge two objects containing associative lists (non-ordinal lists with index keys in values of fields within list elements): https://github.com/kubernetes/community/blob/master/contributors/devel/sig-api-machinery/strategic-merge-patch.md …
2 replies 0 retweets 3 likesShow this thread -
I wrote an overview of the motivation and principles for the configuration design in https://github.com/kubernetes/community/blob/master/contributors/design-proposals/architecture/declarative-application-management.md …. The original draft of that also contained sketches of what became https://github.com/kubernetes-sigs/application … andhttps://github.com/kubernetes-sigs/kustomize …
2 replies 2 retweets 10 likesShow this thread -
Whereas Apply facilitates collaborative config authoring between humans and machines (thanks to
@originalavalamp for that description), kustomize enables collaboration among humans, by facilitating modification of unchanged base prototype/seed configurations.1 reply 1 retweet 6 likesShow this thread -
The declarative API, Apply, and kustomize facilitate maintaining configuration as YAML or JSON or proto, amenable to manipulation by tools, rather than as YAML marked up with macros, complex configuration languages, or scripts written in general-purpose programming language.
2 replies 1 retweet 3 likesShow this thread -
On one hand, the ~100 tools that have been developed show that the decoupling of config format and the API has worked. OTOH, it shows there are still gaps. With work like diff and dry run (https://github.com/kubernetes/enhancements/pull/893 …) and prune (https://github.com/kubernetes/enhancements/pull/810 …), we're working to close them
1 reply 1 retweet 8 likesShow this thread -
A list of tools can be found here: https://docs.google.com/spreadsheets/d/1FCgqz1Ci7_VCz_wdh8vBitZ3giBtac_H8SBw4uxnrsE/edit#gid=0 …. I just added another 20 or so that I've seen.
1 reply 0 retweets 17 likesShow this thread -
This thread is already the longest yet, so I'll start another later with configuration terminology: declarative vs intent, macros vs config languages, packages vs stacks, prototypes vs templates, whitebox vs blackbox, overlays, lifecycle directives, etc.
3 replies 0 retweets 21 likesShow this thread -
Replying to @bgrant0607
thank you for the thread! Do you know if there are any tools available for K8S to visualize efficiency and capacity in a similar way like Borg does on this screenshot?pic.twitter.com/11AThxDzu9
1 reply 0 retweets 1 like
Nothing quite like that. I've seen a few, but didn't keep track of them. There is https://github.com/hjacobs/kube-ops-view …
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.