이 콘텐츠는 선택한 언어로 제공되지 않습니다.

Chapter 2. Enabling the Argo CD plugin


You can use the Argo CD plugin to visualize the Continuous Delivery (CD) workflows in OpenShift GitOps. This plugin provides a visual overview of the application’s status, deployment details, commit message, author of the commit, container image promoted to environment and deployment history.

Prerequisites

  • Add Argo CD instance information to your app-config.yaml configmap as shown in the following example:

    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
  • Add the following annotation to the entity’s catalog-info.yaml file to identify the Argo CD applications.

    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
  • (Optional) Add the following annotation to the entity’s catalog-info.yaml file to switch between Argo CD instances as shown in the following example:

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

    If you do not set this annotation, the Argo CD plugin defaults to the first Argo CD instance configured in app-config.yaml.

Procedure

  1. Add the following to your dynamic-plugins ConfigMap to enable the Argo CD plugin.

    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. Enabling Argo CD Rollouts

The optional Argo CD Rollouts feature enhances Kubernetes by providing advanced deployment strategies, such as blue-green and canary deployments, for your applications. When integrated into the backstage Kubernetes plugin, it allows developers and operations teams to visualize and manage Argo CD Rollouts seamlessly within the Backstage interface.

Prerequisites

  • The Backstage Kubernetes plugin (@backstage/plugin-kubernetes) is installed and configured.

  • You have access to the Kubernetes cluster with the necessary permissions to create and manage custom resources and ClusterRoles.
  • The Kubernetes cluster has the argoproj.io group resources (for example, Rollouts and AnalysisRuns) installed.

Procedure

  1. In the app-config.yaml file in your Backstage instance, add the following customResources component under the kubernetes configuration to enable Argo Rollouts and AnalysisRuns:

    kubernetes:
      ...
      customResources:
        - group: 'argoproj.io'
          apiVersion: 'v1alpha1'
          plural: 'Rollouts'
        - group: 'argoproj.io'
          apiVersion: 'v1alpha1'
          plural: 'analysisruns'
    Copy to Clipboard
  2. Grant ClusterRole permissions for custom resources.

    Note
    • If the Backstage Kubernetes plugin is already configured, the ClusterRole permissions for Rollouts and AnalysisRuns might already be granted.
    • Use the prepared manifest to provide read-only ClusterRole access to both the Kubernetes and ArgoCD plugins.
    1. If the ClusterRole permission is not granted, use the following YAML manifest to create the 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. Apply the manifest to the cluster using kubectl:

      kubectl apply -f <your-clusterrole-file>.yaml
      Copy to Clipboard
    2. Ensure the ServiceAccount accessing the cluster has this ClusterRole assigned.
  3. Add annotations to catalog-info.yaml to identify Kubernetes resources for Backstage.

    1. For identifying resources by entity ID:

      annotations:
        ...
        backstage.io/kubernetes-id: <BACKSTAGE_ENTITY_NAME>
      Copy to Clipboard
    2. (Optional) For identifying resources by namespace:

      annotations:
        ...
        backstage.io/kubernetes-namespace: <RESOURCE_NAMESPACE>
      Copy to Clipboard
    3. For using custom label selectors, which override resource identification by entity ID or namespace:

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

      Ensure you specify the labels declared in backstage.io/kubernetes-label-selector on your Kubernetes resources. This annotation overrides entity-based or namespace-based identification annotations, such as backstage.io/kubernetes-id and backstage.io/kubernetes-namespace.

  4. Add label to Kubernetes resources to enable Backstage to find the appropriate Kubernetes resources.

    1. Backstage Kubernetes plugin label: Add this label to map resources to specific Backstage entities.

      labels:
        ...
        backstage.io/kubernetes-id: <BACKSTAGE_ENTITY_NAME>
      Copy to Clipboard
    2. GitOps application mapping: Add this label to map Argo CD Rollouts to a specific GitOps application

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

    If using the label selector annotation (backstage.io/kubernetes-label-selector), ensure the specified labels are present on the resources. The label selector will override other annotations like kubernetes-id or kubernetes-namespace.

Verification

  1. Push the updated configuration to your GitOps repository to trigger a rollout.
  2. Open Red Hat Developer Hub interface and navigate to the entity you configured.
  3. Select the CD tab and then select the GitOps application. The side panel opens.
  4. In the Resources table of the side panel, verify that the following resources are displayed:

    • Rollouts
    • AnalysisRuns (optional)
  5. Expand a rollout resource and review the following details:

    • The Revisions row displays traffic distribution details for different rollout versions.
    • The Analysis Runs row displays the status of analysis tasks that evaluate rollout success.
맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

Theme

© 2025 Red Hat