Millions of lines of BCL have been written. A fair amount of BCL was devoted to configuring application command-line flags, which was the most common way to figure server binaries, which is crazy IMO, but the practice sadly carried over to Kubernetes components
-
-
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 …
Show 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.Show 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.
Show 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
Show 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.
Show 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.
Show this thread
End of conversation
New conversation -
-
-
I think the biggest issue with strategic merge patch is, that it is not testable. AFAIK client-go doesn’t provide the test implementation. This lead us to build control loops with: list, compute, full-update
-
There are many issues with strategic merge patch. It grew organically, extended by several different people, worked around pre-existing API inconsistencies, is driven by Go field type tags, and mixed in some lifecycle directives.
@originalavalamp has looked at overhauling it - 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.