2.2. 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 Toggle word wrap
  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 Toggle word wrap
    1. kubectl を使用してマニフェストをクラスターに適用します。

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

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

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

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

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

      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 Toggle word wrap
    2. GitOps アプリケーションマッピング: このラベルを追加して、Argo CD ロールアウトを特定の GitOps アプリケーションにマッピングします。

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

    ラベルセレクターアノテーション (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