skylark
ytt
skylark | ytt | |
---|---|---|
1 | 14 | |
1,184 | 1,589 | |
- | 1.2% | |
0.0 | 7.0 | |
about 5 years ago | 12 days ago | |
Go | Go | |
BSD 3-clause "New" or "Revised" License | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
skylark
-
YAML and Configuration Files
My stance is that YAML is a good format for configuration management and generation -- it's wonderful at filling gaps as your deployment model increases in complexity to provide a mechanism to "render" your configuration -- much like Skylark [1] does (derived from Google's internal GCL).
YAML ends up being a powerfully declarative model [2] for the state of a data structure, rather than a straight representation, ironically often enough being used in turn for an imperative model like in Ansible [3]. Definitely friendlier than JSON. But personally, I really like YAML because it lets me compose using a traits/mixins-like model using & and , which allows for verbose, structured configuration inputs but concise configuration files.
docker-compose YAML files extension fields [4], imo, are a great example of this type of model in action. When you leave this much pre-deserialization flexibility in your configuration representation, it makes building cool stuff like docker-compose ECS support x-aws- extension keys [5] and other plugin system-type capabilities much more straightforward than, for example, adding a new language feature to HCL.
[1]: https://github.com/google/skylark
ytt
-
10 Ways for Kubernetes Declarative Configuration Management
YTT - YTT is a templating tool that understands YAML structure. It helps you easily configure complex software via reusable templates and user provided values using the Starlark language.
-
Alternatives to Helm/Kustomize for complex Kubernetes Deployments
Adding https://carvel.dev/ytt/ to the list. I was happy using this tool as IMO it mixes good things from Helm and Kustomize, however the syntax is ugly and repelling my colleagues to have a closer look.
-
The YAML Document from Hell
> Templating yaml is a terrible, terrible idea
I've had a good time using ytt: https://carvel.dev/ytt/. It implements language-aware templating, which is IMO the only reasonable way to do it.
-
Creating Kubernetes Templates
`ytt` is part of the Carvel toolchain. https://carvel.dev/ytt/
-
Dealing with YAML overload
I agree with you on `you will want to see just plain texts instead of a bunch of templating token with hidden logic.` Which is why I think https://carvel.dev/ytt/ would be great. We could generate these templates in pipelines, or we could just make it easier to maintain what we have.
-
How to handle the lifecycle of multiple COTS
For more advanced configuration management you might be interested in ytt ( https://carvel.dev/ytt/ ) which is a "yaml-aware" templating tool. it lets you do "patches" via an overlay mechanism to add or remove specific yaml blocks, and it also lets you use a simplified python dialect for more complicated logic. With ytt you would put your DNS IP into a "data values" file and then run ytt to render it into the configs before handing them off to the deployment tool. e.g. `ytt -f | kubectl apply`
-
The Dhall Configuration Language
I said this above as well: ytt (https://carvel.dev/ytt/) lets you embed starlark into valid yaml, among other cute tricks for managing biz-logic in configs.
-
ArgoCD Instance per kubernetes cluster? (staging and prod)
Manifests are generated with ytt (https://carvel.dev/ytt/).
- Dynamically creating yaml manifests?
-
YAML and Configuration Files
This is why you should consider https://carvel.dev/ytt/
What are some alternatives?
yaml-rust - A pure rust YAML implementation.
kustomize - Customization of kubernetes YAML configurations
libyaml - Canonical source repository for LibYAML
cue - CUE has moved to https://github.com/cue-lang/cue
cue - The home of the CUE language! Validate and define text-based and dynamic configuration
tanka - Flexible, reusable and concise configuration for Kubernetes
hjson-js - Hjson for JavaScript
strictyaml - Type-safe YAML parser and validator.
json5 - JSON5 — JSON for Humans
hull - The incredible HULL - Helm Uniform Layer Library - is a Helm library chart to improve Helm chart based workflows