|
Ce document a été traduit à l'aide d'une technologie de traduction automatique. Bien que nous nous efforcions de fournir des traductions exactes, nous ne fournissons aucune garantie quant à l'exhaustivité, l'exactitude ou la fiabilité du contenu traduit. En cas de divergence, la version originale anglaise prévaut et fait foi. |
|
Il s'agit d'une documentation non publiée pour Admission Controller 1.34-dev. |
Fonctionnalités de Kubernetes
Les stratégies contextuelles de SUSE Security Admission Controller nécessitent un accès aux ressources du cluster Kubernetes où elles s’exécutent. Pour cela, les SDK Admission Controller exposent des fonctions qui utilisent le protocole de communication waPC pour communiquer avec le système hôte en demandant des données sur le cluster.
Contrat du protocole waPC
En interne, les SDK s’appuient sur ces fonctions exposées par l’environnement hôte de la stratégie :
-
list_resources_by_namespace: Étant donné un type de ressource et un espace de noms, listez toutes les ressources de ce type qui y sont définies. Cela ne peut pas être utilisé pour lister les ressources à l’échelle du cluster, commeNamespace. -
list_resources_all: Étant donné un type de ressource, listez toutes les ressources de ce type qui sont définies dans l’ensemble du cluster. Cela peut être utilisé pour lister les ressources à l’échelle du cluster, commeNamespace. -
get_resource: Trouvez la ressource exacte identifiée par le type de ressource donné, le nom donné et un identifiant d’espace de noms optionnel.
Cette communication invité-hôte est effectuée en utilisant le mécanisme d’appel hôte standard waPC. Tout invité implémentant le mécanisme d’intercommunication waPC est capable de demander cette information à l’hôte.
waPC a les arguments de fonction suivants lors de l’appel de l’invité à l’hôte :
-
Liaison -
kubewarden -
Espace de noms -
kubernetes -
Opération -
list_resources_all,list_resources_by_namespaceouget_resource -
Charge utile - charge utile d’entrée - voir ci-dessous
et renvoie :
-
Charge utile - charge utile de sortie - voir ci-dessous
Par contrat, ou par convention, les stratégies peuvent récupérer les informations du cluster Kubernetes en appelant l’hôte de la manière suivante :
Opération - list_resources_all
Entrée
# 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]
Sortie
Retourne un Kubernetes List, qui est une collection d’objets Kubernetes du même type.
|
Utilisez cette fonction API pour récupérer des ressources à l’échelle du cluster (par exemple, des espaces de noms) |
Opération - list_resources_by_namespace
Entrée
{
# 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]
}
Sortie
Retourne un Kubernetes List, qui est une collection d’objets Kubernetes du même type.
|
Cette fonction API renvoie une erreur lorsqu’elle est utilisée pour récupérer des ressources à l’échelle du cluster (par exemple, des espaces de noms).
Utilisez le |
Opération - get_resource
Caching
Le résultat de l’opération get_resource est mis en cache pendant cinq secondes par défaut pour améliorer les performances et réduire la charge inutile sur le serveur API Kubernetes.
Utilisez le champ disable_cache pour contourner le cache lorsque des données fraîches sont requises.
Entrée
{
# 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]
}