This documentation is for a release that is no longer maintained
See documentation for the latest supported version.第2章 Argo CD プラグインの有効化
Argo CD プラグインを使用すると、OpenShift GitOps の継続的デリバリー (CD) のワークフローを視覚化できます。このプラグインは、アプリケーションのステータス、デプロイメントの詳細、コミットメッセージ、コミットの作成者、環境にプロモートされたコンテナーイメージ、およびデプロイメントの履歴の概要を視覚的に提供します。
前提条件
次の例に示すように、Argo CD インスタンス情報を
app-config.yaml設定マップに追加します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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}'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 Copied! Toggle word wrap Toggle overflow (オプション) Argo CD インスタンスを切り替えるには、次の例に示すように、エンティティーの
catalog-info.yamlファイルに次のアノテーションを追加します。annotations: ... # The Argo CD instance name used in `app-config.yaml`. argocd/instance-name: '${ARGOCD_INSTANCE}'annotations: ... # The Argo CD instance name used in `app-config.yaml`. argocd/instance-name: '${ARGOCD_INSTANCE}'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記このアノテーションを設定しなかった場合、Argo CD プラグインは、
app-config.yamlで設定された最初の Argo CD インスタンスをデフォルトで使用します。
手順
dynamic-plugins ConfigMap に以下を追加して、Argo CD プラグインを有効にします。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.1. Argo CD ロールアウトの有効化 リンクのコピーリンクがクリップボードにコピーされました!
オプションの Argo CD ロールアウト機能は、ブルーグリーンデプロイメントやカナリアデプロイメントなどの高度なデプロイメントストラテジーをアプリケーションに提供することで Kubernetes を強化します。バックステージ Kubernetes プラグインに統合すると、開発者と運用チームは、バックステージインターフェイス内で Argo CD ロールアウトをシームレスに視覚化および管理できるようになります。
前提条件
Backstage Kubernetes プラグイン (
@backstage/plugin-kubernetes) がインストールされ、設定されている。-
カスタムリソースと
ClusterRolesの作成や管理に必要な権限があり、Kubernetes クラスターにアクセスできる。 -
Kubernetes クラスターには、
argoproj.ioグループリソース (Rollouts や AnalysisRuns など) がインストールされている。
手順
Backstage インスタンスの
app-config.yamlファイルで、kubernetes設定に次のcustomResourcesコンポーネントを追加して、Argo Rollouts と AnalysisRuns を有効にします。Copy to Clipboard Copied! Toggle word wrap Toggle overflow カスタムリソースに対する
ClusterRole権限を付与します。注記-
Backstage Kubernetes プラグインがすでに設定されている場合は、Rollouts および AnalysisRuns の
ClusterRole権限がすでに付与されている可能性があります。 -
準備したマニフェスト を使用して、Kubernetes プラグインと ArgoCD プラグインの両方に読み取り専用の
ClusterRoleアクセスを割り当てます。
-
ClusterRole権限が付与されていない場合は、次の YAML マニフェストを使用してClusterRoleを作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow kubectlを使用してマニフェストをクラスターに適用します。kubectl apply -f <your-clusterrole-file>.yaml
kubectl apply -f <your-clusterrole-file>.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
クラスターにアクセスする
ServiceAccountにこのClusterRoleが割り当てられていることを確認します。
-
Backstage Kubernetes プラグインがすでに設定されている場合は、Rollouts および AnalysisRuns の
Backstage の Kubernetes リソースを識別するために、
catalog-info.yamlにアノテーションを追加します。エンティティー ID でリソースを識別する場合:
annotations: ... backstage.io/kubernetes-id: <BACKSTAGE_ENTITY_NAME>
annotations: ... backstage.io/kubernetes-id: <BACKSTAGE_ENTITY_NAME>Copy to Clipboard Copied! Toggle word wrap Toggle overflow (オプション) 名前空間でリソースを識別する場合:
annotations: ... backstage.io/kubernetes-namespace: <RESOURCE_NAMESPACE>
annotations: ... backstage.io/kubernetes-namespace: <RESOURCE_NAMESPACE>Copy to Clipboard Copied! Toggle word wrap Toggle overflow エンティティー ID または名前空間によるリソース識別をオーバーライドするカスタムラベルセレクターを使用する場合:
annotations: ... backstage.io/kubernetes-label-selector: 'app=my-app,component=front-end'
annotations: ... backstage.io/kubernetes-label-selector: 'app=my-app,component=front-end'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記Kubernetes リソースの
backstage.io/kubernetes-label-selectorで宣言されたラベルを必ず指定してください。このアノテーションは、backstage.io/kubernetes-idやbackstage.io/kubernetes-namespaceなどのエンティティーベースまたは名前空間ベースの識別アノテーションをオーバーライドします。
Backstage が適切な Kubernetes リソースを見つけられるように、Kubernetes リソースにラベルを追加します。
Backstage Kubernetes プラグインラベル: このラベルを追加して、リソースを特定の Backstage エンティティーにマップします。
labels: ... backstage.io/kubernetes-id: <BACKSTAGE_ENTITY_NAME>
labels: ... backstage.io/kubernetes-id: <BACKSTAGE_ENTITY_NAME>Copy to Clipboard Copied! Toggle word wrap Toggle overflow GitOps アプリケーションマッピング: このラベルを追加して、Argo CD ロールアウトを特定の GitOps アプリケーションにマッピングします。
labels: ... app.kubernetes.io/instance: <GITOPS_APPLICATION_NAME>
labels: ... app.kubernetes.io/instance: <GITOPS_APPLICATION_NAME>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
注記ラベルセレクターアノテーション (backstage.io/kubernetes-label-selector) を使用する場合は、指定されたラベルがリソースに存在することを確認します。ラベルセレクターは、kubernetes-id や kubernetes-namespace などの他のアノテーションをオーバーライドします。
検証
- 更新された設定を GitOps リポジトリーにプッシュして、ロールアウトをトリガーします。
- Red Hat Developer Hub インターフェイスを開き、設定したエンティティーに移動します。
- CD タブを選択し、対象の GitOps アプリケーション を選択します。サイドパネルが開きます。
サイドパネルの Resources テーブルで、次のリソースが表示されていることを確認します。
- Rollouts
- AnalysisRuns (オプション)
ロールアウトリソースを展開し、次の詳細を確認します。
- Revisions の行には、さまざまなロールアウトバージョンのトラフィックの分布が詳細に表示されます。
- Analysis Runs の行には、ロールアウトの成功を評価する分析タスクのステータスが表示されます。