|
Dieses Dokument wurde mithilfe automatisierter maschineller Übersetzungstechnologie übersetzt. Wir bemühen uns um korrekte Übersetzungen, übernehmen jedoch keine Gewähr für die Vollständigkeit, Richtigkeit oder Zuverlässigkeit der übersetzten Inhalte. Im Falle von Abweichungen ist die englische Originalversion maßgebend und stellt den verbindlichen Text dar. |
|
Dies ist eine unveröffentlichte Dokumentation für Admission Controller 1.34-dev. |
Kubernetes-Funktionen
Die kontextsensitiven Richtlinien von SUSE Security Admission Controller benötigen Zugriff auf Ressourcen aus dem Kubernetes-Cluster, in dem sie ausgeführt werden. Dafür stellen die Admission Controller SDKs Funktionen zur Verfügung, die das waPC-Kommunikationsprotokoll verwenden, um mit dem Hostsystem zu kommunizieren und Daten über den Cluster anzufordern.
waPC-Protokollvertrag
Intern nutzen die SDKs diese Funktionen, die von der Richtlinien-Host-Umgebung bereitgestellt werden:
-
list_resources_by_namespace: Geben Sie einen Ressourcentyp und einen Namespace an, und listen Sie alle Ressourcen dieses Typs auf, die darin definiert sind. Dies kann nicht verwendet werden, um clusterweite Ressourcen wieNamespaceaufzulisten. -
list_resources_all: Geben Sie einen Ressourcentyp an, und listen Sie alle Ressourcen dieses Typs auf, die im gesamten Cluster definiert sind. Dies kann verwendet werden, um clusterweite Ressourcen wieNamespaceaufzulisten. -
get_resource: Finden Sie die genaue Ressource, die durch den angegebenen Ressourcentyp, den gegebenen Namen und einen optionalen Namespace-Identifikator identifiziert wird.
Diese Gast-Host-Kommunikation erfolgt über den standardmäßigen waPC-Host-Aufrufmechanismus. Jeder Gast, der den waPC-Interkommunikationsmechanismus implementiert, kann diese Informationen vom Host anfordern.
waPC hat die folgenden Funktionsargumente, wenn ein Aufruf vom Gast an den Host durchgeführt wird:
-
Bindung -
kubewarden -
Namespace -
kubernetes -
Operation -
list_resources_all,list_resources_by_namespaceoderget_resource -
Payload - Eingabepayload - siehe unten
und gibt zurück:
-
Payload - Ausgabepayload - siehe unten
Vertraglich oder durch Konvention können Richtlinien die Informationen des Kubernetes-Clusters auf folgende Weise abrufen:
Operation - list_resources_all
Eingabegerät
# API Group version. Use `+v1+` for the `+core+` group and
# `+groupName/groupVersion+` for all other groups
"api_version": string,
# Resource kind
"kind": string,
# Label selector to filter the resources
"label_selector": string,
# Field selector to filter the resources
"field_selector": string,
# Field masks: A list of fields to include in the response.
#
# If strictly defined, the host will prune the Kubernetes resource to contain *only*
# the specified fields, reducing memory usage and serialization overhead.
"field_masks": [string]
Ausgabe
Gibt ein Kubernetes List zurück, das eine Sammlung von Kubernetes-Objekten desselben Typs ist.
|
Verwenden Sie diese API-Funktion, um clusterweite Ressourcen abzurufen (z. B. Namespaces) |
Operation - list_resources_by_namespace
Eingabegerät
{
# API Group version. Use `+v1+` for the `+core+` group and
# `+groupName/groupVersion+` for all other groups
"api_version": string,
# Resource kind
"kind": string,
# Namespace where the requested resource lives in
"namespace": string,
# Label selector to filter the resources
"label_selector": string,
# Field selector to filter the resources
"field_selector": string,
# Field masks: A list of fields to include in the response.
#
# If strictly defined, the host will prune the Kubernetes resource to contain *only*
# the specified fields, reducing memory usage and serialization overhead.
"field_masks": [string]
}
Ausgabe
Gibt ein Kubernetes List zurück, das eine Sammlung von Kubernetes-Objekten desselben Typs ist.
|
Diese API-Funktion gibt einen Fehler zurück, wenn sie verwendet wird, um clusterweite Ressourcen abzurufen (zum Beispiel Namespaces).
Verwenden Sie das |
Operation - get_resource
Caching
Das Ergebnis der get_resource Operation wird standardmäßig fünf Sekunden lang zwischengespeichert, um die Leistung zu verbessern und unnötige Last auf dem Kubernetes-API-Server zu reduzieren.
Verwenden Sie das disable_cache Feld, um den Cache zu umgehen, wenn frische Daten benötigt werden.
Eingabegerät
{
# API Group version. Use `+v1+` for the `+core+` group
# and `+groupName/groupVersion+` for all other groups
"api_version": string,
# Singular PascalCase name of the resource
"kind": string,
# Namespace scoping the search
"namespace": string,
# The name of the resource
"name": string,
# Disable caching of results obtained from Kubernetes API Server
"disable_cache": bool,
# Field masks: A list of fields to include in the response.
#
# If strictly defined, the host will prune the Kubernetes resource to contain *only*
# the specified fields, reducing memory usage and serialization overhead.
"field_masks": [string]
}