第4章 ポリシージェネレーターの統合
ポリシージェネレーターを統合すると、Red Hat Advanced Cluster Management for Kubernetes ポリシーを自動的にビルドできます。ポリシージェネレーターを統合するには、ポリシージェネレーター を参照してください。
ポリシージェネレーターで実行できる操作の例は、Compliance Operator をインストールするポリシーの生成 を参照してください。
4.1. ポリシージェネレーター リンクのコピーリンクがクリップボードにコピーされました!
ポリシージェネレーターは、Kustomize を使用して Red Hat Advanced Cluster Management ポリシーを生成する Red Hat Advanced Cluster Management for Kubernetes アプリケーションライフサイクルサブスクリプション Red Hat OpenShift GitOps ワークフローに含まれています。ポリシージェネレーターは、設定に使用される PolicyGenerator マニフェスト YAML ファイル提供の Kubernetes マニフェスト YAML ファイルから Red Hat Advanced Cluster Management ポリシーをビルドします。ポリシージェネレーターは、Kustomize ジェネレータープラグインとして実装されます。Kustomize の詳細は、Kustomize のドキュメント を参照してください。
詳細は、以下のセクションを参照してください。
4.1.1. ポリシージェネレーター機能 リンクのコピーリンクがクリップボードにコピーされました!
ポリシージェネレーターと Red Hat Advanced Cluster Management アプリケーションライフサイクルサブスクリプション OpenShift GitOps ワークフローとの統合により、OpenShift Container Platform マネージドクラスターへの Kubernetes リソースオブジェクトの配布と、Red Hat Advanced Cluster Management ポリシーによる Kubernetes クラスターへの配布がシンプルになります。
ポリシージェネレーターを使用して、次のアクションを実行します。
- Kustomize ディレクトリーから作成されたマニフェストを含む、任意の Kubernetes マニフェストファイルを Red Hat Advanced Cluster Management 設定ポリシーに変換します。
- 生成された Red Hat Advanced Cluster Management ポリシーに挿入される前に、入力された Kubernetes マニフェストにパッチを適用します。
- Red Hat Advanced Cluster Management for Kubernetes で、Gatekeeper ポリシー違反を報告できるように追加の設定ポリシーを生成します。
- ハブクラスターでポリシーセットを生成します。
4.1.2. ポリシージェネレーターの設定構造 リンクのコピーリンクがクリップボードにコピーされました!
ポリシージェネレーターは、PolicyGenerator の種類および policy.open-cluster-management.io/v1 API バージョンのマニフェストで設定される Kustomize ジェネレータープラグインです。以下に、設定構造の詳細を記載しています。
プラグインを使用するには、
kustomization.yamlファイルにgeneratorsセクションを追加します。以下の例を参照してください。generators: - policy-generator-config.yaml
generators: - policy-generator-config.yaml1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 直前の例で参照される
policy-generator-config.yamlファイルは、生成するポリシーの手順を含む YAML ファイルです。
単純な
PolicyGenerator設定ファイルは以下の例のようになります。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
configmap.yamlは、ポリシーに含まれる Kubernetes マニフェスト YAML ファイルを表します。また、Kustomize ディレクトリー、または複数の Kubernetes マニフェスト YAML ファイルを含むディレクトリーへのパスを設定できます。以下の例を参照してください。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow また、
object-templates-rawマニフェストを使用して、追加したコンテンツを含むConfigurationPolicyを自動的に生成できます。以下の例を参照してください。たとえば、以下の構文でマニフェストファイルを作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
次に、以下の YAML と同様の
PolicyGenerator設定ファイルを作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
manifest.yamlファイルへのパス。
生成された
Policy、PlacementとPlacementBindingは以下の例のようになります。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.1.3. ポリシージェネレーター設定表 (参照用) リンクのコピーリンクがクリップボードにコピーされました!
policyDefaults セクションのすべてのフィールド (namespace を除く) はポリシーごとにオーバーライドでき、policySetDefaults セクションのすべてのフィールドはポリシーセットごとにオーバーライドできます。
| フィールド | 任意または必須 | 説明 |
|---|---|---|
|
| 必須 |
この値は |
|
| 必須 |
ポリシーのタイプを指定するには、値を |
|
| 必須 | ポリシーリソースを識別する名前。 |
|
| 任意 |
複数のポリシーが同じ配置を使用する場合、この名前は結果の |
|
| 必須 |
|
|
| 必須 | すべてのポリシーの namespace。 |
|
| 任意 |
マニフェストとクラスターのオブジェクトを比較する場合のポリシーコントローラーの動作を決定します。使用できる値は、 |
|
| 任意 |
マニフェストメタデータセクションをクラスター上のオブジェクトと比較するときに、 |
|
| 任意 |
|
|
| 任意 |
|
|
| 任意 |
|
|
| 任意 |
ポリシーの |
|
| 任意 |
生成された設定ポリシーに設定するアノテーションのキーと値のペアです。たとえば、 |
|
| 任意 |
すべてのポリシーのラベルとアノテーションをコピーし、レプリカポリシーに追加します。デフォルトでは |
|
| 任意 |
ポリシー違反の重大度。デフォルト値は |
|
| 任意 |
ポリシーが無効になっているかどうか、つまり、ポリシーが伝播されておらず、結果としてステータスがないことを意味します。ポリシーを有効にするデフォルト値は |
|
| 任意 |
ポリシーの修復メカニズム。パラメーターの値は |
|
| namespace に属するオブジェクトに namespace が指定されていない場合に必須 |
オブジェクトが適用されるマネージドクラスター内の namespace を決定します。 |
|
| 任意 |
特定のコンプライアンス状態にある場合にポリシーが評価される頻度を指定するには、パラメーター |
|
| 任意 |
ポリシーが削除されたときに、ポリシーによって作成または監視されているオブジェクトを削除するかどうかを決定します。プルーニングは、ポリシーの修復アクションが |
|
| 任意 |
更新が必要な場合に、オブジェクトを削除して再作成するかどうかを記述します。
|
|
| 任意 |
クラスター上のオブジェクトとポリシー内の |
|
| 任意 |
このポリシーが適用される前に、特定のコンプライアンス状態にある必要があるオブジェクトのリスト。 |
|
| 必須 | 依存しているオブジェクトの名前。 |
|
| 任意 | 依存しているオブジェクトの namespace。デフォルトは、ポリシージェネレーターに設定されたポリシーの namespace です。 |
|
| 任意 |
オブジェクトが必要とするコンプライアンス状態。デフォルト値は |
|
| 任意 |
オブジェクトの種類。デフォルトでは、種類は |
|
| 任意 |
オブジェクトの API バージョン。デフォルト値は |
|
| 任意 | 作成するポリシーの説明。 |
|
| 任意 |
このポリシーが適用される前に、特定のコンプライアンス状態にある必要があるオブジェクトのリスト。定義した依存関係は、 |
|
| 必須 | 依存しているオブジェクトの名前。 |
|
| 任意 | 依存しているオブジェクトの namespace。デフォルトでは、値はポリシージェネレーターに設定されたポリシーの namespace 間に設定されます。 |
|
| 任意 |
オブジェクトが必要とするコンプライアンス状態。デフォルト値は |
|
| 任意 |
オブジェクトの種類。デフォルト値は |
|
| 任意 |
オブジェクトの API バージョン。デフォルト値は |
|
| 任意 |
ポリシージェネレーターがその依存関係が目的の状態に達するのを待機しているときに、コンプライアンスステータスチェックをバイパスします。デフォルト値は |
|
| 任意 |
ポリシーの |
|
| 任意 |
ポリシーテンプレートに |
|
| 任意 |
これは、ポリシーでラップされるすべてのマニフェストに対して設定ポリシーを 1 つ生成するかどうかを決定します。 |
|
| 任意 |
Gatekeeper マニフェストを設定ポリシーで定義せずに直接使用するには、 |
|
| 任意 |
このポリシーが Kyverno ポリシーマニフェストを参照すると、Kyverno ポリシーの違反時に Red Hat Advanced Cluster Management でポリシー違反を受け取るために、設定ポリシーを追加で生成するかどうかが決定されます。デフォルト値は |
|
| 任意 |
ポリシーの |
|
| 任意 |
ポリシーが参加するポリシーセットの配列。ポリシーセットの詳細は、 |
|
| 任意 |
ポリシーの配置マニフェストを生成します。デフォルトでは |
|
| 任意 |
ポリシーがポリシーセットの一部である場合、デフォルトでは、ポリシーセットの配置が生成されるため、ジェネレーターはこのポリシーの配置を生成しません。ポリシーの配置とポリシーセットの配置の両方でポリシーをデプロイするには、 |
|
| 任意 | ポリシーの配置設定。このデフォルトは、すべてのクラスターに一致する配置設定になります。 |
|
| 任意 | 同じクラスターラベルセレクターを含む配置を統合するための名前を指定します。 |
|
| 任意 |
|
|
| 任意 |
クラスターにすでに存在する配置を使用するには、このパラメーターを定義します。 |
|
| 任意 |
既存の配置を再利用するには、 |
|
| 任意 |
|
|
| 任意 |
|
|
| 任意 |
|
|
| 任意 |
ポリシーセットのデフォルト値。このパラメーターにリストされているデフォルト値は、 |
|
| 任意 |
ポリシーの配置設定。このデフォルトは、すべてのクラスターに一致する配置設定になります。このフィールドの説明は、 |
|
| 任意 |
ポリシーセットの配置マニフェストを生成します。デフォルトでは |
|
| 必須 |
デフォルト値または |
|
| 任意 | 作成するポリシーの説明。 |
|
| 必須 | 作成するポリシーの名前。 |
|
| 必須 |
デフォルト値、この |
|
| 必須 |
単一のファイル、ファイルのフラットディレクトリー、または 次のマニフェストがサポートされています。
|
|
| 任意 |
パスのマニフェストに適用する Kustomize パッチのリスト。複数のマニフェストがある場合は、Kustomize がパッチの適用先のマニフェストを特定できるように、パッチに |
|
| 任意 |
ポリシーの |
|
| 任意 |
作成するポリシーセットのリストと、デフォルト値または |
|
| 必須 | 作成するポリシーセットの名前です。 |
|
| 任意 | 作成するポリシーセットの説明です。 |
|
| 任意 |
ポリシーセットに含まれるポリシーのリストです。 |
4.1.4. 関連情報 リンクのコピーリンクがクリップボードにコピーされました!
- GitOps Operator をインストールするためのポリシーの生成 を参照してください。
- 詳細は、ポリシーセットコントローラー を参照してください。
- 詳細は、カスタマイズの適用 を参照してください。
- その他のトピックは、ガバナンスに関する ドキュメントを参照してください。
-
kustomization.yamlファイルの例を参照してください。 - Kubernetes のラベルとセレクター のドキュメントを参照してください。
- 詳細は、Gatekeeper を参照してください。
- Kustomize ドキュメント を参照してください。