この文書は自動機械翻訳技術を使用して翻訳されています。 正確な翻訳を提供するように努めておりますが、翻訳された内容の完全性、正確性、信頼性については一切保証いたしません。 相違がある場合は、元の英語版 英語 が優先され、正式なテキストとなります。

これは未公開の文書です 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