Skip to main content
Redhat Developers  Logo
  • AI

    Get started with AI

    • Red Hat AI
      Accelerate the development and deployment of enterprise AI solutions.
    • AI learning hub
      Explore learning materials and tools, organized by task.
    • AI interactive demos
      Click through scenarios with Red Hat AI, including training LLMs and more.
    • AI/ML learning paths
      Expand your OpenShift AI knowledge using these learning resources.
    • AI quickstarts
      Focused AI use cases designed for fast deployment on Red Hat AI platforms.
    • No-cost AI training
      Foundational Red Hat AI training.

    Featured resources

    • OpenShift AI learning
    • Open source AI for developers
    • AI product application development
    • Open source-powered AI/ML for hybrid cloud
    • AI and Node.js cheat sheet

    Red Hat AI Factory with NVIDIA

    • Red Hat AI Factory with NVIDIA is a co-engineered, enterprise-grade AI solution for building, deploying, and managing AI at scale across hybrid cloud environments.
    • Explore the solution
  • Learn

    Self-guided

    • Documentation
      Find answers, get step-by-step guidance, and learn how to use Red Hat products.
    • Learning paths
      Explore curated walkthroughs for common development tasks.
    • Guided learning
      Receive custom learning paths powered by our AI assistant.
    • See all learning

    Hands-on

    • Developer Sandbox
      Spin up Red Hat's products and technologies without setup or configuration.
    • Interactive labs
      Learn by doing in these hands-on, browser-based experiences.
    • Interactive demos
      Click through product features in these guided tours.

    Browse by topic

    • AI/ML
    • Automation
    • Java
    • Kubernetes
    • Linux
    • See all topics

    Training & certifications

    • Courses and exams
    • Certifications
    • Skills assessments
    • Red Hat Academy
    • Learning subscription
    • Explore training
  • Build

    Get started

    • Red Hat build of Podman Desktop
      A downloadable, local development hub to experiment with our products and builds.
    • Developer Sandbox
      Spin up Red Hat's products and technologies without setup or configuration.

    Download products

    • Access product downloads to start building and testing right away.
    • Red Hat Enterprise Linux
    • Red Hat AI
    • Red Hat OpenShift
    • Red Hat Ansible Automation Platform
    • See all products

    Featured

    • Red Hat build of OpenJDK
    • Red Hat JBoss Enterprise Application Platform
    • Red Hat OpenShift Dev Spaces
    • Red Hat Developer Toolset

    References

    • E-books
    • Documentation
    • Cheat sheets
    • Architecture center
  • Community

    Get involved

    • Events
    • Live AI events
    • Red Hat Summit
    • Red Hat Accelerators
    • Community discussions

    Follow along

    • Articles & blogs
    • Developer newsletter
    • Videos
    • Github

    Get help

    • Customer service
    • Customer support
    • Regional contacts
    • Find a partner

    Join the Red Hat Developer program

    • Download Red Hat products and project builds, access support documentation, learning content, and more.
    • Explore the benefits

How to integrate Developer Hub with OpenShift GitOps

February 9, 2026
Joshua Canter
Related topics:
GitOpsIntegrationOperators
Related products:
Red Hat Developer HubRed Hat OpenShift GitOpsRed Hat OpenShift

    In previous articles, we set up a fully functional Red Hat Developer Hub installation in Red Hat OpenShift integrated with a GitHub organization for users through the use of dynamic plug-ins. In this article, we will explore another set of dynamic plug-ins allowing deep integration with Red Hat OpenShift GitOps (based on ArgoCD). 

    Setting up ArgoCD

    The OpenShift GitOps operator provides a quick, easy setup for ArgoCD with an instance defaulted to “cluster” scope.  Use the following manifests to create the default instance of ArgoCD. ArgoCD is a tool that allows automated deployments and enforcement of your declarative manifests, allowing Git to be the source of truth for your cluster and application configurations.

    Prerequisites:

    • Red Hat Developer Hub
    • OpenShift 4.x cluster

    Note: If your cluster uses self-signed certs, the backend plug-in will reject the ArgoCD endpoint. You can set up Developer Hub to ignore insecure TLS, but this is only recommended in a PoC environment.  

    Create the required namespaces.

    ---
    kind: Namespace
    apiVersion: v1
    metadata:
      name: openshift-gitops-operator
    --- 
    kind: Namespace
    apiVersion: v1
    metadata:
      name: openshift-gitops

    Create the required OperatorGroup and subscription.

    ---
    
    apiVersion: operators.coreos.com/v1
    kind: OperatorGroup
    metadata:
      name: openshift-gitops-operator
      namespace: openshift-gitops-operator
    spec:
      upgradeStrategy: Default

     

    apiVersion: operators.coreos.com/v1alpha1
    kind: Subscription
    metadata:
      name: openshift-gitops-operator
      namespace: openshift-gitops-operator
    spec:
      channel: latest
      installPlanApproval: Automatic
      name: openshift-gitops-operator
      source: redhat-operators
      sourceNamespace: openshift-marketplace

    This will create an “ArgoCD” custom resource in the namespace “openshift-gitops” called “openshift-gitops.” For integration with Developer Hub, we require an account with apiKey access. 

    Amend the default RBAC configuration and add extraConfig for the “openshift-gitops” Argo CD resource with the following:

     rbac:
        defaultPolicy: ''
        policy: |
          g, system:cluster-admins, role:admin
          g, cluster-admins, role:admin
          g, rhdh, role:admin
        scopes: '[groups]'
      extraConfig:
        accounts.rhdh: apiKey

    This will create an account in ArgoCD called “rhdh” with the full admin role. For real workloads, the account should have a role with appropriate access.

    Next, create a token for the “rhdh” ArgoCD account. From the CLI, this involves a few simple calls.

    ARGOCD_SERVER=$(oc get route openshift-gitops-server -n openshift-gitops -o jsonpath='{.spec.host}')
    
    ADMIN_PASS=$(oc get secret openshift-gitops-cluster -ojsonpath='{.data.admin\.password}' -n openshift-gitops | base64 -d)
    
    # NOTE:If your cluster uses self signed certs use -k in curl
    ARGO_TOKEN=$(curl -s -H "Content-Type: application/json" https://$ARGOCD_SERVER/api/v1/session -d '{"username":"admin","password":"'$ADMIN_PASS'"}' | jq -r '.token')
    
    curl -s -H "Authorization: Bearer $ARGO_TOKEN" -H "Content-Type: application/json" -X POST -d '{"expiresIn": 0,"id": "rhdh","name": "RHDH top level token"}' https://$ARGOCD_SERVER/api/v1/account/rhdh/token
    {"token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9…………"}

    Use this token to create a secret for Developer Hub to use within the rhdh-operator namespace.

    kind: Secret
    apiVersion: v1
    metadata:
     name: argo-secrets
     namespace: rhdh-operator
    stringData:
     ARGOCD_TOKEN: <argo token previously generated>
     ARGOCD_URL: <argo route in OCP>
    type: Opaque

    Last, add appropriate permissions to ArgoCD to create namespaces and resources. In a normal case, we would set up a separate “namespaced” instance of ArgoCD to deploy application resources to specific namespaces in the cluster.  

    In this demo, we are giving Argo’s controller full access for simplicity.  This is not recommended for production environments.

    Create a ClusterRoleBinding to give ArgoCD’s application controller cluster-admin permissions. Again, this is dangerous for anything but an isolated proof-of-concept cluster.

    kind: ClusterRoleBinding
    apiVersion: rbac.authorization.k8s.io/v1
    metadata:
     name: openshift-gitops-argocd-application-controller-admin
    subjects:
     - kind: ServiceAccount
       name: openshift-gitops-argocd-application-controller
       namespace: openshift-gitops
    roleRef:
     apiGroup: rbac.authorization.k8s.io
     kind: ClusterRole
     name: cluster-admin

    Optional: If you’re using self-signed certs, you can use the environment variable NODE_TLS_REJECT_UNAUTHORIZED to prevent Developer Hub from checking insecure connections. Update the Backstage CR with the extra variable. This may cause issues with various plug-ins. You should only use it for a PoC environment.

    apiVersion: rhdh.redhat.com/v1alpha4
    kind: Backstage
    ...
    spec:
     application:
    ...
       extraEnvs:
         envs:
           - name: NODE_TLS_REJECT_UNAUTHORIZED
             value: '0'

    Integrating ArgoCD with Developer Hub

    First, we need to enable the dynamic plug-ins for the backend and scaffolding. Add the three entries to the dynamic-plugins ConfigMap.

    apiVersion: v1
    metadata:
     name: dynamic-plugins-rhdh
     namespace: rhdh-operator
    data:
     dynamic-plugins.yaml: |
       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
         - package: ./dynamic-plugins/dist/roadiehq-scaffolder-backend-argocd-dynamic
           disabled: false

    Add an ArgoCD section to the Developer Hub app config ConfigMap to allow connections with our service account.

    kind: ConfigMap
    apiVersion: v1
    metadata:
      name: app-config-rhdh
      namespace: rhdh-operator
    data:
      app-config-rhdh.yaml: |
        app:
          title: My Red Hat Developer Hub Instance
    ...
        argocd:
          appLocatorMethods:
            - type: 'config'
              instances:
                - name: clusterargo
                  url: "${ARGOCD_URL}"
                  token: "${ARGOCD_TOKEN}"
          projectSettings:
            clusterResourceWhitelist:
              - group: ''
                kind: 'Namespace'
            # Only the listed resources will be allowed
            namespaceResourceWhitelist:
              - group: 'apps'
                kind: 'Deployment'
              - group: ''
                kind: 'Service'
              - group: 'route.openshift.io'
                kind: 'Route'

    Update the Backstage CR to use the additional secret we created for ArgoCD.

    apiVersion: rhdh.redhat.com/v1alpha3
    kind: Backstage
    metadata:
      name: developer-hub
      namespace: rhdh-operator
    spec:
      application:
    ...
        extraEnvs:
          secrets:
            - name: github-secrets
            - name: argo-secrets

    Viewing Argo applications in Developer Hub

    Create a new component in Developer Hub either through a template or manually. 

    apiVersion: backstage.io/v1alpha1
    kind: Component
    metadata:
      namespace: default
      annotations:
    ...
        argocd/app-name: quarkus-app-openshift-blog-rhdh
      name: quarkus-app-openshift-blog
      title: quarkus-app-openshift-blog
      tags:
        - quarkus
        - java
        - maven
    ...

    Notice the “argocd/app-name” annotation. This tells the Developer Hub plug-in which name to look for in ArgoCD to tie to the component. When an application with that name is created, the plug-in will look for it in ArgoCD and display its current status on a component’s page (Figure 1).

    The component view of “quarkus-app-openshift-blog” showing a summary of the ArgoCD application tied to the component.
    Figure 1: An example component with a deployment summary detailing information pulled from ArgoCD.

    If multiple ArgoCD applications apply to a component, you can use “argocd/app-selector” to group them based on labels. Refer to the RoadieHQ ArgoCD Plugin for Backstage documentation for more details. If no applications with the selector are present in ArgoCD, the user will receive a 403 error.  

    Wrap up

    This article demonstrated how to integrate ArgoCD with Red Hat Developer Hub. This integration gives powerful insight into your application status, which is a great start to your Developer Portal journey. Be sure to explore all of the dynamic plug-ins to get the most out of Developer Hub.

    Related Posts

    • How to install Red Hat Developer Hub

    • Red Hat Developer Hub background and concepts

    • OpenShift AI connector for Red Hat Developer Hub (Developer Preview)

    • Customize your deployments with the Red Hat Developer Hub Operator

    Recent Posts

    • MCP servers vs. skills: Choosing the right context for your AI

    • How to route external and local LLMs with Models-as-a-Service

    • Protect data offloaded to GPU-accelerated environments with OpenShift sandboxed containers

    • Case study: Measuring energy efficiency on the x64 platform

    • How to prevent AI inference stack silent failures

    What’s up next?

    Developer Portals share image

    Developer Portals: Prepare to Perform with Red Hat Developer Hub

    Hans-Peter Grahsl +2
    Red Hat Developers logo LinkedIn YouTube Twitter Facebook

    Platforms

    • Red Hat AI
    • Red Hat Enterprise Linux
    • Red Hat OpenShift
    • Red Hat Ansible Automation Platform
    • See all products

    Build

    • Developer Sandbox
    • Developer tools
    • Interactive tutorials
    • API catalog

    Quicklinks

    • Learning resources
    • E-books
    • Cheat sheets
    • Blog
    • Events
    • Newsletter

    Communicate

    • About us
    • Contact sales
    • Find a partner
    • Report a website issue
    • Site status dashboard
    • Report a security problem

    RED HAT DEVELOPER

    Build here. Go anywhere.

    We serve the builders. The problem solvers who create careers with code.

    Join us if you’re a developer, software engineer, web designer, front-end designer, UX designer, computer scientist, architect, tester, product manager, project manager or team lead.

    Sign me up

    Red Hat legal and privacy links

    • About Red Hat
    • Jobs
    • Events
    • Locations
    • Contact Red Hat
    • Red Hat Blog
    • Inclusion at Red Hat
    • Cool Stuff Store
    • Red Hat Summit
    © 2026 Red Hat

    Red Hat legal and privacy links

    • Privacy statement
    • Terms of use
    • All policies and guidelines
    • Digital accessibility

    Chat Support

    Please log in with your Red Hat account to access chat support.