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 カスタムリソースを設定する必要があります。必要なサブスクリプションとリソースを設定するには、次の手順を実行します。

  1. ハブクラスターでのみ、次のコマンドを実行して、OpenShift GitOps Operator サブスクリプションを変更し、必要な環境変数を含めます。

    oc edit subscription gitops-operator -n openshift-gitops-operator
  2. 次の 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
  3. 次の 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
  4. 次のコマンドを実行して、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 アーキテクチャーを有効にするには、次の手順を実行します。

  1. マネージドクラスターで、次の 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
  2. 次のコマンドを実行して、YAML サンプルを適用します。

    oc apply -f gitopscluster-example.yaml

1.11.3. ArgoCD のインストールの検証

ArgoCD エージェントが正常にデプロイされたら、ハブクラスターにアプリケーションを作成し、それがマネージドクラスターで動作することを確認することで、高度な Pull Model ワークフローが完了したことを確認します。

正常なデプロイメントに必要なインストールとリソースを確認するには、次の手順を実行します。

  1. 次のコマンドを実行して、特定の Agent 条件の GitOpsCluster ステータスを確認します。

    oc get gitopscluster gitops-agent-clusters -n openshift-gitops -o jsonpath='{.status.conditions}' | jq
  2. ステータスに次の条件タイプが表示されていることを確認します。

    • Ready: GitOpsCluster の準備が完了し、すべてのコンポーネントが機能しています。
    • PlacementResolved: Placement 参照が解決され、マネージドクラスターが取得済みです。
    • ClustersRegistered: マネージドクラスターが ArgoCD サーバーに正常に登録されています。
    • AddOnDeploymentConfigsReady: すべてのマネージドクラスターに対して AddOnDeploymentConfigs が作成済みです。
    • ManagedClusterAddOnsReady: ManagedClusterAddons は、マネージドクラスターを作成および更新します。
    • AddOnTemplateReady: ArgoCD エージェントモード用に作成された動的 AddOnTemplate
    • ArgoCDAgentPrereqsReady: エージェントの前提条件がセットアップされています。
    • CertificatesReady: TLS 証明書が署名されています。
    • ManifestWorksApplied: マネージドクラスターに伝播された CA 証明書。
  3. 次の 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
  4. 次のコマンドを実行して、YAML サンプルを適用します。

    oc apply -f application-example.yaml
  5. マネージドクラスターで、次のコマンドを実行して、アプリケーションリソースがデプロイされていることを確認します。

    oc get all -n guestbook
  6. ハブクラスターで次のコマンドを実行して、アプリケーションステータスが反映されていることを確認します。

    oc get application guestbook -n <managed cluster name>
  7. アプリケーションが正常にデプロイされたら、ステータスが Synced と表示されていることを確認します。

関連情報

Red Hat OpenShift GitOps アドオンの管理 を完了して、OpenShift GitOps アドオンのセットアップを続行します。

Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

Red Hat ドキュメントについて

Legal Notice

Theme

© 2026 Red Hat
トップに戻る