|
Este documento foi traduzido usando tecnologia de tradução automática de máquina. Sempre trabalhamos para apresentar traduções precisas, mas não oferecemos nenhuma garantia em relação à integridade, precisão ou confiabilidade do conteúdo traduzido. Em caso de qualquer discrepância, a versão original em inglês prevalecerá e constituirá o texto official. |
|
Esta é uma documentação não divulgada para Admission Controller 1.34-dev. |
Capacidades do Kubernetes
As políticas contextuais SUSE Security Admission Controller requerem acesso aos recursos do cluster Kubernetes onde estão sendo executadas. Para isso, os SDKs Admission Controller expõem funções que utilizam o protocolo de comunicação waPC para se comunicar com o sistema host solicitando dados sobre o cluster.
Contrato do protocolo waPC
Internamente, os SDKs dependem dessas funções expostas pelo ambiente do host de políticas:
-
list_resources_by_namespace: Dado um tipo de recurso e um namespace, liste todos os recursos desse tipo que estão definidos nele. Isso não pode ser usado para listar recursos em todo o cluster, comoNamespace. -
list_resources_all: Dado um tipo de recurso, liste todos os recursos desse tipo que estão definidos dentro de todo o cluster. Isso pode ser usado para listar recursos em todo o cluster, comoNamespace. -
get_resource: Encontre o recurso exato identificado pelo tipo de recurso dado, nome dado e um identificador de namespace opcional.
Essa comunicação entre convidado e host é realizada usando o mecanismo padrão de chamada do host waPC. Qualquer convidado que implemente o mecanismo de intercomunicação waPC é capaz de solicitar essas informações do host.
O waPC tem os seguintes argumentos de função ao realizar uma chamada do convidado para o host:
-
Vinculação -
kubewarden -
Namespace -
kubernetes -
Operação -
list_resources_all,list_resources_by_namespaceouget_resource -
Carga útil - carga útil de entrada - veja abaixo
e retorna:
-
Carga útil - carga útil de saída - veja abaixo
Por contrato, ou por convenção, as políticas podem recuperar as informações do cluster Kubernetes chamando o host das seguintes maneiras:
Operação - list_resources_all
Entrada
# 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]
Saída
Retorna um Kubernetes List, que é uma coleção de objetos Kubernetes do mesmo tipo.
|
Use esta função da API para buscar recursos em todo o cluster (por exemplo, namespaces) |
Operação - list_resources_by_namespace
Entrada
{
# 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]
}
Saída
Retorna um Kubernetes List, que é uma coleção de objetos Kubernetes do mesmo tipo.
|
Esta função da API retorna um erro quando usada para buscar recursos em todo o cluster (por exemplo, namespaces).
Use o |
Operação - get_resource
Armazenamento em cache
O resultado da operação get_resource é armazenado em cache por cinco segundos por padrão para melhorar o desempenho e reduzir a carga desnecessária no servidor da API Kubernetes.
Use o campo disable_cache para ignorar o cache quando dados frescos forem necessários.
Entrada
{
# 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]
}