第2章 Argo CD プラグインの有効化


Argo CD プラグインを使用すると、OpenShift GitOps の継続的デリバリー (CD) のワークフローを視覚化できます。このプラグインは、アプリケーションのステータス、デプロイメントの詳細、コミットメッセージ、コミットの作成者、環境にプロモートされたコンテナーイメージ、およびデプロイメントの履歴の概要を視覚的に提供します。

前提条件

  • 次の例に示すように、Argo CD インスタンス情報を app-config.yaml 設定マップに追加します。

    argocd:
      appLocatorMethods:
        - type: 'config'
          instances:
            - name: argoInstance1
              url: https://argoInstance1.com
              username: ${ARGOCD_USERNAME}
              password: ${ARGOCD_PASSWORD}
            - name: argoInstance2
              url: https://argoInstance2.com
              username: ${ARGOCD_USERNAME}
              password: ${ARGOCD_PASSWORD}
    Copy to Clipboard
  • Argo CD アプリケーションを特定するために、エンティティーの catalog-info.yaml ファイルに次のアノテーションを追加します。

    annotations:
      ...
      # The label that Argo CD uses to fetch all the applications. The format to be used is label.key=label.value. For example, rht-gitops.com/janus-argocd=quarkus-app.
    
      argocd/app-selector: '${ARGOCD_LABEL_SELECTOR}'
    Copy to Clipboard
  • (オプション) Argo CD インスタンスを切り替えるには、次の例に示すように、エンティティーの catalog-info.yaml ファイルに次のアノテーションを追加します。

     annotations:
       ...
        # The Argo CD instance name used in `app-config.yaml`.
    
        argocd/instance-name: '${ARGOCD_INSTANCE}'
    Copy to Clipboard
    注記

    このアノテーションを設定しなかった場合、Argo CD プラグインは、app-config.yaml で設定された最初の Argo CD インスタンスをデフォルトで使用します。

手順

  1. dynamic-plugins ConfigMap に以下を追加して、Argo CD プラグインを有効にします。

    global:
      dynamic:
        includes:
          - dynamic-plugins.default.yaml
        plugins:
          - package: ./dynamic-plugins/dist/roadiehq-backstage-plugin-argo-cd-backend-dynamic
            disabled: false
          - package: ./dynamic-plugins/dist/backstage-community-plugin-redhat-argocd
            disabled: false
    Copy to Clipboard

2.1. Argo CD ロールアウトの有効化

オプションの Argo CD ロールアウト機能は、ブルーグリーンデプロイメントやカナリアデプロイメントなどの高度なデプロイメントストラテジーをアプリケーションに提供することで Kubernetes を強化します。バックステージ Kubernetes プラグインに統合すると、開発者と運用チームは、バックステージインターフェイス内で Argo CD ロールアウトをシームレスに視覚化および管理できるようになります。

前提条件

  • Backstage Kubernetes プラグイン (@backstage/plugin-kubernetes) がインストールされ、設定されている。

    • Backstage で Kubernetes プラグインをインストールして設定するには、インストール および 設定 ガイドを参照してください。
  • カスタムリソースと ClusterRoles の作成や管理に必要な権限があり、Kubernetes クラスターにアクセスできる。
  • Kubernetes クラスターには、argoproj.io グループリソース (Rollouts や AnalysisRuns など) がインストールされている。

手順

  1. Backstage インスタンスの app-config.yaml ファイルで、kubernetes 設定に次の customResources コンポーネントを追加して、Argo Rollouts と AnalysisRuns を有効にします。

    kubernetes:
      ...
      customResources:
        - group: 'argoproj.io'
          apiVersion: 'v1alpha1'
          plural: 'Rollouts'
        - group: 'argoproj.io'
          apiVersion: 'v1alpha1'
          plural: 'analysisruns'
    Copy to Clipboard
  2. カスタムリソースに対する ClusterRole 権限を付与します。

    注記
    • Backstage Kubernetes プラグインがすでに設定されている場合は、Rollouts および AnalysisRuns の ClusterRole 権限がすでに付与されている可能性があります。
    • 準備したマニフェスト を使用して、Kubernetes プラグインと ArgoCD プラグインの両方に読み取り専用の ClusterRole アクセスを割り当てます。
    1. ClusterRole 権限が付与されていない場合は、次の YAML マニフェストを使用して ClusterRole を作成します。
    apiVersion: rbac.authorization.k8s.io/v1
    kind: ClusterRole
    metadata:
      name: backstage-read-only
    rules:
      - apiGroups:
          - argoproj.io
        resources:
          - rollouts
          - analysisruns
        verbs:
          - get
          - list
    Copy to Clipboard
    1. kubectl を使用してマニフェストをクラスターに適用します。

      kubectl apply -f <your-clusterrole-file>.yaml
      Copy to Clipboard
    2. クラスターにアクセスする ServiceAccount にこの ClusterRole が割り当てられていることを確認します。
  3. Backstage の Kubernetes リソースを識別するために、catalog-info.yaml にアノテーションを追加します。

    1. エンティティー ID でリソースを識別する場合:

      annotations:
        ...
        backstage.io/kubernetes-id: <BACKSTAGE_ENTITY_NAME>
      Copy to Clipboard
    2. (オプション) 名前空間でリソースを識別する場合:

      annotations:
        ...
        backstage.io/kubernetes-namespace: <RESOURCE_NAMESPACE>
      Copy to Clipboard
    3. エンティティー ID または名前空間によるリソース識別をオーバーライドするカスタムラベルセレクターを使用する場合:

      annotations:
        ...
        backstage.io/kubernetes-label-selector: 'app=my-app,component=front-end'
      Copy to Clipboard
      注記

      Kubernetes リソースの backstage.io/kubernetes-label-selector で宣言されたラベルを必ず指定してください。このアノテーションは、backstage.io/kubernetes-idbackstage.io/kubernetes-namespace などのエンティティーベースまたは名前空間ベースの識別アノテーションをオーバーライドします。

  4. Backstage が適切な Kubernetes リソースを見つけられるように、Kubernetes リソースにラベルを追加します。

    1. Backstage Kubernetes プラグインラベル: このラベルを追加して、リソースを特定の Backstage エンティティーにマップします。

      labels:
        ...
        backstage.io/kubernetes-id: <BACKSTAGE_ENTITY_NAME>
      Copy to Clipboard
    2. GitOps アプリケーションマッピング: このラベルを追加して、Argo CD ロールアウトを特定の GitOps アプリケーションにマッピングします。

      labels:
        ...
        app.kubernetes.io/instance: <GITOPS_APPLICATION_NAME>
      Copy to Clipboard
    注記

    ラベルセレクターアノテーション (backstage.io/kubernetes-label-selector) を使用する場合は、指定されたラベルがリソースに存在することを確認します。ラベルセレクターは、kubernetes-id や kubernetes-namespace などの他のアノテーションをオーバーライドします。

検証

  1. 更新された設定を GitOps リポジトリーにプッシュして、ロールアウトをトリガーします。
  2. Red Hat Developer Hub インターフェイスを開き、設定したエンティティーに移動します。
  3. CD タブを選択し、対象の GitOps アプリケーション を選択します。サイドパネルが開きます。
  4. サイドパネルの Resources テーブルで、次のリソースが表示されていることを確認します。

    • Rollouts
    • AnalysisRuns (オプション)
  5. ロールアウトリソースを展開し、次の詳細を確認します。

    • Revisions の行には、さまざまなロールアウトバージョンのトラフィックの分布が詳細に表示されます。
    • Analysis Runs の行には、ロールアウトの成功を評価する分析タスクのステータスが表示されます。
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

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

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

会社概要

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

Theme

© 2025 Red Hat