|
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. |
Erstellen einer Richtlinie
Als Beispiel erstellen Sie eine einfache Validierungsrichtlinie, die Pod-Erstellungsanfragen verarbeitet.
Die Richtlinie betrachtet das metadata.name Attribut des Pods und lehnt Pods mit einem ungültigen Namen ab.
Die Liste der ungültigen Namen sollte von den Endbenutzern der Richtlinie konfigurierbar sein.
Die Richtlinieneinstellungen sehen ungefähr so aus:
invalid_names:
- bad_name1
- bad_name2
Die Richtlinie sollte die Erstellung eines Pods wie dem folgenden akzeptieren:
apiVersion: v1
kind: Pod
metadata:
name: nginx
spec:
containers:
- name: nginx
image: nginx:latest
Die Richtlinie sollte die Erstellung eines Pods wie dem folgenden ablehnen:
apiVersion: v1
kind: Pod
metadata:
name: bad_name1
spec:
containers:
- name: nginx
image: nginx:latest
Gerüst für das neue Richtlinienprojekt erstellen
Sie können ein neues Richtlinienprojekt erstellen, indem Sie cargo generate mit dem Vorlagenprojekt verwenden.
Zuerst installieren Sie cargo-generate. Dies erfordert openssl-devel.
cargo install cargo-generate
Jetzt erstellen Sie das Gerüst für das Projekt wie folgt:
cargo generate --git https://github.com/kubewarden/rust-policy-template \
--branch main \
--name demo
Der Befehl erzeugt eine Ausgabe wie:
🔧 Creating project called `+demo+`...
✨ Done! New project created /<some-path-name>/demo
Dies erstellt das neue Richtlinienprojekt im demo Unterverzeichnis.
|
Wenn Sie die Funktionalität des GitHub-Container-Registrierungsdienstes in der Demo nutzen möchten, müssen Sie verbesserte Containerunterstützung aktivieren. |
Tester
Sie können Folgendes ausprobieren:
cargo test
Dies testet das generierte Gerüst. Wenn alles korrekt an seinem Platz ist, sehen Sie eine Reihe von Kompilierungsnachrichten, die mit einer Ausgabe enden wie:
running 4 tests
test settings::tests::validate_settings ... ok
test tests::accept_request_with_non_pod_resource ... ok
test tests::accept_pod_with_valid_name ... ok
test tests::reject_pod_with_invalid_name ... ok
test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s