2.8. ArgoCD を使用したハブクラスターの設定
GitOps Zero Touch Provisioning (ZTP) を使用して、サイトごとに必要なインストールおよびポリシーカスタムリソース (CR) を生成する一連の ArgoCD アプリケーションでハブクラスターを設定できます。
Red Hat Advanced Cluster Management (RHACM) は SiteConfig CR を使用して、ArgoCD の Day 1 マネージドクラスターインストール CR を生成します。各 ArgoCD アプリケーションは、最大 300 個の SiteConfig CR を管理できます。
前提条件
- Red Hat Advanced Cluster Management (RHACM) と Red Hat OpenShift GitOps がインストールされた OpenShift Container Platform ハブクラスターがあります。
-
「GitOps ZTP サイト設定リポジトリーの準備」セクションで説明されているように、GitOps ZTP プラグインコンテナーから参照デプロイメントを抽出しました。参照デプロイメントを抽出すると、次の手順で参照される
out/argocd/deploymentディレクトリーが作成されます。
手順
ArgoCD パイプライン設定を準備します。
- example ディレクトリーと同様にディレクトリー構造で Git リポジトリーを作成します。詳細は、「GitOps ZTP サイト設定リポジトリーの準備」を参照してください。
ArgoCD UI を使用して、リポジトリーへのアクセスを設定します。Settings で以下を設定します。
-
リポジトリー: 接続情報を追加します。URL は
.gitなどで終わっている必要があります。https://repo.example.com/repo.gitと認証情報を指定します。 - Certificates - 必要に応じて、リポジトリーのパブリック証明書を追加します。
-
リポジトリー: 接続情報を追加します。URL は
2 つの ArgoCD アプリケーション、
out/argocd/deployment/clusters-app.yamlとout/argocd/deployment/policies-app.yamlを、Git リポジトリーに基づいて修正します。-
Git リポジトリーを参照するように URL を更新します。URL は
.gitで終わります (例:https://repo.example.com/repo.git)。 -
targetRevisionは、監視する Git リポジトリーブランチを示します。 -
pathは、それぞれSiteConfigおよびPolicyGeneratorまたはPolicyGentemplateCR へのパスを指定します。
-
Git リポジトリーを参照するように URL を更新します。URL は
GitOps ZTP プラグインをインストールするには、ハブクラスター内の ArgoCD インスタンスに、関連するマルチクラスターエンジン (MCE) サブスクリプションイメージをパッチ適用します。以前に
out/argocd/deployment/ディレクトリーに展開したパッチファイルを環境に合わせてカスタマイズします。RHACM バージョンに一致する
multicluster-operators-subscriptionイメージを選択します。-
RHACM 2.8 および 2.9 の場合は、
registry.redhat.io/rhacm2/multicluster-operators-subscription-rhel8:v<rhacm_version>イメージを使用します。 -
RHACM 2.10 以降の場合は、
registry.redhat.io/rhacm2/multicluster-operators-subscription-rhel9:v<rhacm_version>イメージを使用します。
重要multicluster-operators-subscriptionイメージのバージョンは、RHACM のバージョンと一致する必要があります。MCE 2.10 リリース以降、RHEL 9 はmulticluster-operators-subscriptionイメージのベースイメージです。OpenShift Operator のライフサイクル の表「Platform Aligned Operators」の
[Expand for Operator list]をクリックすると、OpenShift Container Platform でサポートされている Operator の完全なマトリックスが表示されます。-
RHACM 2.8 および 2.9 の場合は、
RHACM バージョンに一致する
multicluster-operators-subscriptionイメージを使用して、out/argocd/deployment/argocd-openshift-gitops-patch.jsonファイルを変更します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow ArgoCD インスタンスにパッチを適用します。以下のコマンドを実行します。
oc patch argocd openshift-gitops \ -n openshift-gitops --type=merge \ --patch-file out/argocd/deployment/argocd-openshift-gitops-patch.json
$ oc patch argocd openshift-gitops \ -n openshift-gitops --type=merge \ --patch-file out/argocd/deployment/argocd-openshift-gitops-patch.jsonCopy to Clipboard Copied! Toggle word wrap Toggle overflow
RHACM 2.7 以降では、マルチクラスターエンジンはデフォルトで
cluster-proxy-addon機能を有効にします。次のパッチを適用して、cluster-proxy-addon機能を無効にし、このアドオンに関連するハブクラスターとマネージド Pod を削除します。以下のコマンドを実行します。oc patch multiclusterengines.multicluster.openshift.io multiclusterengine --type=merge --patch-file out/argocd/deployment/disable-cluster-proxy-addon.json
$ oc patch multiclusterengines.multicluster.openshift.io multiclusterengine --type=merge --patch-file out/argocd/deployment/disable-cluster-proxy-addon.jsonCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、パイプライン設定をハブクラスターに適用します。
oc apply -k out/argocd/deployment
$ oc apply -k out/argocd/deploymentCopy to Clipboard Copied! Toggle word wrap Toggle overflow オプション: 既存の ArgoCD アプリケーションがある場合は、次のコマンドを実行して、
ApplicationリソースにPrunePropagationPolicy=backgroundポリシーが設定されていることを確認します。oc -n openshift-gitops get applications.argoproj.io \ clusters -o jsonpath='{.spec.syncPolicy.syncOptions}' |jq$ oc -n openshift-gitops get applications.argoproj.io \ clusters -o jsonpath='{.spec.syncPolicy.syncOptions}' |jqCopy to Clipboard Copied! Toggle word wrap Toggle overflow 既存のポリシーの出力例
[ "CreateNamespace=true", "PrunePropagationPolicy=background", "RespectIgnoreDifferences=true" ]
[ "CreateNamespace=true", "PrunePropagationPolicy=background", "RespectIgnoreDifferences=true" ]Copy to Clipboard Copied! Toggle word wrap Toggle overflow spec.syncPolicy.syncOptionフィールドにPrunePropagationPolicyパラメーターが含まれていない場合、またはPrunePropagationPolicyがforeground値に設定されている場合は、Applicationリソースでポリシーをbackgroundに設定します。以下の例を参照してください。kind: Application spec: syncPolicy: syncOptions: - PrunePropagationPolicy=backgroundkind: Application spec: syncPolicy: syncOptions: - PrunePropagationPolicy=backgroundCopy to Clipboard Copied! Toggle word wrap Toggle overflow
background削除ポリシーを設定すると、ManagedClusterCR とそれに関連付けられたすべてのリソースが削除されます。