5.6.5.9. 修復の更新
新しいバージョンのコンプライアンスコンテンツが使用されると、以前のバージョンとは異なる新しいバージョンの修復が提供される可能性があります。Compliance Operator は、適用される修復の以前のバージョンを保持します。OpenShift Container Platform の管理者は、確認し、適用する新規バージョンも通知されます。以前に適用されたものの、更新された ComplianceRemediation オブジェクトはそのステータスを Outdated に変更します。古いオブジェクトには簡単に検索できるようにラベルが付けられます。
以前に適用された修復内容は ComplianceRemediation オブジェクトの spec.outdated 属性に保存され、新規に更新された内容は spec.current 属性に保存されます。コンテンツを新しいバージョンに更新した後に、管理者は修復を確認する必要があります。spec.outdated 属性が存在する限り、これは結果として作成される MachineConfig オブジェクトをレンダリングするために使用されます。spec.outdated 属性が削除された後に、Compliance Operator は結果として生成される MachineConfig オブジェクトを再度レンダリングし、これにより Operator は設定をノードにプッシュします。
手順
古い修復を検索します。
$ oc -n openshift-compliance get complianceremediations \ -l complianceoperator.openshift.io/outdated-remediation=出力例
NAME STATE workers-scan-no-empty-passwords Outdated現在適用されている修復は
Outdated属性に保存され、新規の、適用されていない修復はCurrent属性に保存されます。新規バージョンに問題がなれば、Outdatedフィールドを削除します。更新された内容を保持する必要がある場合には、CurrentおよびOutdated属性を削除します。修復の新しいバージョンを適用します。
$ oc -n openshift-compliance patch complianceremediations workers-scan-no-empty-passwords \ --type json -p '[{"op":"remove", "path":/spec/outdated}]'修復の状態は、
OutdatedからAppliedに切り替わります。$ oc get -n openshift-compliance complianceremediations workers-scan-no-empty-passwords出力例
NAME STATE workers-scan-no-empty-passwords Applied- ノードは新規の修復バージョンを適用し、再起動します。
Compliance Operator は、修復の間に発生する可能性のある依存関係の問題を自動的に解決しません。正確な結果を確実に得るためには、修復が適用された後に再度スキャンする必要があります。