Testgetriebene Entwicklung von Kubernetes Operators mit Testcontainern

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.

Vorkenntnisse

  • 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.

Lernziele

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.

Speaker

 

Alex Stockinger
Alex Stockinger ist Software-Engineer mit mehr als zehn Jahren Erfahrung. In früheren Jahren vorwiegend in der Java-Welt des Beratungsgeschäfts zu finden, hat sich sein Schwerpunkt in letzter Zeit mehr und mehr in Richtung DevOps und Cluster-Orchestrierung bewegt. Seit letztem Jahr verbringt er bei AtomicJar seine Zeit in wechselnden Inception-Tiefen zwischen VMs, Containern und Kubernetes-Clustern.

CC-Newsletter

Sie möchten über die Continuous Lifecycle und die ContainerConf auf dem Laufenden gehalten werden?

 

Anmelden