2 ms·
This a hundred times. Do yourself a favour and use Dhall/Cue/Jsonnet to develop some abstractions that fit your workload and environment. There is not much valu
by q3k 6y ago
This a hundred times. Do yourself a favour and use Dhall/Cue/Jsonnet to develop some abstractions that fit your workload and environment. There is not much value proposition in a tool like this if you can use a slightly lower-level, more generic tool (like a configuration-centric programming language, which is an actually full-fledged programming language) to accomplish the same goal in a more flexible and more powerful fashion, that leaves you space for evolution and unforeseen structure changes.
The idea of tools mandating what 'environments' are is absurd, as it's pretty much always different for everyone (and that's good!).
- retzkek 6y agoI've been enjoying using Tanka [1], which is a command-line tool from the Grafana team to manage k8s configurations, which you define using jsonnet. Complete flexibility, with minimal boilerplate possible by using the older (unmaintained unfortunately) ksonnet library [2] or the upcoming jsonnet-libs/k8s(-alpha) (which we're using in production) [3], or roll your own, abstracting to whatever level you find best. [1] https://tanka.dev/ https://tanka.dev/ [2] https://github.com/ksonnet/ksonnet-lib https://github.com/ksonnet/ksonnet-lib [3] https://jsonnet-libs.github.io/k8s-alpha/ https://jsonnet-libs.github.io/k8s-alpha/
- q3k 6y agoI've been using kubecfg [1] with kube.libsonnet [2]. I don't like Tanka as it imposes a given directory structure on me via scaffolding - which is a big no-no for the way I organize projects (I value very unopinionated tools in this regard). I also couldn't get into the ksonnet style of mixins/arguments, as it takes away the ease of overriding underlying Kubernetes structures. [1] - https://github.com/bitnami/kubecfg https://github.com/bitnami/kubecfg [2] - https://github.com/bitnami-labs/kube-libsonnet https://github.com/bitnami-labs/kube-libsonnet