The team behind observability platform Grafana has gone ahead and done a rewrite of discontinued Heptio project ksonnet to improve Kubernetes app manifest development. The result is called Tanka and is supposed to help those who think YAML and Helm could do better in terms of reusability and syntax.
On its project page, Tanka is described as a “composable configuration utility for Kubernetes”, meaning that it can be mainly used to write configurations for the container orchestrator. Compared to Helm and YAML, which can be used to tackle the same issue, it is meant to facilitate the writing of configurations by letting devs reuse code from other project parts as libraries and allowing for a higher level of abstraction.
This is mostly due to Tanka’s use of the Jsonnet, a domain-specific language for describing JSON data. On a basic level, the software converts Jsonnet, which expresses “what should be deployed to a Kubernetes cluster”, to YAML and pipes it into kubectl which then handles cluster communication.
The idea to combine Jsonnet with Kubernetes isn’t a new one, and was, for example, implemented by Heptio in its ksonnet project. In the last couple of years however, the company reduced resources to advance ksonnet and stepped back from the project completely after being bought by VMware in 2018.
Tanka takes up the main workflow of ksonnet, but uses Jsonnet’s import and deep merging capabilities instead of more complex concepts. This is meant to help users get their application manifests done without having to learn about things like Charts (in Helm). The Grafana team also fitted Tanka with a library for creating Kubernetes objects, which DevOps folks with trouble remembering the structure of the Kubernetes API will surely appreciate.
According to Grafana, the company already uses the project in production, which should give those interested in Tanka some idea about its stability. Other aspects the monitoring experts want to tempt users with include the environmental awareness of the project which should prevent applying configs in the wrong place and diff functionalities to check changes. Tips on how to get started are available in some tutorials on the project website.
Grafana also unveiled plans to improve on a couple of aspects, which can be seen as a signal that it hasn’t released the project simply to score open source credibility points and abandon the ship. The todo list for the coming months contains improvements in packaging support, the handling of Vault secrets, and the garbage collection of removed objects.