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-adminClusterRoleオブジェクトへのアクセスを許可します。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-gitopsCopy 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.yamlCopy 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 について のドキュメントを参照してください。