Kapitel 5. Codegenerierung automatisieren
Diese Arbeit wurde mithilfe von KI übersetzt. Wir freuen uns über dein Feedback und deine Kommentare: translation-feedback@oreilly.com
In diesem Kapitel lernst du, wie du die Kubernetes-Codegeneratoren in Go-Projekten verwenden kannst, um auf natürliche Weise eigene Ressourcen zu schreiben. Codegeneratoren werden häufig bei der Implementierung nativer Kubernetes-Ressourcen verwendet, und wir werden genau diese Generatoren auch hier einsetzen.
Warum Codegenerierung
Go ist von Haus aus eine einfache Sprache. Ihr fehlen höhere oder sogar metaprogrammierähnliche Mechanismen, um Algorithmen für verschiedene Datentypen auf generische (d.h. typunabhängige) Weise auszudrücken. Der "Go-Weg" besteht darin, stattdessen externe Codegenerierung zu verwenden.
Schon sehr früh im Entwicklungsprozess von Kubernetes musste immer mehr Code umgeschrieben werden, da dem System immer mehr Ressourcen hinzugefügt wurden. Die Codegenerierung machte die Wartung dieses Codes viel einfacher. Schon sehr früh wurde die Gengo-Bibliothek entwickelt, und auf der Grundlage von Gengo wurde schließlich k8s.io/code-generator als extern nutzbare Sammlung von Generatoren entwickelt. Wir werden diese Generatoren in den folgenden Abschnitten für CRs verwenden.
Anrufen der Generatoren
Normalerweise werden die Codegeneratoren in jedem Controller-Projekt auf die gleiche Weise aufgerufen. Nur Pakete, Gruppennamen und API-Versionen unterscheiden sich. Der Aufruf des Skripts k8s.io/code-generator/generate-groups.sh ...
Get Kubernetes programmieren now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.