|
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. |
Distribution d’une stratégie de Gatekeeper avec SUSE Security Admission Controller
Les stratégies doivent être annotées pour être poussées, et finalement exécutées par le SUSE Security Admission Controller policy-server dans un cluster Kubernetes.
Annoter et distribuer une stratégie de Gatekeeper est similaire à distribuer une stratégie d’Open Policy Agent.
Annotation de la stratégie
Vous allez écrire un fichier metadata.yaml dans votre répertoire de stratégie avec le contenu suivant :
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.
Vous pouvez constater que tout est identique aux métadonnées de la version Open Policy Agent, sauf pour le bit executionMode: gatekeeper.
Allez-y et annotez la stratégie :
$ kwctl annotate policy.wasm --metadata-path metadata.yaml --output-path annotated-policy.wasm
Pousser la stratégie
Poussez votre stratégie vers un registre OCI :
$ kwctl push annotated-policy.wasm registry.my-company.com/kubewarden/no-default-namespace-gatekeeper:v0.0.1
Policy successfully pushed
Déploiement sur Kubernetes
Vous devez d’abord tirer votre stratégie dans votre dépôt local kwctl :
$ kwctl pull registry://registry.my-company.com/kubewarden/no-default-namespace-gatekeeper:v0.0.1
pulling policy...
Vous pouvez maintenant créer une ressource de scaffold ClusterAdmissionPolicy:
$ 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
Utilisez maintenant cette ressource ClusterAdmissionPolicy pour déployer votre stratégie sur un cluster Kubernetes.