1.11. ArgoCD エージェントを伴う Red Hat OpenShift GitOps アドオンを有効にする
プルモデルの Agent モードは、OpenShift GitOps アドオンを、ArgoCD エージェントを伴う Advanced プルモデル向けに有効化し、アプリケーションの健全性について詳細なステータスを取得できるようにします。この Agent モードは、ネットワーク制限やセキュリティー要件が強化されている環境、またはアプリケーション配信にプルモデルを実装する場合に使用します。高度なプルモデルは ArgoCD エージェントによって実行され、完全に自動化された OpenShift GitOps エクスペリエンスを提供します。
ArgoCD エージェントで OpenShift GitOps アドオンを有効にするには、次のセクションを完了します。
前提条件
- Red Hat Advanced Cluster Management ハブクラスターがインストールされている。
- Red Hat Advanced Cluster Management に登録されたマネージドクラスター
- ハブクラスターにインストールされた OpenShift GitOps Operator
-
ターゲットマネージドクラスターを選択するための
Placementリソース -
ターゲット namespace にバインドされた
ManagedClusterSet -
ArgoCDエージェント環境で設定された OpenShift GitOps Operator サブスクリプション -
Agentモード用に設定されたArgoCDカスタムリソース
1.11.1. サブスクリプションとリソースの設定 リンクのコピーリンクがクリップボードにコピーされました!
ArgoCD エージェントを有効にするには、OpenShift GitOps Operator のサブスクリプションと ArgoCD カスタムリソースを設定する必要があります。必要なサブスクリプションとリソースを設定するには、次の手順を実行します。
ハブクラスターでのみ、次のコマンドを実行して、OpenShift GitOps Operator サブスクリプションを変更し、必要な環境変数を含めます。
oc edit subscription gitops-operator -n openshift-gitops-operator次の YAML サンプルを追加して、次の環境変数を
spec.config.envファイルに追加します。spec: config: env: - name: ARGOCD_CLUSTER_CONFIG_NAMESPACES value: openshift-gitops - name: ARGOCD_PRINCIPAL_TLS_SERVER_ALLOW_GENERATE value: "false" - name: ARGOCD_PRINCIPAL_REDIS_SERVER_ADDRESS value: openshift-gitops-redis:6379次の YAML サンプルを追加して、既存の
ArgoCDカスタムリソースを互換性のあるAgentモード設定に置き換えます。apiVersion: argoproj.io/v1beta1 kind: ArgoCD metadata: name: openshift-gitops namespace: openshift-gitops spec: controller: enabled: false argoCDAgent: principal: allowedNamespaces: - '*' auth: mtls:CN=system:open-cluster-management:cluster:([^:]+):addon:gitops-addon:agent:gitops-addon-agent enabled: true次のコマンドを実行して、YAML サンプルを適用します。
oc apply -f argocd-example.yaml-
注記: ハブクラスターのみで、この設定により従来の
ArgoCDコントローラーが無効になり、相互 TLS 認証を使用したエージェントプリンシパルが有効になります。
-
注記: ハブクラスターのみで、この設定により従来の
1.11.2. ArgoCD エージェントの有効化 リンクのコピーリンクがクリップボードにコピーされました!
ArgoCD エージェントアドオンのデプロイメントを管理するための GitOpsCluster リソースを作成します。コントローラーは、Placement によって選択された各マネージドクラスターに対して、以下のリソースを自動的に作成します。
GitOpsCluster コントローラーは、次の操作を実行します。
- PKI 管理を作成して自動化する
-
エージェントモード用に設定された
ArgoCDクラスターシークレットを作成する - 選択された各マネージドクラスターに Argo CD Agent をデプロイする
高度なプルモデル Argo CD Agent アーキテクチャーを有効にするには、次の手順を実行します。
マネージドクラスターで、次の YAML サンプルを追加して、
ArgoCDエージェントが有効になっているGitOpsCluster`リソースを作成します。apiVersion: apps.open-cluster-management.io/v1beta1 kind: GitOpsCluster metadata: name: gitops-agent-clusters namespace: openshift-gitops spec: argoServer: argoNamespace: openshift-gitops placementRef: kind: Placement apiVersion: cluster.open-cluster-management.io/v1beta1 name: production-clusters namespace: openshift-gitops gitopsAddon: enabled: true argoCDAgent: enabled: true次のコマンドを実行して、YAML サンプルを適用します。
oc apply -f gitopscluster-example.yaml
1.11.3. ArgoCD のインストールの検証 リンクのコピーリンクがクリップボードにコピーされました!
ArgoCD エージェントが正常にデプロイされたら、ハブクラスターにアプリケーションを作成し、それがマネージドクラスターで動作することを確認することで、高度な Pull Model ワークフローが完了したことを確認します。
正常なデプロイメントに必要なインストールとリソースを確認するには、次の手順を実行します。
次のコマンドを実行して、特定の
Agent条件のGitOpsClusterステータスを確認します。oc get gitopscluster gitops-agent-clusters -n openshift-gitops -o jsonpath='{.status.conditions}' | jqステータスに次の条件タイプが表示されていることを確認します。
-
Ready:GitOpsClusterの準備が完了し、すべてのコンポーネントが機能しています。 -
PlacementResolved:Placement参照が解決され、マネージドクラスターが取得済みです。 -
ClustersRegistered: マネージドクラスターがArgoCDサーバーに正常に登録されています。 -
AddOnDeploymentConfigsReady: すべてのマネージドクラスターに対してAddOnDeploymentConfigsが作成済みです。 -
ManagedClusterAddOnsReady:ManagedClusterAddonsは、マネージドクラスターを作成および更新します。 -
AddOnTemplateReady:ArgoCDエージェントモード用に作成された動的AddOnTemplate。 -
ArgoCDAgentPrereqsReady: エージェントの前提条件がセットアップされています。 -
CertificatesReady: TLS 証明書が署名されています。 -
ManifestWorksApplied: マネージドクラスターに伝播された CA 証明書。
-
次の YAML ファイルを追加して、マネージドクラスター namespace に
ArgoCDアプリケーションリソースを作成します。apiVersion: argoproj.io/v1alpha1 kind: Application metadata: name: guestbook namespace: <managed cluster name> spec: project: default source: repoURL: https://github.com/argoproj/argocd-example-apps.git targetRevision: HEAD path: guestbook destination: server: https://<principal-external-ip:port>?agentName=<managed cluster name> namespace: guestbook syncPolicy: automated: prune: true selfHeal: true次のコマンドを実行して、YAML サンプルを適用します。
oc apply -f application-example.yamlマネージドクラスターで、次のコマンドを実行して、アプリケーションリソースがデプロイされていることを確認します。
oc get all -n guestbookハブクラスターで次のコマンドを実行して、アプリケーションステータスが反映されていることを確認します。
oc get application guestbook -n <managed cluster name>-
アプリケーションが正常にデプロイされたら、ステータスが
Syncedと表示されていることを確認します。
関連情報
Red Hat OpenShift GitOps アドオンの管理 を完了して、OpenShift GitOps アドオンのセットアップを続行します。