Tanka
Overview
Tanka est une interface Jsonnet pour Kubernetes développée par Grafana Labs, permettant de gérer des applications Kubernetes de manière déclarative et réutilisable. L'outil utilise Jsonnet pour générer des manifests Kubernetes, offrant des fonctionnalités de templating, de composition et de réutilisabilité qui manquent dans le YAML natif.
Tanka facilite la gestion d'applications Kubernetes complexes en permettant de créer des abstractions, de réutiliser des composants, et de gérer des environnements multiples (dev, staging, production) avec des variations de configuration.
Informations essentielles
| Propriété | Valeur |
|---|---|
| Site officiel | https://tanka.dev/ |
| Licence | Apache 2.0 |
| Nationalité | International (projet open source, maintenu par Grafana Labs) |
| Déploiement | CLI, Kubernetes, CI/CD |
| Difficulté | Intermédiaire à avancé |
| Technologies | Go, Jsonnet, Kubernetes, YAML |
TL;DR
Tanka est idéal si tu veux gérer des applications Kubernetes complexes avec du templating et de la réutilisabilité, en utilisant Jsonnet plutôt que du YAML brut ou Helm. Il convient aux équipes qui apprécient les abstractions et la composition, et qui travaillent avec des configurations Kubernetes volumineuses et répétitives. L'outil offre une alternative à Helm avec plus de flexibilité et moins de dépendance aux templates Go. En contrepartie, la courbe d'apprentissage est significative (Jsonnet + Kubernetes), et l'écosystème est moins mature que Helm. La documentation peut être limitée.
Compatibilité et intégrations
- Kubernetes : compatible avec toutes les versions de Kubernetes
- Format : génère des manifests YAML Kubernetes standards
- Intégration : kubectl, GitOps (Flux, ArgoCD)
- Écosystème : utilise les libraries Jsonnet existantes
- Grafana : intégration naturelle avec l'écosystème Grafana
Avantages
- Templating puissant avec Jsonnet
- Réutilisabilité et composition de composants
- Gestion d'environnements multiples avec variations
- Génère des manifests Kubernetes standards
- Alternative flexible à Helm
- Utilisé par Grafana Labs en production
Limites
- Courbe d'apprentissage élevée (Jsonnet + Kubernetes)
- Écosystème moins mature que Helm ou Kustomize
- Documentation et exemples plus limités
- Nécessite une étape de compilation avant déploiement
- Moins connu dans la communauté Kubernetes
Ressources
- Site officiel : https://tanka.dev/
- Documentation : https://tanka.dev/docs
- Repository GitHub : https://github.com/grafana/tanka
- Exemples : https://github.com/grafana/tanka/tree/main/examples