第4章 サードパーティーポリシーコントローラーの統合
サードパーティーポリシーを統合してポリシーテンプレート内にカスタムアノテーションを作成し、コンプライアンス標準、制御カテゴリー、制御を 1 つ以上指定します。
policy-collection/community からサードパーティーポリシーを使用することもできます。
以下のサードパーティーポリシーを統合する方法を説明します。
4.1. ポリシージェネレーター リンクのコピーリンクがクリップボードにコピーされました!
ポリシージェネレーターは、Kustomize を使用して Red Hat Advanced Cluster Management ポリシーを生成する Red Hat Advanced Cluster Management for Kubernetes アプリケーションライフサイクルサブスクリプション GitOps ワークフローの一部です。ポリシージェネレーターは、設定に使用される PolicyGenerator
マニフェスト YAML ファイル提供の Kubernetes マニフェスト YAML ファイルから Red Hat Advanced Cluster Management ポリシーをビルドします。ポリシージェネレーターは、Kustomize ジェネレータープラグインとして実装されます。Kustomize の詳細は、Kustomize のドキュメント を参照してください。
詳細は、以下のセクションを参照してください。
4.1.1. ポリシージェネレーター機能 リンクのコピーリンクがクリップボードにコピーされました!
ポリシージェネレーターと Red Hat Advanced Cluster Management アプリケーションライフサイクルサブスクリプション 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.yaml
直前の例で参照される policy-generator-config.yaml
ファイルは、生成するポリシーの手順を含む YAML ファイルです。単純な PolicyGenerator
設定ファイルは以下の例のようになります。
configmap.yaml
は、ポリシーに含まれる Kubernetes マニフェスト YAML ファイルを表します。また、Kustomize ディレクトリー、または複数の Kubernetes マニフェスト YAML ファイルを含むディレクトリーへのパスを設定できます。以下の例を参照してください。
生成された Policy
、Placement
と PlacementBinding
は以下の例のようになります。
4.1.3. ポリシージェネレーター設定の参照テーブル リンクのコピーリンクがクリップボードにコピーされました!
namespace
を除く policyDefaults
セクションのすべてのフィールドはポリシーごとにオーバーライドでき、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 ドキュメント を参照してください。
- サードパーティーポリシーコントローラーの統合 ドキュメントに戻ります。