Dieser Vortrag wird auf Deutsch gehalten. / This Talk will be held in German.
Die Entwicklung von Kubernetes Operators in Java ist derzeit eher die Ausnahme als die Regel. Meist kommt stattdessen Go zum Einsatz – häufig wegen des besseren Toolings und umfangreicheren Testing-Supports.
Die Bibliothek kindcontainer auf Basis des Test-Frameworks Testcontainers schafft in Sachen testgetriebene Entwicklung von Operators und Controllers in Java Abhilfe.
Egal, ob nur die Control-Plane zum Testen benötigt wird oder doch die Interaktion mehrerer Operatoren bis zur Verfügbarkeit der Workloads geprüft werden muss – mit Hilfe von isoliert laufenden Kubernetes-Instanzen in Docker-Containern ist eine zuverlässige und einfach zu verwendende Teststrategie auch in JVM-Umgebungen kein Wunschdenken.
- Teilnehmende der Session sollten sich in der Java-Welt zuhause fühlen und mit dem Operator-Pattern vertraut sein.
- Auch das Deployment einer einfachen Kubernetes-Anwendung mit RBAC und Ingress sollte nicht für große Überraschungen sorgen.
Der Vortrag beschreibt zunächst die Herausforderungen beim testgetriebenen Entwickeln von Kubernetes-Operatoren. Mit Live-Coding-Beispielen wird gezeigt, wie mit Testcontainers isolierte Kubernetes-Instanzen aus JUnit-Tests heraus gestartet und in Testfällen verwendet werden. Auch weiterführende Themen wie private Docker-Registries mit eigener TLS-Infrastruktur und Zugriff auf Dienste im Test-Container via Ingress werden beleuchtet.
