|
この文書は自動機械翻訳技術を使用して翻訳されています。 正確な翻訳を提供するように努めておりますが、翻訳された内容の完全性、正確性、信頼性については一切保証いたしません。 相違がある場合は、元の英語版 英語 が優先され、正式なテキストとなります。 |
|
これは未公開の文書です Admission Controller 1.36-dev. |
新しいバリデーションポリシーの作成
このチュートリアルでは、Podオブジェクトのホスト名を検証するポリシーの作成について説明します。
このポリシーは、拒否リストにある1つ以上のホスト名を使用するすべてのPodを拒否します。 ランタイム設定を使用してポリシー構成を提供します。
要約すると、ポリシー設定は次のようになります:
denied_hostnames:
- bad-host
- forbidden-host
このポリシーは、このPodの作成を拒否します:
apiVersion: v1
kind: Pod
metadata:
name: nginx
spec:
hostname: bad-host
containers:
- name: nginx
image: nginx:latest
しかし、このPodの作成は受け入れます:
apiVersion: v1
kind: Pod
metadata:
name: nginx
spec:
hostname: allowed-host
containers:
- name: nginx
image: nginx:latest
新しいポリシープロジェクトの雛形作成
テンプレートリポジトリを使用して新しいポリシープロジェクトを作成できます。ページの上部近くにある「このテンプレートを使用」緑色のボタンを選択し、GitHubのウィザードに従ってください。 リポジトリをローカルにクローンし、ポリシーの詳細を反映するように`package.json`ファイルを更新してください:
{
"name": "your-policy-name",
"version": "1.0.0",
"description": "Your policy description",
"repository": {
"type": "git",
"url": "https://github.com/your-username/your-policy-name"
}
}
実際のGitHubリポジトリに一致するパスを使用してください。
テスト
必要なツールが整っている場合、`make all`コマンドは`annotated-policy.wasm`ターゲットをビルドします。コマンド`make e2e`は、`bats`を使用して`kwctl`でテストを実行します。
`make`コマンドからの出力
make all
npx webpack --config webpack.config.cjs
asset bundled.js 5.52 KiB [compared for emit] [minimized] (name: main)
asset types.d.ts 430 bytes [compared for emit]
asset index.d.ts 11 bytes [compared for emit]
./src/index.ts 3.84 KiB [built] [code generated]
./node_modules/kubewarden-policy-sdk/dist/bundle.js 3.85 KiB [built] [code generated]
webpack 5.101.3 compiled successfully in 2280 ms
npm install
up to date, audited 400 packages in 2s
58 packages are looking for funding
run `+npm fund+` for details
found 0 vulnerabilities
make e2e
npx webpack --config webpack.config.cjs
asset bundled.js 5.52 KiB [compared for emit] [minimized] (name: main)
asset types.d.ts 430 bytes [compared for emit]
asset index.d.ts 11 bytes [compared for emit]
./src/index.ts 3.84 KiB [built] [code generated]
./node_modules/kubewarden-policy-sdk/dist/bundle.js 3.85 KiB [built] [code generated]
webpack 5.101.3 compiled successfully in 1909 ms
bats e2e.bats
e2e.bats
✓ reject because hostname is on the deny list
✓ accept because hostname is not on the deny list
✓ accept because the deny list is empty
✓ accept because pod has no hostname set
✓ accept non-pod resources
5 tests, 0 failures