|
Este documento ha sido traducido utilizando tecnología de traducción automática. Si bien nos esforzamos por proporcionar traducciones precisas, no ofrecemos garantías sobre la integridad, precisión o confiabilidad del contenido traducido. En caso de discrepancia, la versión original en inglés prevalecerá y constituirá el texto autorizado. |
|
Esta es documentación inédita para Admission Controller 1.34-dev. |
Distribuyendo directivas
Las directivas SUSE Security Admission Controller son binarios de WebAssembly (Wasm) evaluados por el servidor de directivas Admission Controller.
El servidor de directivas Admission Controller carga directivas de estas fuentes:
-
Sistema de archivos local
-
Servidor HTTP(s)
-
Registros compatibles con OCI:
Admission Controller recomienda distribuir directivas Admission Controller a través de un registro compatible con OCI. Los registros de contenedores son un requisito obligatorio para cualquier clúster de Kubernetes. Tener un único lugar para almacenar y asegurar todos los artefactos requeridos por un clúster es beneficioso.
Subiendo directivas a un registro compatible con OCI
El formato de imagen OCI permite almacenar cualquier blob binario dentro de un registro de contenedores compatible con OCI.
El registro compatible con OCI debe soportar artefactos para poder enviar con éxito una Admission Controller directiva a él.
Puedes usar la CLI kwctl para enviar una Admission Controller directiva a un registro compatible con OCI.
Anotando la directiva
También anotas una directiva con kwctl. Anotar una directiva Admission Controller se realiza añadiendo secciones personalizadas de Wasm al binario de la directiva. Esto significa que la directiva empaqueta su propia metadata.
El comando kwctl annotate requiere dos entradas:
-
la directiva Admission Controller a anotar, un archivo local en el sistema de archivos.
-
el archivo de anotaciones, un archivo que contiene una descripción en YAML de la metadata de la directiva. Este archivo suele estar ubicado en la carpeta raíz del proyecto de tu directiva.
Por ejemplo, puedes guardar este archivo como metadata.yml en el directorio actual:
rules:
- apiGroups: ["*"]
apiVersions: ["*"]
resources: ["*"]
operations: ["*"]
mutating: false
annotations:
io.kubewarden.policy.title: palindromify
io.kubewarden.policy.version: 0.1.0
io.kubewarden.policy.description: Allows you to reject palindrome names in resources and namespace names, or to only accept palindrome names
io.kubewarden.policy.author: Name Surname <name.surname@example.com>
io.kubewarden.policy.url: https://github.com/<org>/palindromify
io.kubewarden.policy.source: https://github.com/<org>/palindromify
io.kubewarden.policy.license: Apache-2.0
io.kubewarden.policy.usage: |
This is markdown text and as such allows you to define a free form usage text.
This policy allows you to reject requests if:
- The name of the resource is a palindrome name.
- The namespace name where this resource is created has a palindrome name.
This policy accepts the following settings:
- `+invert_behavior+`: bool that inverts the policy behavior. If enabled, only palindrome names will be accepted.
Ahora, vamos a anotar la directiva:
$ kwctl annotate policy.wasm \
--metadata-path metadata.yml \
--output-path annotated-policy.wasm
El proceso de anotación realiza ciertas optimizaciones en la directiva, por lo que a menudo la directiva anotada es más pequeña que la original. Esto depende considerablemente de la cadena de herramientas utilizada para producir el objeto Wasm original.
Usa kwctl inspect para comprobar tu directiva
|
Enviando la directiva
Puedes enviar una directiva anotada así:
$ kwctl push annotated-policy.wasm \
<oci-registry>/kubewarden-policies/palindromify-policy:v0.0.1
Se desaconseja enviar directivas no anotadas. El servidor de directivas utiliza la metadata proporcionada por las anotaciones para ejecutar correctamente una directiva. Por defecto, kwctl push se niega a enviar tal directiva a un registro compatible con OCI. Si necesitas una directiva sin anotar, utiliza la opción --force de kwctl push.
Puedes hacer referencia a una directiva desde el Servidor de Directivas Admission Controller o kwctl como
registry://<oci-registry>/kubewarden-policies/palindromify-policy:v0.0.1.