|
この文書は自動機械翻訳技術を使用して翻訳されています。 正確な翻訳を提供するように努めておりますが、翻訳された内容の完全性、正確性、信頼性については一切保証いたしません。 相違がある場合は、元の英語版 英語 が優先され、正式なテキストとなります。 |
|
これは未公開の文書です Admission Controller 1.34-dev. |
ポリシーの作成
例として、Podの作成リクエストを処理するシンプルな検証ポリシーを作成します。
ポリシーはPodの`metadata.name`属性を確認し、無効な名前を持つPodを拒否します。 無効な名前のリストは、ポリシーのエンドユーザーによって構成可能であるべきです。
ポリシー設定は次のようになります。
invalid_names:
- bad_name1
- bad_name2
ポリシーは次のようなPodの作成を受け入れるべきです。
apiVersion: v1
kind: Pod
metadata:
name: nginx
spec:
containers:
- name: nginx
image: nginx:latest
ポリシーは次のようなPodの作成を拒否するべきです。
apiVersion: v1
kind: Pod
metadata:
name: bad_name1
spec:
containers:
- name: nginx
image: nginx:latest
新しいポリシープロジェクトのスキャフォールディング
`cargo generate`とhttps://github.com/kubewarden/rust-policy-template[テンプレートプロジェクト]を使用して、新しいポリシープロジェクトを作成できます。
まず、`cargo-generate`をインストールします。これにはhttps://pkgs.org/download/openssl-devel[openssl-devel]が必要です。
cargo install cargo-generate
次に、プロジェクトを次のようにスキャフォールディングします。
cargo generate --git https://github.com/kubewarden/rust-policy-template \
--branch main \
--name demo
コマンドは次のような出力を生成します。
🔧 Creating project called `+demo+`...
✨ Done! New project created /<some-path-name>/demo
これにより、`demo`サブディレクトリに新しいポリシープロジェクトが作成されます。
|
デモでGitHubコンテナレジストリ機能を使用する予定がある場合は、https://docs.github.com/en/packages/working-with-a-github-packages-registry/enabling-improved-container-support-with-the-container-registry#enabling-the-container-registry-for-your-personal-account[改善されたコンテナサポートを有効にする]必要があります。 |
テスト
次のように試すことができます。
cargo test
これにより、生成されたスキャフォールディングがテストされます。すべてが正しく配置されていれば、次のような出力で終わる一連のコンパイルメッセージが表示されます。
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