2.10. ポリシーの依存関係
依存関係を使用すると、クラスター上の他のポリシーが特定の状態にある場合にのみ、ポリシーをアクティブ化できます。依存関係の基準が満たされないと、ポリシーは Pending と表示され、マネージドクラスターにリソースは作成されません。基準ステータスの詳細は、ポリシーステータスを参照してください。
ポリシーの依存関係を使用して、オブジェクトの適用順序を制御できます。たとえば、Operator 用のポリシーと、Operator が管理するリソース用の別のポリシーがある場合は、Operator がインストールされるまでリソースの作成を試行しないように、2 番目のポリシーに依存関係を設定できます。これは、マネージドクラスターのパフォーマンスの向上に役立ちます。
必要なアクセス権: ポリシー管理者
次のポリシー依存関係の例を表示します。ここで、ScanSettingBinding は upstream-compliance-operator ポリシーがマネージドクラスターですでに準拠している場合にのみ作成されます。
apiVersion: policy.open-cluster-management.io/v1
kind: Policy
metadata:
annotations:
policy.open-cluster-management.io/categories: CM Configuration Management
policy.open-cluster-management.io/controls: CM-2 Baseline Configuration
policy.open-cluster-management.io/standards: NIST SP 800-53
policy.open-cluster-management.io/description:
name: moderate-compliance-scan
namespace: default
spec:
dependencies:
- apiVersion: policy.open-cluster-management.io/v1
compliance: Compliant
kind: Policy
name: upstream-compliance-operator
namespace: default
disabled: false
policy-templates:
- extraDependencies:
- apiVersion: policy.open-cluster-management.io/v1
kind: ConfigurationPolicy
name: scan-setting-prerequisite
compliance: Compliant
ignorePending: false
objectDefinition:
apiVersion: policy.open-cluster-management.io/v1
kind: ConfigurationPolicy
metadata:
name: moderate-compliance-scan
spec:
object-templates:
- complianceType: musthave
objectDefinition:
apiVersion: compliance.openshift.io/v1alpha1
kind: ScanSettingBinding
metadata:
name: moderate
namespace: openshift-compliance
profiles:
- apiGroup: compliance.openshift.io/v1alpha1
kind: Profile
name: ocp4-moderate
- apiGroup: compliance.openshift.io/v1alpha1
kind: Profile
name: ocp4-moderate-node
settingsRef:
apiGroup: compliance.openshift.io/v1alpha1
kind: ScanSetting
name: default
remediationAction: enforce
severity: low
- 1
dependenciesフィールドはPolicyオブジェクトに設定され、要件はポリシー内のすべてのポリシーテンプレートに適用されます。- 2
extraDependenciesフィールドは、個々のポリシーテンプレートで設定できます。たとえば、パラメーターは設定ポリシーに対して設定でき、ポリシーで設定されたdependenciesに加えて満たす必要がある基準を定義します。- 3
ignorePendingフィールドは、個々のポリシーテンプレートごとに設定でき、全体的なポリシーコンプライアンスが計算されるときに、そのテンプレートのPending状態がCompliantまたはNonCompliantと見なされるかを設定します。デフォルトでは、これはfalseに設定されており、PendingテンプレートによりポリシーはNonCompliantになります。これをtrueに設定すると、このテンプレートがPendingの場合でもポリシーはCompliantのままになります。これは、それがテンプレートの予想されるステータスである場合に便利です。
注記: 依存関係を使用して、別のクラスターのポリシーのステータスに基づいて、あるクラスターにポリシーを適用することはできません。