5.7.4. 修復の更新

新しいバージョンのコンプライアンスコンテンツが使用されると、以前のバージョンとは異なる新しいバージョンの修復が提供される可能性があります。コンプライアンス Operator は、適用される修復の以前のバージョンを保持します。OpenShift Container Platform の管理者は、確認し、適用する新規バージョンについても通知されます。以前に適用されたものの、更新された ComplianceRemediation オブジェクトはそのステータスを Outdated に変更します。古いオブジェクトには簡単に検索できるようにラベルが付けられます。

以前に適用された修復内容は ComplianceRemediation オブジェクトの spec.outdated 属性に保存され、新規に更新された内容は spec.current 属性に保存されます。コンテンツを新しいバージョンに更新した後に、管理者は修復を確認する必要があります。spec.outdated 属性が存在する限り、これは結果として作成される MachineConfig オブジェクトをレンダリングするために使用されます。spec.outdated 属性が削除された後に、コンプライアンス Operator は結果として生成される MachineConfig オブジェクトを再度レンダリングし、これにより Operator は設定をノードにプッシュします。

手順

  1. 古い修復について検索します。

    $ oc get complianceremediations -lcomplianceoperator.openshift.io/outdated-remediation=

    出力例

    NAME                              STATE
    workers-scan-no-empty-passwords   Outdated

    現在適用されている修復は Outdated 属性に保存され、新規の、適用されていない修復は Current 属性に保存されます。新規バージョンに問題がなれば、Outdated フィールドを削除します。更新された内容を保持する必要がある場合には、 Current および Outdated 属性を削除します。

  2. 修復の新しいバージョンを適用します。

    $ oc patch complianceremediations workers-scan-no-empty-passwords --type json -p '[{"op":"remove", "path":/spec/outdated}]'
  3. 修復の状態は、Outdated から Applied に切り替わります。

    $ oc get complianceremediations workers-scan-no-empty-passwords

    出力例

    NAME                              STATE
    workers-scan-no-empty-passwords   Applied

  4. ノードは新規の修復バージョンを適用し、再起動します。