|
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 una directiva de Gatekeeper con SUSE Security Admission Controller
Las directivas deben ser anotadas para que puedan ser enviadas y, eventualmente, ejecutadas por el SUSE Security Admission Controller policy-server en un clúster de Kubernetes.
Anotar y distribuir una directiva de Gatekeeper es similar a distribuir una de Open Policy Agent.
Anotando la directiva
Vas a escribir un archivo metadata.yaml en tu directorio de directivas con el contenido:
rules:
- apiGroups: [""]
apiVersions: ["*"]
resources: ["*"]
operations: ["CREATE"]
mutating: false
contextAware: false
executionMode: gatekeeper
annotations:
io.kubewarden.policy.title: no-default-namespace
io.kubewarden.policy.version: 0.1.0 # should match the OCI tag
io.kubewarden.policy.description: This policy will reject any resource created inside the default namespace
io.kubewarden.policy.author: The Admission Controller Authors
io.kubewarden.policy.url: https://github.com/kubewarden/some-policy
io.kubewarden.policy.source: https://github.com/kubewarden/some-policy
io.kubewarden.policy.license: Apache-2.0
io.kubewarden.policy.usage: |
This policy is just an example.
You can write interesting descriptions about the policy here.
Puedes ver que todo es igual que los metadatos de la versión de Open Policy Agent, excepto por el executionMode: gatekeeper.
Adelante, anota la directiva:
$ kwctl annotate policy.wasm --metadata-path metadata.yaml --output-path annotated-policy.wasm
Enviando la directiva
Envía tu directiva a un registro OCI:
$ kwctl push annotated-policy.wasm registry.my-company.com/kubewarden/no-default-namespace-gatekeeper:v0.0.1
Policy successfully pushed
Desplegando en Kubernetes
Primero tienes que extraer tu directiva a tu almacén local kwctl:
$ kwctl pull registry://registry.my-company.com/kubewarden/no-default-namespace-gatekeeper:v0.0.1
pulling policy...
Ahora puedes crear un recurso ClusterAdmissionPolicy de andamiaje:
$ kwctl scaffold manifest registry://registry.my-company.com/kubewarden/no-default-namespace-gatekeeper:v0.0.1 --type ClusterAdmissionPolicy
---
apiVersion: policies.kubewarden.io/v1alpha2
kind: ClusterAdmissionPolicy
metadata:
name: generated-policy
spec:
module: "registry://registry.my-company.com/kubewarden/no-default-namespace-gatekeeper:v0.0.1"
settings: {}
rules:
- apiGroups:
- ""
apiVersions:
- "*"
resources:
- "*"
operations:
- CREATE
mutating: false
Ahora utiliza este recurso ClusterAdmissionPolicy para desplegar tu directiva en un clúster de Kubernetes.