1.5. Red Hat OpenShift GitOps を使用したポリシー定義の管理
ArgoCD
リソースを使用する場合、Red Hat Advanced Cluster Management ハブクラスターでポリシーを作成するための OpenShift GitOps アクセスを許可することで、Red Hat OpenShift GitOps を使用してポリシー定義を管理できます。
1.5.1. 前提条件 リンクのコピーリンクがクリップボードにコピーされました!
ハブクラスターにログインしておく。
必要なアクセス権: クラスター管理者
非推奨: PlacementRule
1.5.2. OpenShift GitOps 用の ClusterRole リソースの作成 リンクのコピーリンクがクリップボードにコピーされました!
ポリシーと配置の作成、読み取り、更新、削除のアクセス権を持つ OpenShift GitOps の ClusterRole
リソースを作成するには以下を実行します。
コンソールから
ClusterRole
を作成します。ClusterRole
は次の例のようになります。Copy to Clipboard Copied! Toggle word wrap Toggle overflow ClusterRoleBinding
オブジェクトを作成して、OpenShift GitOps サービスアカウントにopenshift-gitops-policy-admin
ClusterRole
オブジェクトへのアクセスを許可します。ClusterRoleBinding
は次の例のようになります。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記: - Red Hat Advanced Cluster Management ポリシー定義が OpenShift GitOps でデプロイされると、ハブテンプレートの違いを解決するために、各マネージドクラスター namespace にポリシーのコピーが作成されます。これらのコピーは、複製されたポリシーと呼ばれます。- OpenShift GitOps がこの複製されたポリシーを繰り返し削除したり、Argo CD
Application
が同期されていないことを示したりするのを防ぐために、Red Hat Advanced Cluster Management ポリシーフレームワークによって、各複製されたポリシーにargocd.argoproj.io/compare-options: IgnoreExtraneous
アノテーションが自動的に設定されます。-
Argo CD がオブジェクトを追跡するために使用するラベルとアノテーションがあります。複製されたポリシーが Argo CD にまったく表示されないようにするには、Red Hat Advanced Cluster Management ポリシー定義で
spec.copyPolicyMetadata
をfalse
に設定して、Argo CD 追跡ラベルとアノテーションを無効にします。
1.5.3. ポリシージェネレーターと OpenShift GitOps の統合 リンクのコピーリンクがクリップボードにコピーされました!
OpenShift GitOps を使用すると、GitOps を通じてポリシージェネレーターを使用してポリシーを生成できます。ポリシージェネレーターは OpenShift GitOps コンテナーイメージにプリインストールされていないため、カスタマイズを行う必要があります。
1.5.3.1. 前提条件 リンクのコピーリンクがクリップボードにコピーされました!
- OpenShift GitOps を Red Hat Advanced Cluster Management ハブクラスターにインストールしておく。
- ハブクラスターにログインしておく。
1.5.3.2. OpenShift GitOps からのポリシージェネレーターへのアクセス リンクのコピーリンクがクリップボードにコピーされました!
OpenShift GitOps からポリシージェネレーターにアクセスするには、Init コンテナーを設定して、Red Hat Advanced Cluster Management Application Subscription コンテナーイメージからポリシージェネレーターバイナリーをコピーする必要があります。Kustomize を実行するときに --enable-alpha-plugins
フラグを指定して OpenShift GitOps を設定する必要もあります。
ポリシージェネレーターを使用してポリシーと配置を作成、読み取り、更新、削除するには、OpenShift GitOps からポリシージェネレーターへのアクセス権を付与します。以下の手順を実行します。
次のコマンドを使用して、OpenShift GitOps
argocd
オブジェクトを編集します。oc -n openshift-gitops edit argocd openshift-gitops
oc -n openshift-gitops edit argocd openshift-gitops
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ポリシージェネレーターを新しいバージョンに更新するには、Init コンテナーで使用される
registry.redhat.io/rhacm2/multicluster-operators-subscription-rhel9
イメージを新しいタグに追加します。<version>
パラメーターは、ArgoCD
リソースの最新の Red Hat Advanced Cluster Management バージョンに置き換えます。ArgoCD
リソースは、次の YAML ファイルのようになります。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記: または、
ArgoCD
マニフェストを含むConfigurationPolicy
リソースを作成し、MultiClusterHub
で設定されたバージョンと一致するバージョンをテンプレート化することもできます。image: '{{ (index (lookup "apps/v1" "Deployment" "open-cluster-management" "multicluster-operators-hub-subscription").spec.template.spec.containers 0).image }}'
image: '{{ (index (lookup "apps/v1" "Deployment" "open-cluster-management" "multicluster-operators-hub-subscription").spec.template.spec.containers 0).image }}'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ポリシーを生成する前に Kustomize ディレクトリー内で Helm チャート処理を有効にする場合は、
spec.repo.env
フィールドでPOLICY_GEN_ENABLE_HELM
環境変数を"true"
に設定します。env: - name: POLICY_GEN_ENABLE_HELM value: "true"
env: - name: POLICY_GEN_ENABLE_HELM value: "true"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ポリシーと配置を作成、読み取り、更新、削除するには、
ClusterRoleBinding
オブジェクトを作成し、OpenShift GitOps サービスアカウントに Red Hat Advanced Cluster Management ハブクラスターへのアクセス権を付与します。ClusterRoleBinding
は、次のようなリソースになる場合があります。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.5.4. OpenShift GitOps でのポリシーヘルスチェックの設定 リンクのコピーリンクがクリップボードにコピーされました!
OpenShift GitOps を ArgoCD
リソースとともに使用して、resourceHealthChecks
フィールドに追加することで、リソースの状態に基づいてリソースのヘルスステータスを設定するカスタムロジックを定義します。たとえば、ポリシーに準拠している場合にのみポリシーが正常であると報告するカスタムヘルスチェックを定義できます。
重要: インターネットから悪意のあるものをダウンロードしていないことを確認するには、ポリシーを適用する前にすべてのポリシーを確認してください。
リソースの種類のヘルスチェックを定義するには、次の手順を実行します。
argocd-policy-healthchecks.yaml
をダウンロードして、CertificatePolicy
、ConfigurationPolicy
、OperatorPolicy
、およびPolicy
リソースにヘルスチェックを追加します。以下のコマンドを実行します。wget https://raw.githubusercontent.com/open-cluster-management-io/policy-collection/main/stable/CM-Configuration-Management/argocd-policy-healthchecks.yaml
wget https://raw.githubusercontent.com/open-cluster-management-io/policy-collection/main/stable/CM-Configuration-Management/argocd-policy-healthchecks.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow コンソールで Governance > Create policy に移動し、内容を YAML エディターに貼り付けて、
argocd-policy-healthchecks.yaml
ポリシーを適用します。注記: YAML エディターで配置情報を追加すると、ポリシーがアクティブなクラスターを特定できます。
-
ArgoCD
リソースの Summary タブを表示して、ヘルスチェックが期待どおりに機能していることを確認します。Argo CD コンソールから健全性の詳細を表示します。
1.5.5. 関連情報 リンクのコピーリンクがクリップボードにコピーされました!
- OpenShift GitOps について のドキュメントを参照してください。