Anhang B. Überprüfung der benutzerdefinierten Ressource
Wenn du eine neue API hinzufügst, generiert das Operator SDK ein Skelett für eine benutzerdefinierte Ressourcendefinition. Dieses Skelett kann so verwendet werden, wie es ist; es müssen keine weiteren Änderungen oder Ergänzungen vorgenommen werden, um eigene Ressourcen zu erstellen.
Das Skelett-CRD erreicht diese Flexibilität, indem es einfach die spec und status Abschnitte, die die Benutzereingaben bzw. den Status der benutzerdefinierten Ressourcen darstellen, als offene Objekte definieren:
spec:type:objectstatus:type:object
Der Nachteil dieses Ansatzes ist, dass Kubernetes nicht in der Lage ist, die Daten in diesen Feldern zu überprüfen. Da Kubernetes nicht weiß, welche Werte erlaubt sind und welche nicht, sind die Werte erlaubt, solange das Manifest geparst wird.
Um dieses Problem zu lösen, enthalten CRDs Unterstützung für die OpenAPI-Spezifikation, um die Validierungsbedingungen für jedes ihrer Felder zu beschreiben. Du musst diese Validierung manuell zum CRD hinzufügen, um die zulässigen Werte sowohl für spec als auch für status Abschnitte zu beschreiben.
Du nimmst zwei wichtige Änderungen im Abschnitt spec des CRD vor:
-
Füge eine Karte
propertieshinzu. Füge für jedes der Attribute, die für benutzerdefinierte Ressourcen dieses Typs angegeben werden können, einen Eintrag zu dieser Map hinzu, zusammen mit Informationen über den Typ des Parameters und die zulässigen Werte. -
Optional kannst du ein
requiredFeld hinzufügen, ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access