Kubernetes Borg/Omega history topic 8: Declarative configuration and Apply. Inside Google, the most used configuration approach for Borg is the Turing-complete Borg Configuration Language (BCL). You can see a snippet of BCL on slide 7 in this deck: http://www.inf.ed.ac.uk/teaching/courses/exc/slides/Wilkes.pdf …
-
Show this thread
-
Replying to @bgrant0607
2. kustomize breaks everything. Once the config is described in a kustomize file, then all the tools _do_ have to interact with and generate kustomize patches. I challenge anyone to even evaluate a kustomize file from another programming language (without the existing go lib).
1 reply 0 retweets 0 likes -
Replying to @anguslees1 @bgrant0607
Note, if making kustomize the new universal front-end to k8s config _was_ a goal, then we could redesign it so this was feasible. Eg: reduce it to _just_ a base + ordered stack of s-m-p patches. Then all the other features would have to be reimplemented as patch-generators.
1 reply 0 retweets 0 likes -
Replying to @anguslees1
Universality is not a goal. It's intended to keep simple personalization and customization use cases simple and data-driven, reduce the need for speculative and excessive parameterization, and merge from multiple input sources without requiring One True Config Generation language
2 replies 0 retweets 0 likes -
Replying to @bgrant0607 @anguslees1
People familiar and happy with jinja, Go templates, Python, Ruby, Javascript, HCL, jsonnet, dhall, or other language should use what they like. Making kustomize more general and extensible is desirable, but improving utility and usability are more important for now.
1 reply 0 retweets 1 like -
Replying to @bgrant0607
Ack, I see I misunderstood your narrative arc. I thought you were claiming that kustomize (and apply, etc) is "amenable to manipulation with tools", etc and therefore going to replace the 100 other tools (or at least become the new universal base upon which they can interact).
1 reply 0 retweets 1 like
They will enable another 100 tools, I hope :-). But hopefully some of them will be interoperable, UNIX-style
-
-
Replying to @bgrant0607 @anguslees1
E.g.: Pulumi supports multiple GP languages, such as Typescript and Python. AIUI, they are running into a similar challenge as we did in Borg, with BCL and the Python-based config language: interoperability of tools and libraries. A common data interchange model is needed.
0 replies 0 retweets 2 likesThanks. Twitter will use this to make your timeline better. UndoUndo
-
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.