5.8. ポリシーを使用して適用済みマネージドクラスター CR を変更する
ポリシーを使用して、マネージドクラスターにデプロイされたカスタムリソース (CR) からコンテンツを削除できます。
PolicyGenTemplate
CR から作成されたすべての Policy
CR は、complianceType
フィールドがデフォルトで musthave
に設定されています。マネージドクラスター上の CR には指定されたコンテンツがすべて含まれているため、コンテンツが削除されていない musthave
ポリシーは依然として準拠しています。この設定では、CR からコンテンツを削除すると、TALM はポリシーからコンテンツを削除しますが、そのコンテンツはマネージドクラスター上の CR からは削除されません。
complianceType
フィールドを mustonlyhave
に設定することで、ポリシーはクラスター上の CR がポリシーで指定されている内容と完全に一致するようにします。
前提条件
-
OpenShift CLI (
oc
) がインストールされている。 -
cluster-admin
権限を持つユーザーとしてハブクラスターにログインしている。 - RHACM を実行しているハブクラスターからマネージドクラスターをデプロイしている。
- ハブクラスターに Topology Aware Lifecycle Manager がインストールされている。
手順
影響を受ける CR から不要になったコンテンツを削除します。この例では、
SriovOperatorConfig
CR からdisableDrain: false
行が削除されました。CR の例:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow group-du-sno-ranGen.yaml
ファイル内で、影響を受けるポリシーのcomplianceType
をmustonlyhave
に変更します。サンプル YAML
# ... - fileName: SriovOperatorConfig.yaml policyName: "config-policy" complianceType: mustonlyhave # ...
# ... - fileName: SriovOperatorConfig.yaml policyName: "config-policy" complianceType: mustonlyhave # ...
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ClusterGroupUpdates
CR を作成し、CR の変更を受け取る必要があるクラスターを指定します。ClusterGroupUpdates CR の例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコマンドを実行して
ClusterGroupUpgrade
CR を作成します。oc create -f cgu-remove.yaml
$ oc create -f cgu-remove.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow たとえば適切なメンテナンス期間中などに変更を適用する準備が完了したら、次のコマンドを実行して
spec.enable
フィールドの値をtrue
に変更します。oc --namespace=default patch clustergroupupgrade.ran.openshift.io/cgu-remove \ --patch '{"spec":{"enable":true}}' --type=merge
$ oc --namespace=default patch clustergroupupgrade.ran.openshift.io/cgu-remove \ --patch '{"spec":{"enable":true}}' --type=merge
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
以下のコマンドを実行してポリシーのステータスを確認します。
oc get <kind> <changed_cr_name>
$ oc get <kind> <changed_cr_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAMESPACE NAME REMEDIATION ACTION COMPLIANCE STATE AGE default cgu-ztp-group.group-du-sno-config-policy enforce 17m default ztp-group.group-du-sno-config-policy inform NonCompliant 15h
NAMESPACE NAME REMEDIATION ACTION COMPLIANCE STATE AGE default cgu-ztp-group.group-du-sno-config-policy enforce 17m default ztp-group.group-du-sno-config-policy inform NonCompliant 15h
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ポリシーの
COMPLIANCE STATE
がCompliant
の場合、CR が更新され、不要なコンテンツが削除されたことを意味します。マネージドクラスターで次のコマンドを実行して、対象クラスターからポリシーが削除されたことを確認します。
oc get <kind> <changed_cr_name>
$ oc get <kind> <changed_cr_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 結果がない場合、CR はマネージドクラスターから削除されます。