VSHN.timer #29: Configuration & Infrastructure as Code

Welcome to another VSHN.timer! Every Monday, 5 links related to Kubernetes, OpenShift, CI / CD, and DevOps; all stuff coming out of our own chat system, making us think, laugh, or simply work better.

This week we are going to talk about different tools and techniques to declare and configure infrastructure as code.

1. CfgMgmtCamp Ghent 2020 just ended (how do you even pronounce the name?) so let’s talk configuration. As explained by Adrien Trouillaud, „There are two basic ways to deploy to Kubernetes: imperatively, with the many kubectl commands, or declaratively, by writing manifests and using kubectl apply.“ Of course in VSHN we’re great fans of infrastructure as code and GitOps, and our upcoming Project Syn is all about that.

https://medium.com/payscale-tech/imperative-vs-declarative-a-kubernetes-tutorial-4be66c5d8914

2. JSON or YAML? These days we need a bit more than that. Systems like Kustomize showed the way to extensible systems, where DRY is king. The latest contenders in the game are Jsonnet and jk. The latter allows us to write JavaScript templates, which can generate YAML or JSON as required. Another layer of abstraction, hopefully not a leaky one.

https://jkcfg.github.io/

3. In the same vein as jk, the Dhall configuration language proposes a mechanism to create a „single source of truth“ for all of our configuration needs.

https://dhall-lang.org/

4. If you work with Kubernetes (who doesn’t these days?) you will find KUDO and Tanka to be useful additions to your toolbelt. The former is a toolkit to build Kubernetes Operators using plain YAML, while the latter is composable configuration utility based on Jsonnet.

https://tanka.dev/

5. For those working with cloud providers such as Azure, Google Cloud, or AWS, you might want to try out Gyro and Checkov. Gyro abstracts all infrastructure with an ad-hoc configuration language, while Checkov provides ready-to-use best practices and policies to apply in major cloud environments. But whatever tool you use for your configuration, whatever your environment, remember:

https://gyro.dev/

How do you manage configuration changes? Do you use some of the tools described in this article? Do you have some others to recommend? Get in touch with us through the form at the bottom of this page, and see you next week for another edition of VSHN.timer.