Grafana will mit Tanka neue Wege beim Konfigurieren von Kubernetes gehen

Tanka erlaubt es Entwicklern, die Templating-Sprache Jsonnet mit Kubernetes zu verwenden. Es knüpft damit an die Ideen des eingestellten Projekts Ksonnet an.

Lesezeit: 1 Min.
In Pocket speichern
vorlesen Druckansicht Kommentare lesen 2 Beiträge

(Bild: Da Da Diamond/Shutterstock.com)

Von

Das Team der Observability-Plattform Grafana hat mit Tanka ein neues Open-Source-Projekt vorgestellt, das die Konfiguration der Container-Orchestrierung Kubernetes vereinfachen soll. Es setzt dazu auf die Templating-Sprache Jsonnet, ein Superset von JSON. Damit hat es Ähnlichkeiten zum mittlerweile eingestellten Projekt Ksonnet, laut Grafana sei es aber eine gänzliche Neuentwicklung. Das Unternehmen präsentiert Tanka als Alternative zu YAML (YAML Ain't Markup Language) und dem Paketmanager Helm.

Laut dem Blogbeitrag zur Ankündigung hat Grafana Tanka entwickelt, da sowohl YAML als auch Helm die Anforderungen des Unternehmens nicht vollständig erfüllen konnten. Demnach hätte YAML den Nachteil, für das Darstellen von Daten, nicht aber für deren Generierung ausgelegt zu sein. Möchten Entwickler Informationen in mehreren Orten dieselbe Information nutzen, bleibt nur Copy-Paste als Möglichkeit. Außerdem seien die statische Natur der Sprache sowie Unmengen an Boilerplate-Code Hindernisse beim Einsatz.

Auch mit Helm ist Grafana unzufrieden. Helm nutzt YAML-Dokumente mit einer speziellen Syntax, die dem Computer Anweisungen gibt, wie er die verschiedenen Parameter einsetzen soll. Das kann aufgrund der fragilen Syntax von YAML aber wohl häufig zu Problemen führen. Außerdem seien die Helm-Charts nur schwierig erweiterbar, äußerst komplex und bieten nur eine schwache Abstraktion.

Tanka schickt sich an, durch eine Wiederverwendbarkeit und kompaktere Syntax diese Probleme zu lösen. Es nutzt dazu das JSON-Superset Jsonnet und weist damit Ähnlichkeiten zum eingestellten Ksonnet-Projekt auf. Grafana setzt es bereits seit geraumer Zeit bei den eigenen Projekten ein, stellt es aber nun auch der gesamten Community quelloffen zur Verfügung.

Entwickler sollen mit Tanka und Jsonnet flexible und wiederverwendbare Kubernetes-Konfigurationen realisieren können. Der grundsätzliche Workflow setzt sich aus den Befehlen tk show, tk diff und tk apply zusammen. Ersteres hilft Entwicklern zu verstehen, welche YAML-Daten bei kubectl landen, während zweiteres vorgenommene Änderungen aufzeigt. Letzteres setzt im Prinzip die Konfiguration ähnlich wie kubectl apply um. Grafana bietet eine detaillierte Benutzeranleitung zum Umsetzen eines Projekts. Entwickler sollen mit Tanka einfacher Abstraktionen via Variablen und Referenzen vornehmen können.

Weiterführende Informationen bietet die Tanka-Website. Das Projekt findet sich unter der Apache-2.0-Lizenz auf GitHub. (bbo)