|
Dieses Dokument wurde mithilfe automatisierter maschineller Übersetzungstechnologie übersetzt. Wir bemühen uns um korrekte Übersetzungen, übernehmen jedoch keine Gewähr für die Vollständigkeit, Richtigkeit oder Zuverlässigkeit der übersetzten Inhalte. Im Falle von Abweichungen ist die englische Originalversion maßgebend und stellt den verbindlichen Text dar. |
|
Dies ist eine unveröffentlichte Dokumentation für Admission Controller 1.34-dev. |
Migration der ValidatingAdmissionPolicy
Ab Kubernetes v1.26 bietet die ValidatingAdmissionPolicy eine Möglichkeit, benutzerdefinierte Zulassungsrichtlinien in Kubernetes zu schreiben. Die Richtlinien werden mit dem Common Expression Language (CEL) geschrieben, erweitert um einige Kubernetes-spezifische Erweiterungen. Die ValidatingAdmissionPolicy erreichte Stabilität in Kubernetes v1.30.
SUSE Security Admission Controller bietet eine CEL-Richtlinie, die in der Lage ist, Kubernetes VAP-Richtlinien ohne Änderungen auszuführen. Sie können mehr über die CEL-Richtlinie in diesem Abschnitt der Dokumentation von Admission Controller lesen. Dieser Absatz erklärt die Vorteile der Ausführung von VAP-Richtlinien mit Admission Controller.
Dieser Leitfaden erklärt, wie Sie das kwctl-Tool verwenden, um eine VAP-Richtlinie zu Admission Controller zu migrieren.
Migrationsschritte
|
Sie müssen die Version 1.14.0 oder höher von |
Gegeben ist eine Datei, die diese YAML-Definition eines ValidatingAdmissionPolicy enthält:
ValidatingAdmissionPolicy Definition
apiVersion: admissionregistration.k8s.io/v1
kind: ValidatingAdmissionPolicy
metadata:
name: "force-liveness-probe"
spec:
failurePolicy: Fail
variables:
- name: containers_without_liveness_probe
expression: |
object.spec.template.spec.containers.filter(c, !has(c.livenessProbe)).map(c, c.name)
matchConstraints:
resourceRules:
- apiGroups: ["apps"]
apiVersions: ["v1"]
operations: ["CREATE", "UPDATE"]
resources: ["deployments"]
validations:
- expression: |
size(variables.containers_without_liveness_probe) == 0
messageExpression: |
'These containers are missing a liveness probe: ' + variables.containers_without_liveness_probe.join(' ')
reason: Invalid
Und eine Datei, die die ValidatingAdmissionPolicyBinding-Ressource enthält:
ValidatingAdmissionPolicyBinding Definition
apiVersion: admissionregistration.k8s.io/v1
kind: ValidatingAdmissionPolicyBinding
metadata:
name: "kw-scaffold-demo"
spec:
policyName: "force-liveness-probe"
validationActions: [Deny]
matchResources:
namespaceSelector:
matchLabels:
docs.kubewarden.io/vap-migration: enabled
Sie können die Richtlinie zu Admission Controller migrieren, indem Sie diese Schritte befolgen:
kwctl Befehl zur Richtlinienmigration
$ kwctl scaffold vap \
-p vap.yml \
-b vap-binding.yml
Der Befehl erzeugt eine Ausgabe, die dieser ähnelt:
Ausgabe der Migration
apiVersion: policies.kubewarden.io/v1
kind: ClusterAdmissionPolicy
metadata:
name: kw-scaffold-demo
spec:
module: ghcr.io/kubewarden/policies/cel-policy:latest
settings:
failurePolicy: Fail
variables:
- expression: |
object.spec.template.spec.containers.filter(c, !has(c.livenessProbe)).map(c, c.name)
name: containers_without_liveness_probe
validations:
- expression: |
size(variables.containers_without_liveness_probe) == 0
messageExpression: |
'These containers are missing a liveness probe: ' + variables.containers_without_liveness_probe.join(' ')
reason: Invalid
rules:
- apiGroups:
- apps
apiVersions:
- v1
resources:
- deployments
operations:
- CREATE
- UPDATE
mutating: false
namespaceSelector:
matchLabels:
docs.kubewarden.io/vap-migration: enabled
|
Der Befehl warnt den Benutzer vor der Verwendung der
Es wird empfohlen, eine spezifische Version zu verwenden, um inkompatible Änderungen zu vermeiden. Sie können dies mit dem
|