Installing Ansible plug-ins for Red Hat Developer Hub


Red Hat Ansible Automation Platform 2.5

Install and configure Ansible plug-ins for Red Hat Developer Hub

Red Hat Customer Content Services

Abstract

This guide describes how to install and configure Ansible plug-ins for Red Hat Developer Hub so that users can learn about Ansible, explore curated collections, and develop automation projects.

Preface

Thank you for your interest in Red Hat Ansible Automation Platform. Ansible Automation Platform is a commercial offering that helps teams manage complex multi-tier deployments by adding control, knowledge, and delegation to Ansible-powered environments.

This guide describes how to install Ansible plug-ins for Red Hat Developer Hub. This document has been updated to include information for the latest release of Ansible Automation Platform.

Providing feedback on Red Hat documentation

If you have a suggestion to improve this documentation, or find an error, you can contact technical support at https://access.redhat.com to open a request.

Ansible plug-ins for Red Hat Developer Hub (RHDH) offer a tailored RHDH interface, curated learning paths, and software templates for creating projects, all while linking to supported development environments like OpenShift Dev Spaces and Ansible Automation Platform.

1.1. Red Hat Developer Hub

Red Hat Developer Hub (RHDH) serves as an open developer platform designed for building developer portals.

1.2. Ansible plug-ins for Red Hat Developer Hub

Ansible plug-ins for Red Hat Developer Hub deliver an Ansible-first Red Hat Developer Hub user experience that simplifies the automation experience for Ansible users of all skill levels.

The Ansible plug-ins provide curated content and features to accelerate Ansible learner onboarding and streamline Ansible use case adoption across your organization.

The Ansible plug-ins provide:

  • A customized home page and navigation tailored to Ansible users.
  • Curated Ansible learning paths to help users new to Ansible.
  • Software templates for creating Ansible playbook and collection projects that follow best practices.
  • Optional links to supported development environments and tools with opinionated configurations.

The following procedures describe how to install Ansible plug-ins in Red Hat Developer Hub instances on Red Hat OpenShift Container Platform using a Helm chart.

The workflow is as follows:

  1. Choose a plug-in delivery method: OCI container delivery (recommended) or HTTP plug-in registry.
  2. Complete the preparation steps for your chosen delivery method.
  3. Add the plug-ins to the Helm chart.
  4. Create a custom ConfigMap.
  5. Add your custom ConfigMap to your Helm chart.
  6. Edit your custom ConfigMap and Helm chart according to the required and optional configuration procedures.

    Note

    You can save changes to your Helm chart and ConfigMap after each update to your configuration. You do not have to make all the changes to these files in a single session.

2.1. Prerequisites

To proceed, you must have Red Hat Developer Hub installed on Red Hat OpenShift Container Platform (OCP) and a valid subscription to Red Hat Ansible Automation Platform.

  • Red Hat Developer Hub installed on Red Hat OpenShift Container Platform.

  • A valid subscription to Red Hat Ansible Automation Platform.
  • An OpenShift Container Platform instance with the appropriate permissions within your project to create an application.
  • The Red Hat Developer Hub instance can query the automation controller API.
  • Optional: To use the integrated learning paths, you must have outbound access to developers.redhat.com.

2.3. Choose a plug-in delivery method

Ansible plug-ins for Red Hat Developer Hub support two delivery methods. Choose the method that fits your environment:

  • OCI container (recommended): Red Hat Developer Hub pulls the Ansible plug-ins directly from registry.redhat.io as OCI artifacts during startup. You do not need to use any manual file downloads or plug-in registry deployment.
  • HTTP plug-in registry: Manually download the Ansible plug-ins tarball files, deploy an HTTP plug-in registry in your OpenShift cluster, and configure Red Hat Developer Hub to pull plug-ins from that registry. Use this method if your environment cannot pull OCI artifacts from registry.redhat.io.

Complete one of the following procedures before configuring the Ansible plug-ins in the Required configuration section.

2.3.1. Use OCI container delivery method

Red Hat Developer Hub pulls the Ansible plug-ins directly from registry.redhat.io as OCI artifacts. This the recommended method that requires a registry authentication secret in the same OpenShift project as your Red Hat Developer Hub deployment.

Prerequisites

  • You have a Red Hat account with access to registry.redhat.io.
  • You have a registry service account token from the Red Hat Customer Portal. For more information, see Registry Service Accounts.
  • You have access to the OpenShift project. In the same project you had installed Red Hat Developer Hub.
  • You have installed the OpenShift CLI (oc) and logged in to your cluster.

Procedure

  1. Create an auth.json file on your local machine with your registry.redhat.io credentials:

    {
      "auths": {
        "registry.redhat.io": {
          "auth": "<base64-encoded-username:password>"
        }
      }
    }

    To generate the base64-encoded value use the printf '%s' '<username>:<password>' | base64 command.

  2. Create the authentication secret in the OpenShift project where you installed Red Hat Developer Hub.

    The secret name must follow the pattern <deployment-name>-dynamic-plugins-registry-auth, where <deployment-name> matches your Red Hat Developer Hub deployment name.

    • For a default Red Hat Developer Hub Helm installation with release name developer-hub:

      oc create secret generic developer-hub-dynamic-plugins-registry-auth \
        --from-file=auth.json=./auth.json
    • If you use a different Helm release name:

      oc create secret generic <deployment-name>-dynamic-plugins-registry-auth \
        --from-file=auth.json=./auth.json
    • If you already have Podman credentials configured locally:

      oc create secret generic <deployment-name>-dynamic-plugins-registry-auth \
        --from-file=auth.json=${XDG_RUNTIME_DIR}/containers/auth.json
      Important

      Create this secret in the same OpenShift project as your Red Hat Developer Hub deployment, and create it before you configure the plug-ins. Use a Red Hat Registry service account token, not your personal Red Hat account credentials.

Verification

  • Verify that the secret exists in the project:

    oc get secret <deployment-name>-dynamic-plugins-registry-auth

2.3.2. Downloading the Ansible plug-ins files

Download the Ansible plug-ins for Red Hat Developer Hub Setup Bundle from the Red Hat Ansible Automation Platform Product Software downloads page.

Procedure

  1. In a browser, navigate to the Red Hat Ansible Automation Platform Product Software downloads page and select the Product Software tab.
  2. Click Download now next to Ansible plug-ins for Red Hat Developer Hub Setup Bundle to download the latest version of the plug-ins.

    The format of the filename is ansible-rhdh-plugins-x.y.z.tar.gz. Substitute the Ansible plug-ins release version, for example 2.0.0, for x.y.z.

  3. Create a directory on your local machine to store the .tar files.

    $ mkdir /path/to/<ansible-backstage-plugins-local-dir-changeme>
  4. Set an environment variable ($DYNAMIC_PLUGIN_ROOT_DIR) to represent the directory path.

    $ export DYNAMIC_PLUGIN_ROOT_DIR=/path/to/<ansible-backstage-plugins-local-dir-changeme>
  5. Extract the ansible-rhdh-plugins-<version-number>.tar.gz contents to $DYNAMIC_PLUGIN_ROOT_DIR.

    $ tar --exclude='*code*' -xzf ansible-rhdh-plugins-x.y.z.tar.gz -C $DYNAMIC_PLUGIN_ROOT_DIR

    Substitute the Ansible plug-ins release version, for example 2.0.0, for x.y.z.

Verification

Run ls to verify that the extracted files are in the $DYNAMIC_PLUGIN_ROOT_DIR directory:

$ ls $DYNAMIC_PLUGIN_ROOT_DIR
ansible-plugin-backstage-rhaap-dynamic-x.y.z.tgz
ansible-plugin-backstage-rhaap-dynamic-x.y.z.tgz.integrity
ansible-plugin-scaffolder-backend-module-backstage-rhaap-dynamic-x.y.z.tgz
ansible-plugin-scaffolder-backend-module-backstage-rhaap-dynamic-x.y.z.tgz.integrity

The files with the .integrity file type contain the plugin SHA value. You use the SHA value during the plug-in configuration.

Set up a registry in your OpenShift cluster to host the Ansible plug-ins and make them available for installation in Red Hat Developer Hub (RHDH).

Procedure

  1. Log in to your OpenShift Container Platform instance with credentials to create a new application.
  2. Open your Red Hat Developer Hub OpenShift project.

    $ oc project <YOUR_DEVELOPER_HUB_PROJECT>
  3. Run the following commands to create a plug-in registry build in the OpenShift cluster.

    $ oc new-build httpd --name=plugin-registry --binary
    $ oc start-build plugin-registry --from-dir=$DYNAMIC_PLUGIN_ROOT_DIR --wait
    $ oc new-app --image-stream=plugin-registry

Verification

To verify that the plugin-registry was deployed successfully, open the Topology view in the Developer perspective on the Red Hat Developer Hub application in the OpenShift Web console.

  1. Click the plug-in registry to view the log.

    Developer perspective

    (1) Developer hub instance

    (2) Plug-in registry

  2. Click the terminal tab and login to the container.
  3. In the terminal, run ls to confirm that the .tar files are in the plugin registry.

    ansible-plugin-backstage-rhaap-dynamic-x.y.z.tgz
    ansible-plugin-scaffolder-backend-module-backstage-rhaap-dynamic-x.y.z.tgz

    The version numbers and file names can differ.

2.4. Required configuration

Configure the Ansible plug-ins installation using a Helm chart on OpenShift Container Platform.

2.4.1. Adding the Ansible plug-ins configuration

Modify the Red Hat Developer Hub Helm chart to add the Ansible plug-ins. The configuration depends on the plug-in delivery method you chose earlier.

  1. In the OpenShift Developer UI, navigate to Helmdeveloper-hubActionsUpgradeYaml view.
  2. Update the Helm chart configuration to add the dynamic plug-ins in the Red Hat Developer Hub instance. Under the plugins section in the YAML file, add the dynamic plug-ins that you want to enable. Choose the configuration that matches your delivery method.

    • OCI container delivery (recommended):

      global:
        dynamic:
          includes:
            - dynamic-plugins.default.yaml
          plugins:
            - disabled: false
              package: 'oci://registry.redhat.io/ansible-automation-platform/automation-portal:21!ansible-plugin-backstage-rhaap'
              pluginConfig:
                dynamicPlugins:
                  frontend:
                    ansible.plugin-backstage-rhaap:
                      appIcons:
                        - importName: AnsibleLogo
                          name: AnsibleLogo
                      dynamicRoutes:
                        - importName: AnsiblePage
                          menuItem:
                            icon: AnsibleLogo
                            text: Ansible
                          path: /ansible
            - disabled: false
              package: 'oci://registry.redhat.io/ansible-automation-platform/automation-portal:2.1!ansible-plugin-scaffolder-backend-module-backstage-rhaap'
              pluginConfig:
                dynamicPlugins:
                  backend:
                    ansible.plugin-scaffolder-backend-module-backstage-rhaap: null

      Replace x.y.z with the Ansible plug-ins version.

      Note

      OCI delivery does not require the integrity hash values. The OCI registry handles integrity verification.

    • HTTP plug-in registry:

      global:
        dynamic:
          includes:
            - dynamic-plugins.default.yaml
          plugins:
            - disabled: false
              integrity: <SHA512 value>
              package: 'http://plugin-registry:8080/ansible-plugin-backstage-rhaap-dynamic-x.y.z.tgz'
              pluginConfig:
                dynamicPlugins:
                  frontend:
                    ansible.plugin-backstage-rhaap:
                      appIcons:
                        - importName: AnsibleLogo
                          name: AnsibleLogo
                      dynamicRoutes:
                        - importName: AnsiblePage
                          menuItem:
                            icon: AnsibleLogo
                            text: Ansible
                          path: /ansible
            - disabled: false
              integrity: <SHA512 value>
              package: >-
                http://plugin-registry:8080/ansible-plugin-scaffolder-backend-module-backstage-rhaap-dynamic-x.y.z.tgz
              pluginConfig:
                dynamicPlugins:
                  backend:
                    ansible.plugin-scaffolder-backend-module-backstage-rhaap: null

      Replace x.y.z with the correct plug-in version numbers and update the integrity values using the corresponding .integrity file content.

  3. Click Upgrade.

    The Red Hat Developer Hub pods restart and the plug-ins are installed.

Verification

To verify that the plug-ins have been installed, open the install-dynamic-plugin container logs:

  1. Open the Developer perspective for the Red Hat Developer Hub application in the OpenShift Web console.
  2. Select the Topology view.
  3. Select the Red Hat Developer Hub deployment pod to open an information pane.
  4. Select the Resources tab of the information pane.
  5. In the Pods section, click View logs to open the Pod details page.
  6. In the Pod details page, select the Logs tab.
  7. Select install-dynamic-plugins from the drop-down list of containers to view the container log.

    • For OCI delivery, a successful installation displays:

      => Successfully installed dynamic plugin oci:registry.redhat.io/ansible-automation-platform/ansible-plugin-backstage-rhaap-dynamic:x.y.z
    • For HTTP plug-in registry, a successful installation displays:

      => Successfully installed dynamic plugin http://plugin-registry:8080/ansible-plugin-backstage-rhaap-dynamic-x.y.z.tgz

You must add a pull secret to the Red Hat Developer Hub Helm configuration to enable the dynamic plug-ins to pull container images from authenticated registries.

Prerequisite

The Ansible Development Container download requires a Red Hat Customer Portal account and Red Hat Service Registry account.

Procedure

  1. Create a new Red Hat Registry Service account, if required.
  2. Click the token name under the Account name column.
  3. Select the OpenShift Secret tab and follow the instructions to add the pull secret to your Red Hat Developer Hub OpenShift project.
  4. Add the new secret to the Red Hat Developer Hub Helm configuration, replacing <your-redhat-registry-pull-secret> with the name of the secret you generated on the Red Hat Registry Service Account website:

    upstream:
      backstage:
        ...
        image:
          ...
          pullSecrets:
            - <your-redhat-registry-pull-secret>
        ...

You must update the Helm chart configuration to add an extra container.

Procedure

  1. Log in to the OpenShift UI.
  2. Navigate to Helmdeveloper-hubActionsupgradeYaml view to open the Helm chart.
  3. Update the extraContainers section in the YAML file.

    Add the following code:

    upstream:
      backstage:
        ...
        extraContainers:
          - command:
              - adt
              - server
            image: >-
              registry.redhat.io/ansible-automation-platform-25/ansible-dev-tools-rhel8:latest
            imagePullPolicy: IfNotPresent
            name: ansible-devtools-server
            ports:
              - containerPort: 8000
        ...
    Note

    The image pull policy is imagePullPolicy: IfNotPresent. The image is pulled only if it does not already exist on the node. Update it to imagePullPolicy: Always if you always want to use the latest image.

  4. Click Upgrade.

Verification

To verify that the container is running, check the container log:

View container log

2.4.3. Adding a custom ConfigMap

Create a Red Hat Developer Hub ConfigMap following the procedure in the Creating and using config maps section of the OpenShift Container Platform Nodes guide. The following examples use a custom ConfigMap named app-config-rhdh.

To edit your custom ConfigMap, log in to the OpenShift UI and navigate to Select Project ( developerHubProj )ConfigMaps{developer-hub}-app-configEditConfigMapsapp-config-rhdh.

2.4.4. Configuring the Ansible Dev Tools Server

The creatorService URL is required for the Ansible plug-ins to provision new projects using the provided software templates.

Procedure

  1. Edit your custom Red Hat Developer Hub config map, app-config-rhdh, that you created in Adding a custom ConfigMap.
  2. Add the following code to your Red Hat Developer Hub app-config-rhdh.yaml file.

    kind: ConfigMap
    apiVersion: v1
    metadata:
      name: app-config-rhdh
    ...
    data:
      app-config-rhdh.yaml: |-
        ansible:
          creatorService:
            baseUrl: 127.0.0.1
            port: '8000'
    ...

Connect Red Hat Developer Hub to your automation controller by configuring the Ansible Automation Platform details. This configuration uses a Personal Access Token (PAT) to authenticate the plug-ins, which allows them to interact with your automation environment.

Note

The Ansible plug-ins continue to function regardless of the Ansible Automation Platform subscription status.

Procedure

  1. Create a Personal Access Token (PAT) with “read and write” scope in automation controller, following the Applications section of Access management and authentication.
  2. Edit your custom Red Hat Developer Hub config map, for example app-config-rhdh.
  3. Add your Ansible Automation Platform details to app-config-rhdh.yaml.

    1. Set the baseURL key with your automation controller URL.
    2. Set the token key with the generated token value that you created in Step 1.
    3. Set the checkSSL key to true or false.

      If checkSSL is set to true, the Ansible plug-ins verify whether the SSL certificate is valid.

      data:
        app-config-rhdh.yaml: |
          ...
          ansible:
          ...
            rhaap:
              baseUrl: '<https://MyControllerUrl>'
              token: '<AAP Personal Access Token>'
              checkSSL: true
      Note

      You are responsible for protecting your Red Hat Developer Hub installation from external and unauthorized access. Manage the backend authentication key like any other secret. Meet strong password requirements, do not expose it in any configuration files, and only inject it into configuration files as an environment variable.

2.4.6. Adding Ansible plug-ins software templates

Ansible Automation Platform provides software templates for Red Hat Developer Hub to provision new playbooks and collection projects based on Ansible best practices.

Procedure

  1. Edit your custom Red Hat Developer Hub config map, for example app-config-rhdh.
  2. Add the following code to your Red Hat Developer Hub app-config-rhdh.yaml file.

    data:
      app-config-rhdh.yaml: |
        catalog:
          ...
          locations:
            ...
            - type: url
              target: https://github.com/ansible/ansible-rhdh-templates/blob/main/all.yaml
              rules:
                - allow: [Template]

2.4.7. Configuring Role Based Access Control

Red Hat Developer Hub offers Role-based Access Control (RBAC) functionality. RBAC can then be applied to the Ansible plug-ins content.

Assign the following roles:

  • Members of the admin:superUsers group can select templates in the Create tab of the Ansible plug-ins to create playbook and collection projects.
  • Members of the admin:users group can view templates in the Create tab of the Ansible plug-ins.

The following example adds RBAC to Red Hat Developer Hub.

data:
  app-config-rhdh.yaml: |
    plugins:
    ...
    permission:
      enabled: true
      rbac:
        admin:
          users:
            - name: user:default/<user-scm-ida>
          superUsers:
            - name: user:default/<user-admin-idb>

For more information about permission policies and managing RBAC, refer to the Authorization in Red Hat Developer Hub guide for Red Hat Developer Hub.

2.5. Optional configuration for Ansible plug-ins

Enable Red Hat Developer Hub authentication and configure optional integrations, such as connecting to OpenShift Dev Spaces or specifying a private automation hub URL. While optional, these configurations enhance the user experience and functionality of the plug-ins.

Red Hat Developer Hub (RHDH) provides integrations for multiple Source Control Management (SCM) systems. This is required by the plug-ins to create repositories.

Refer to the Enabling authentication in Red Hat Developer Hub chapter of the Administration guide for Red Hat Developer Hub.

The Ansible plug-ins provide integrations with Ansible Automation Platform and other optional Red Hat products.

Procedure

  • To edit your custom ConfigMap, log in to the OpenShift UI and navigate to Select Project ( developerHubProj )ConfigMaps{developer-hub}-app-config-rhdhapp-config-rhdh.
2.5.2.1. Configuring OpenShift Dev Spaces

When OpenShift Dev Spaces is configured for the Ansible plug-ins, users can click a link from the catalog item view in Red Hat Developer Hub and edit their provisioned Ansible Git projects using Dev Spaces.

Note

OpenShift Dev Spaces is a separate product and it is optional. The plug-ins will function without it.

It is a separate Red Hat product and is not included in the Ansible Automation Platform or Red Hat Developer Hub subscription.

If the OpenShift Dev Spaces link is not configured in the Ansible plug-ins, the Go to OpenShift Dev Spaces dashboard link in the DEVELOP section of the Ansible plug-ins landing page redirects users to the Ansible development tools home page.

Prerequisites

  • A Dev Spaces installation. Refer to the Installing Dev Spaces section of the Red Hat OpenShift Dev Spaces Administration guide.

Procedure

  1. Edit your custom Red Hat Developer Hub config map, for example app-config-rhdh.
  2. Add the following code to your Red Hat Developer Hub app-config-rhdh.yaml file.

    data:
      app-config-rhdh.yaml: |-
        ansible:
          devSpaces:
            baseUrl: >-
              https://<Your OpenShift Dev Spaces URL>
  3. Replace <Your OpenShft Dev Spaces URL> with your OpenShift Dev Spaces URL.
  4. In the OpenShift Developer UI, select the Red Hat Developer Hub pod.
  5. Open Actions.
  6. Click Restart rollout.

Private automation hub provides a centralized, on-premise repository for certified Ansible collections, execution environments and any additional, vetted content provided by your organization.

If the private automation hub URL is not configured in the Ansible plug-ins, users are redirected to the Red Hat Hybrid Cloud Console automation hub.

Note

The private automation hub configuration is optional but recommended. The Ansible plug-ins will function without it.

Prerequisites

Procedure

  1. Edit your custom Red Hat Developer Hub config map, for example app-config-rhdh.
  2. Add the following code to your Red Hat Developer Hub app-config-rhdh.yaml file.

    data:
      app-config-rhdh.yaml: |-
        ansible:
        ...
          automationHub:
            baseUrl: '<https://MyOwnPAHUrl>'
        ...
  3. Replace <https://MyOwnPAHUrl/> with your private automation hub URL.
  4. In the OpenShift Developer UI, select the Red Hat Developer Hub pod.
  5. Open Actions.
  6. Click Restart rollout.

2.6. Full examples

The following examples demonstrate how the required and optional settings for the Ansible Dev Tools Server, Ansible Automation Platform, software templates, and other integrations are correctly formatted within their respective YAML files.

This example details necessary settings like the creatorService URL, optional integrations for Ansible Automation Platform and OpenShift Dev Spaces, and the addition of Ansible software templates to the catalog.

kind: ConfigMap
...
metadata:
  name: app-config-rhdh
  ...
data:
  app-config-rhdh.yaml: |-
    ansible:
      creatorService:
        baseUrl: 127.0.0.1
        port: '8000'
      # Optional integrations
      rhaap:
        baseUrl: '<https://MyControllerUrl>'
      devSpaces:
        baseUrl: '<https://MyDevSpacesURL>'
      automationHub:
        baseUrl: '<https://MyPrivateAutomationHubURL>'

    ...
    catalog:
      locations:
        - type: url
          target: https://github.com/ansible/ansible-rhdh-templates/blob/main/all.yaml
          rules:
            - allow: [Template]
    ...

This example provides a full YAML configuration for the Helm chart using OCI container delivery.

global:
  dynamic:
    includes:
      - dynamic-plugins.default.yaml
    plugins:
      - disabled: false
        package: 'oci://registry.redhat.io/ansible-automation-platform/automation-portal:2.1!ansible-plugin-backstage-rhaap'
        pluginConfig:
          dynamicPlugins:
            frontend:
              ansible.plugin-backstage-rhaap:
                appIcons:
                  - importName: AnsibleLogo
                    name: AnsibleLogo
                dynamicRoutes:
                  - importName: AnsiblePage
                    menuItem:
                      icon: AnsibleLogo
                      text: Ansible
                    path: /ansible
      - disabled: false
        package: 'oci://registry.redhat.io/ansible-automation-platform/automation-portal:2.1!ansible-plugin-scaffolder-backend-module-backstage-rhaap'
        pluginConfig:
          dynamicPlugins:
            backend:
              ansible.plugin-scaffolder-backend-module-backstage-rhaap: null

upstream:
  backstage:
    image:
      pullSecrets:
        - <your-redhat-registry-pull-secret>
    extraAppConfig:
      - configMapRef: app-config-rhdh
        filename: app-config-rhdh.yaml
    extraContainers:
      - command:
          - adt
          - server
        image: >-
          registry.redhat.io/ansible-automation-platform-25/ansible-dev-tools-rhel8:latest
        imagePullPolicy: IfNotPresent
        name: ansible-devtools-server
        ports:
          - containerPort: 8000

The following procedures describe how to install Ansible plug-ins in Red Hat Developer Hub instances on Red Hat OpenShift Container Platform using the Operator.

3.1. Prerequisites

To proceed, you must have Red Hat Developer Hub installed on Red Hat OpenShift Container Platform (OCP) and a valid subscription to Red Hat Ansible Automation Platform.

  • Red Hat Developer Hub installed on Red Hat OpenShift Container Platform.

  • A valid subscription to Red Hat Ansible Automation Platform.
  • An OpenShift Container Platform instance with the appropriate permissions within your project to create an application.
  • The Red Hat Developer Hub instance can query the automation controller API.
  • Optional: To use the integrated learning paths, you must have outbound access to developers.redhat.com.

Add a sidecar container for Ansible development tools in the Developer Hub pod. To do this, you must modify the base ConfigMap for the Red Hat Developer Hub deployment.

  1. In the OpenShift console, select the Topology view.
  2. Click More actions ⋮ on the developer-hub instance and select Edit backstage to open the Backstage details page.
  3. Select the YAML tab.
  4. In the editing pane, add a containers block in the spec.deployment.patch.spec.template.spec block:

    apiVersion: rhdh.redhat.com/v1alpha3
    kind: Backstage
    metadata:
      name: developer-hub
    spec:
      deployment:
        patch:
          spec:
            template:
              spec:
                containers:
                  - command:
                      - adt
                      - server
                    image: registry.redhat.io/ansible-automation-platform-25/ansible-dev-tools-rhel8:latest
                    imagePullPolicy: always
                    ports:
                      - containerPort: 8000
                        protocol: TCP
                    terminationMessagePolicy: file
  5. Click Save.
Note

If you want to add extra environment variables to your deployment, you can add them in the spec.application.extraEnvs block:

spec:
  application:
    ...
    extraEnvs:
      envs:
        - name: <env_variable_name>
          value: <env_variable_value>

Ansible plug-ins for Red Hat Developer Hub support two delivery methods. Choose the method that fits your environment:

+ * OCI container (recommended): Red Hat Developer Hub pulls the Ansible plug-ins directly from registry.redhat.io as OCI artifacts during startup.

  • HTTP plug-in registry: Manually download the Ansible plug-ins tarball file and deploy an HTTP plug-in registry in your OpenShift cluster. Use this method if your environment cannot pull OCI artifacts from registry.redhat.io.

Complete one of the following procedures before configuring the dynamic plug-ins.

Red Hat Developer Hub pulls the Ansible plug-ins directly from registry.redhat.io as OCI artifacts. This method requires a registry authentication secret in the same OpenShift project as your Red Hat Developer Hub deployment.

Prerequisites

  • You have a Red Hat account with access to registry.redhat.io.
  • You have a registry service account token from the Red Hat Customer Portal. For more information, see Registry Service Accounts.
  • You have access to the OpenShift project where you had installed Red Hat Developer Hub.
  • You have installed the OpenShift CLI (oc) and logged in to your cluster.

Procedure

  1. Create an auth.json file on your local machine with your registry.redhat.io credentials:

    {
      "auths": {
        "registry.redhat.io": {
          "auth": "<base64-encoded-username:password>"
        }
      }
    }

    To generate the base64-encoded value, use the printf '%s' '<username>:<password>' | base64 command.

  2. Create the authentication secret in the OpenShift project where you had installed Red Hat Developer Hub.

    The secret name must follow the pattern <deployment-name>-dynamic-plugins-registry-auth, where <deployment-name> matches the metadata.name of your Backstage custom resource.

    • For a default Operator installation with name developer-hub:

      oc create secret generic developer-hub-dynamic-plugins-registry-auth \
        --from-file=auth.json=./auth.json
    • If you already have Podman credentials configured locally:

      oc create secret generic <deployment-name>-dynamic-plugins-registry-auth \
        --from-file=auth.json=${XDG_RUNTIME_DIR}/containers/auth.json
      Important

      Create this secret in the same OpenShift project as your Red Hat Developer Hub deployment, and create it before you configure the plug-ins.

Verification

  • Verify that the secret exists in the project:

    oc get secret <deployment-name>-dynamic-plugins-registry-auth

3.4.2. Downloading the Ansible plug-ins files

Download the Ansible plug-ins for Red Hat Developer Hub Setup Bundle from the Red Hat Ansible Automation Platform Product Software downloads page.

Procedure

  1. In a browser, navigate to the Red Hat Ansible Automation Platform Product Software downloads page and select the Product Software tab.
  2. Click Download now next to Ansible plug-ins for Red Hat Developer Hub Setup Bundle to download the latest version of the plug-ins.

    The format of the filename is ansible-rhdh-plugins-x.y.z.tar.gz. Substitute the Ansible plug-ins release version, for example 2.0.0, for x.y.z.

  3. Create a directory on your local machine to store the .tar files.

    $ mkdir /path/to/<ansible-backstage-plugins-local-dir-changeme>
  4. Set an environment variable ($DYNAMIC_PLUGIN_ROOT_DIR) to represent the directory path.

    $ export DYNAMIC_PLUGIN_ROOT_DIR=/path/to/<ansible-backstage-plugins-local-dir-changeme>
  5. Extract the ansible-rhdh-plugins-<version-number>.tar.gz contents to $DYNAMIC_PLUGIN_ROOT_DIR.

    $ tar --exclude='*code*' -xzf ansible-rhdh-plugins-x.y.z.tar.gz -C $DYNAMIC_PLUGIN_ROOT_DIR

    Substitute the Ansible plug-ins release version, for example 2.0.0, for x.y.z.

Verification

Run ls to verify that the extracted files are in the $DYNAMIC_PLUGIN_ROOT_DIR directory:

$ ls $DYNAMIC_PLUGIN_ROOT_DIR
ansible-plugin-backstage-rhaap-dynamic-x.y.z.tgz
ansible-plugin-backstage-rhaap-dynamic-x.y.z.tgz.integrity
ansible-plugin-scaffolder-backend-module-backstage-rhaap-dynamic-x.y.z.tgz
ansible-plugin-scaffolder-backend-module-backstage-rhaap-dynamic-x.y.z.tgz.integrity

The files with the .integrity file type contain the plugin SHA value. You use the SHA value during the plug-in configuration.

Set up a registry in your OpenShift cluster to host the Ansible plug-ins and make them available for installation in Red Hat Developer Hub (RHDH).

Procedure

  1. Log in to your OpenShift Container Platform instance with credentials to create a new application.
  2. Open your Red Hat Developer Hub OpenShift project.

    $ oc project <YOUR_DEVELOPER_HUB_PROJECT>
  3. Run the following commands to create a plug-in registry build in the OpenShift cluster.

    $ oc new-build httpd --name=plugin-registry --binary
    $ oc start-build plugin-registry --from-dir=$DYNAMIC_PLUGIN_ROOT_DIR --wait
    $ oc new-app --image-stream=plugin-registry

Verification

To verify that the plugin-registry was deployed successfully, open the Topology view in the Developer perspective on the Red Hat Developer Hub application in the OpenShift Web console.

  1. Click the plug-in registry to view the log.

    Developer perspective

    (1) Developer hub instance

    (2) Plug-in registry

  2. Click the terminal tab and login to the container.
  3. In the terminal, run ls to confirm that the .tar files are in the plugin registry.

    ansible-plugin-backstage-rhaap-dynamic-x.y.z.tgz
    ansible-plugin-scaffolder-backend-module-backstage-rhaap-dynamic-x.y.z.tgz

    The version numbers and file names can differ.

3.5. Installing the dynamic plug-ins

To install the dynamic plugins, add them to your ConfigMap for your RHDH plugin settings (for example, rhaap-dynamic-plugins-config).

If you have not already created a ConfigMap file for your RHDH plugin settings, create one by following the procedure in the Creating and using config maps section of the OpenShift Container Platform Nodes guide.

Procedure

  1. Select ConfigMaps in the navigation pane of the OpenShift console.
  2. Select the rhaap-dynamic-plugins-config ConfigMap from the list.
  3. Select the YAML tab to edit the rhaap-dynamic-plugins-config ConfigMap.
  4. Add the Ansible plug-ins. Choose the configuration that matches your delivery method.

    • OCI container delivery method (recommended):

      kind: ConfigMap
      apiVersion: v1
      metadata:
        name: rhaap-dynamic-plugins-config
      data:
        dynamic-plugins.yaml: |
          includes:
            - dynamic-plugins.default.yaml
          plugins:
            - disabled: false
              package: 'oci://registry.redhat.io/ansible-automation-platform/automation-portal:2.1!ansible-plugin-backstage-rhaap'
              pluginConfig:
                dynamicPlugins:
                  frontend:
                    ansible.plugin-backstage-rhaap:
                      appIcons:
                        - importName: AnsibleLogo
                          name: AnsibleLogo
                      dynamicRoutes:
                        - importName: AnsiblePage
                          menuItem:
                            icon: AnsibleLogo
                            text: Ansible
                          path: /ansible
            - disabled: false
              package: 'oci://registry.redhat.io/ansible-automation-platform/automation-portal:2.1!ansible-plugin-scaffolder-backend-module-backstage-rhaap'
              pluginConfig:
                dynamicPlugins:
                  backend:
                    ansible.plugin-scaffolder-backend-module-backstage-rhaap: null

      Replace x.y.z with the Ansible plug-ins version.

    • HTTP plug-in registry method:

      kind: ConfigMap
      apiVersion: v1
      metadata:
        name: rhaap-dynamic-plugins-config
      data:
        dynamic-plugins.yaml: |
          includes:
            - dynamic-plugins.default.yaml
          plugins:
            - disabled: false
              package: 'http://plugin-registry:8080/ansible-plugin-backstage-rhaap-dynamic-x.y.z.tgz'
              integrity: <SHA512 value>
              pluginConfig:
                dynamicPlugins:
                  frontend:
                    ansible.plugin-backstage-rhaap:
                      appIcons:
                        - importName: AnsibleLogo
                          name: AnsibleLogo
                      dynamicRoutes:
                        - importName: AnsiblePage
                          menuItem:
                            icon: AnsibleLogo
                            text: Ansible
                          path: /ansible
            - disabled: false
              package: >-
                http://plugin-registry:8080/ansible-plugin-scaffolder-backend-module-backstage-rhaap-dynamic-x.y.z.tgz
              integrity: <SHA512 value>
              pluginConfig:
                dynamicPlugins:
                  backend:
                    ansible.plugin-scaffolder-backend-module-backstage-rhaap: null
  5. Click Save.

Verification

  1. In the OpenShift console, select the Topology view.
  2. Click the Open URL icon on the deployment pod to open your Red Hat Developer Hub instance in a browser window.

The Ansible plug-in is present in the navigation pane. If you select Administration, you can see the installed plug-ins in the Plugins tab.

3.6. Adding a custom ConfigMap

Create a Red Hat Developer Hub ConfigMap following the procedure in the Creating and using config maps section of the OpenShift Container Platform Nodes guide. The following examples use a custom ConfigMap named app-config-rhdh.

To edit your custom ConfigMap, log in to the OpenShift UI and navigate to Select Project ( developerHubProj )ConfigMaps{developer-hub}-app-configEditConfigMapsapp-config-rhdh.

3.7. Configuring the Ansible Dev Tools Server

The creatorService URL is required for the Ansible plug-ins to provision new projects using the provided software templates.

Procedure

  1. Edit your custom Red Hat Developer Hub config map, app-config-rhdh, that you created in Adding a custom ConfigMap.
  2. Add the following code to your Red Hat Developer Hub app-config-rhdh.yaml file.

    kind: ConfigMap
    apiVersion: v1
    metadata:
      name: app-config-rhdh
    ...
    data:
      app-config-rhdh.yaml: |-
        ansible:
          creatorService:
            baseUrl: 127.0.0.1
            port: '8000'
    ...

Connect Red Hat Developer Hub to your automation controller by configuring the Ansible Automation Platform details. This configuration uses a Personal Access Token (PAT) to authenticate the plug-ins, which allows them to interact with your automation environment.

Note

The Ansible plug-ins continue to function regardless of the Ansible Automation Platform subscription status.

Procedure

  1. Create a Personal Access Token (PAT) with “read and write” scope in automation controller, following the Applications section of Access management and authentication.
  2. Edit your custom Red Hat Developer Hub config map, for example app-config-rhdh.
  3. Add your Ansible Automation Platform details to app-config-rhdh.yaml.

    1. Set the baseURL key with your automation controller URL.
    2. Set the token key with the generated token value that you created in Step 1.
    3. Set the checkSSL key to true or false.

      If checkSSL is set to true, the Ansible plug-ins verify whether the SSL certificate is valid.

      data:
        app-config-rhdh.yaml: |
          ...
          ansible:
          ...
            rhaap:
              baseUrl: '<https://MyControllerUrl>'
              token: '<AAP Personal Access Token>'
              checkSSL: true
      Note

      You are responsible for protecting your Red Hat Developer Hub installation from external and unauthorized access. Manage the backend authentication key like any other secret. Meet strong password requirements, do not expose it in any configuration files, and only inject it into configuration files as an environment variable.

3.9. Adding Ansible plug-ins software templates

Ansible Automation Platform provides software templates for Red Hat Developer Hub to provision new playbooks and collection projects based on Ansible best practices.

Procedure

  1. Edit your custom Red Hat Developer Hub config map, for example app-config-rhdh.
  2. Add the following code to your Red Hat Developer Hub app-config-rhdh.yaml file.

    data:
      app-config-rhdh.yaml: |
        catalog:
          ...
          locations:
            ...
            - type: url
              target: https://github.com/ansible/ansible-rhdh-templates/blob/main/all.yaml
              rules:
                - allow: [Template]

3.10. Configuring Role Based Access Control

Red Hat Developer Hub offers Role-based Access Control (RBAC) functionality. RBAC can then be applied to the Ansible plug-ins content.

Assign the following roles:

  • Members of the admin:superUsers group can select templates in the Create tab of the Ansible plug-ins to create playbook and collection projects.
  • Members of the admin:users group can view templates in the Create tab of the Ansible plug-ins.

The following example adds RBAC to Red Hat Developer Hub.

data:
  app-config-rhdh.yaml: |
    plugins:
    ...
    permission:
      enabled: true
      rbac:
        admin:
          users:
            - name: user:default/<user-scm-ida>
          superUsers:
            - name: user:default/<user-admin-idb>

For more information about permission policies and managing RBAC, refer to the Authorization in Red Hat Developer Hub guide for Red Hat Developer Hub.

3.11. Optional configuration for Ansible plug-ins

Enable Red Hat Developer Hub authentication and configure optional integrations, such as connecting to OpenShift Dev Spaces or specifying a private automation hub URL. While optional, these configurations enhance the user experience and functionality of the plug-ins.

Red Hat Developer Hub (RHDH) provides integrations for multiple Source Control Management (SCM) systems. This is required by the plug-ins to create repositories.

Refer to the Enabling authentication in Red Hat Developer Hub chapter of the Administration guide for Red Hat Developer Hub.

The Ansible plug-ins provide integrations with Ansible Automation Platform and other optional Red Hat products.

Procedure

  • To edit your custom ConfigMap, log in to the OpenShift UI and navigate to Select Project ( developerHubProj )ConfigMaps{developer-hub}-app-config-rhdhapp-config-rhdh.
3.11.2.1. Configuring OpenShift Dev Spaces

When OpenShift Dev Spaces is configured for the Ansible plug-ins, users can click a link from the catalog item view in Red Hat Developer Hub and edit their provisioned Ansible Git projects using Dev Spaces.

Note

OpenShift Dev Spaces is a separate product and it is optional. The plug-ins will function without it.

It is a separate Red Hat product and is not included in the Ansible Automation Platform or Red Hat Developer Hub subscription.

If the OpenShift Dev Spaces link is not configured in the Ansible plug-ins, the Go to OpenShift Dev Spaces dashboard link in the DEVELOP section of the Ansible plug-ins landing page redirects users to the Ansible development tools home page.

Prerequisites

  • A Dev Spaces installation. Refer to the Installing Dev Spaces section of the Red Hat OpenShift Dev Spaces Administration guide.

Procedure

  1. Edit your custom Red Hat Developer Hub config map, for example app-config-rhdh.
  2. Add the following code to your Red Hat Developer Hub app-config-rhdh.yaml file.

    data:
      app-config-rhdh.yaml: |-
        ansible:
          devSpaces:
            baseUrl: >-
              https://<Your OpenShift Dev Spaces URL>
  3. Replace <Your OpenShft Dev Spaces URL> with your OpenShift Dev Spaces URL.
  4. In the OpenShift Developer UI, select the Red Hat Developer Hub pod.
  5. Open Actions.
  6. Click Restart rollout.

Private automation hub provides a centralized, on-premise repository for certified Ansible collections, execution environments and any additional, vetted content provided by your organization.

If the private automation hub URL is not configured in the Ansible plug-ins, users are redirected to the Red Hat Hybrid Cloud Console automation hub.

Note

The private automation hub configuration is optional but recommended. The Ansible plug-ins will function without it.

Prerequisites

Procedure

  1. Edit your custom Red Hat Developer Hub config map, for example app-config-rhdh.
  2. Add the following code to your Red Hat Developer Hub app-config-rhdh.yaml file.

    data:
      app-config-rhdh.yaml: |-
        ansible:
        ...
          automationHub:
            baseUrl: '<https://MyOwnPAHUrl>'
        ...
  3. Replace <https://MyOwnPAHUrl/> with your private automation hub URL.
  4. In the OpenShift Developer UI, select the Red Hat Developer Hub pod.
  5. Open Actions.
  6. Click Restart rollout.

This example details necessary settings like the creatorService URL, optional integrations for Ansible Automation Platform and OpenShift Dev Spaces, and the addition of Ansible software templates to the catalog.

kind: ConfigMap
...
metadata:
  name: app-config-rhdh
  ...
data:
  app-config-rhdh.yaml: |-
    ansible:
      creatorService:
        baseUrl: 127.0.0.1
        port: '8000'
      # Optional integrations
      rhaap:
        baseUrl: '<https://MyControllerUrl>'
      devSpaces:
        baseUrl: '<https://MyDevSpacesURL>'
      automationHub:
        baseUrl: '<https://MyPrivateAutomationHubURL>'

    ...
    catalog:
      locations:
        - type: url
          target: https://github.com/ansible/ansible-rhdh-templates/blob/main/all.yaml
          rules:
            - allow: [Template]
    ...

Upgrade the Ansible plug-ins to the latest version. The upgrade procedure depends on the plug-in delivery method you used during installation.

4.1. Upgrade with OCI container delivery

To upgrade the Ansible plug-ins when using OCI delivery, update the version tag in the package URL for each plug-in entry.

Procedure

  1. Log in to your OpenShift Container Platform instance.
  2. In the OpenShift Developer UI, navigate to Helmdeveloper-hubActionsUpgradeYaml view.
  3. In the global.dynamic.plugins list, update the version tag at the end of each package URL:

    plugins:
      - disabled: false
        package: 'oci://registry.redhat.io/ansible-automation-platform/automation-portal:2.1!ansible-plugin-backstage-rhaap'
        pluginConfig:
          ...
      - disabled: false
        package: 'oci://registry.redhat.io/ansible-automation-platform/automation-portal:2.1!ansible-plugin-scaffolder-backend-module-backstage-rhaap'
        pluginConfig:
          ...
  4. Click Upgrade.

    The Red Hat Developer Hub pods restart and pull the new plug-in version.

Verification

  1. In the OpenShift UI, click Topology.
  2. Verify that the Red Hat Developer Hub instance is available.

4.2. Downloading the Ansible plug-ins files

Download the Ansible plug-ins for Red Hat Developer Hub Setup Bundle from the Red Hat Ansible Automation Platform Product Software downloads page.

Procedure

  1. In a browser, navigate to the Red Hat Ansible Automation Platform Product Software downloads page and select the Product Software tab.
  2. Click Download now next to Ansible plug-ins for Red Hat Developer Hub Setup Bundle to download the latest version of the plug-ins.

    The format of the filename is ansible-rhdh-plugins-x.y.z.tar.gz. Substitute the Ansible plug-ins release version, for example 2.0.0, for x.y.z.

  3. Create a directory on your local machine to store the .tar files.

    $ mkdir /path/to/<ansible-backstage-plugins-local-dir-changeme>
  4. Set an environment variable ($DYNAMIC_PLUGIN_ROOT_DIR) to represent the directory path.

    $ export DYNAMIC_PLUGIN_ROOT_DIR=/path/to/<ansible-backstage-plugins-local-dir-changeme>
  5. Extract the ansible-rhdh-plugins-<version-number>.tar.gz contents to $DYNAMIC_PLUGIN_ROOT_DIR.

    $ tar --exclude='*code*' -xzf ansible-rhdh-plugins-x.y.z.tar.gz -C $DYNAMIC_PLUGIN_ROOT_DIR

    Substitute the Ansible plug-ins release version, for example 2.0.0, for x.y.z.

Verification

Run ls to verify that the extracted files are in the $DYNAMIC_PLUGIN_ROOT_DIR directory:

$ ls $DYNAMIC_PLUGIN_ROOT_DIR
ansible-plugin-backstage-rhaap-dynamic-x.y.z.tgz
ansible-plugin-backstage-rhaap-dynamic-x.y.z.tgz.integrity
ansible-plugin-scaffolder-backend-module-backstage-rhaap-dynamic-x.y.z.tgz
ansible-plugin-scaffolder-backend-module-backstage-rhaap-dynamic-x.y.z.tgz.integrity

The files with the .integrity file type contain the plugin SHA value. You use the SHA value during the plug-in configuration.

4.3. Update the plug-in registry

Rebuild your plug-in registry application in your OpenShift cluster with the latest Ansible plug-ins files.

Prerequisites

  • You have downloaded the Ansible plug-ins files.
  • You have set an environment variable, for example $DYNAMIC_PLUGIN_ROOT_DIR, to represent the path to the local directory where you have stored the .tar files.

Procedure

  1. Log in to your OpenShift Container Platform instance with credentials to create a new application.
  2. Open your Red Hat Developer Hub OpenShift project.

    $ oc project <YOUR_DEVELOPER_HUB_PROJECT>
  3. Run the following commands to update your plug-in registry build in the OpenShift cluster. The commands assume that $DYNAMIC_PLUGIN_ROOT_DIR represents the directory for your .tar files. Replace this in the command if you have chosen a different environment variable name.

    $ oc start-build plugin-registry --from-dir=$DYNAMIC_PLUGIN_ROOT_DIR --wait
  4. When the registry has started, the output displays the following message:

    Uploading directory "/path/to/dynamic_plugin_root" as binary input for the build …
    Uploading finished
    build.build.openshift.io/plugin-registry-1 started

Verification

Verify that the plugin-registry has been updated.

  1. In the OpenShift UI, click Topology.
  2. Click the redhat-developer-hub icon to view the pods for the plug-in registry.
  3. Click View logs for the plug-in registry pod.
  4. Open the Terminal tab and run ls to view the .tar files in the plug-in registry.
  5. Verify that the new .tar file has been uploaded.

To upgrade the Ansible plug-ins, you must update the imageTagInfo parameter in the Helm chart configuration to the desired version. This triggers the Red Hat Developer Hub to pull the new container images directly from the Red Hat registry.

Procedure

  1. Log in to your OpenShift Container Platform instance.
  2. In the OpenShift Developer UI, navigate to Helmdeveloper-hubActionsUpgradeYaml view.
  3. Locate the global section.

    ...
    global:
      # Ensure OCI mode is enabled
      pluginMode: oci
    
      # UPDATE this value to the new desired version
      imageTagInfo: "2.1"
    
      # Note: Do not manually update 'plugins' packages;
      # OCI mode handles the download automatically based on the tag above.
      dynamic:
        plugins: []
  4. Click Upgrade.

    The Red Hat Developer Hub pods restart and pull the new plug-in versions.

Verification

  1. In the OpenShift UI, click Topology.
  2. Make sure that the Red Hat Developer Hub instance is available.

Upgrade the Ansible plug-ins to work with the latest version in your automation environment.

To upgrade the Ansible plug-ins when using OCI delivery, update the version tag in the package URL in your plug-ins ConfigMap.

Procedure

  1. Log in to your OpenShift Container Platform instance.
  2. Navigate to ConfigMaps and select the rhaap-dynamic-plugins-config map.
  3. Select the YAML tab.
  4. In the plugins list, update the version tag at the end of each package URL:

    plugins:
      - disabled: false
        package: 'oci://registry.redhat.io/ansible-automation-platform/automation-portal:2.1!ansible-plugin-backstage-rhaap'
        pluginConfig:
          ...
      - disabled: false
        package: 'oci://registry.redhat.io/ansible-automation-platform/automation-portal:2.1!ansible-plugin-scaffolder-backend-module-backstage-rhaap'
        pluginConfig:
          ...
  5. Click Save.

    Red Hat Developer Hub detects the configuration change and reloads the plug-ins.

Verification

  1. In the OpenShift UI, click Topology.
  2. Verify that the Red Hat Developer Hub instance is available.

5.2. Downloading the Ansible plug-ins files

Download the Ansible plug-ins for Red Hat Developer Hub Setup Bundle from the Red Hat Ansible Automation Platform Product Software downloads page.

Procedure

  1. In a browser, navigate to the Red Hat Ansible Automation Platform Product Software downloads page and select the Product Software tab.
  2. Click Download now next to Ansible plug-ins for Red Hat Developer Hub Setup Bundle to download the latest version of the plug-ins.

    The format of the filename is ansible-rhdh-plugins-x.y.z.tar.gz. Substitute the Ansible plug-ins release version, for example 2.0.0, for x.y.z.

  3. Create a directory on your local machine to store the .tar files.

    $ mkdir /path/to/<ansible-backstage-plugins-local-dir-changeme>
  4. Set an environment variable ($DYNAMIC_PLUGIN_ROOT_DIR) to represent the directory path.

    $ export DYNAMIC_PLUGIN_ROOT_DIR=/path/to/<ansible-backstage-plugins-local-dir-changeme>
  5. Extract the ansible-rhdh-plugins-<version-number>.tar.gz contents to $DYNAMIC_PLUGIN_ROOT_DIR.

    $ tar --exclude='*code*' -xzf ansible-rhdh-plugins-x.y.z.tar.gz -C $DYNAMIC_PLUGIN_ROOT_DIR

    Substitute the Ansible plug-ins release version, for example 2.0.0, for x.y.z.

Verification

Run ls to verify that the extracted files are in the $DYNAMIC_PLUGIN_ROOT_DIR directory:

$ ls $DYNAMIC_PLUGIN_ROOT_DIR
ansible-plugin-backstage-rhaap-dynamic-x.y.z.tgz
ansible-plugin-backstage-rhaap-dynamic-x.y.z.tgz.integrity
ansible-plugin-scaffolder-backend-module-backstage-rhaap-dynamic-x.y.z.tgz
ansible-plugin-scaffolder-backend-module-backstage-rhaap-dynamic-x.y.z.tgz.integrity

The files with the .integrity file type contain the plugin SHA value. You use the SHA value during the plug-in configuration.

5.3. Update the plug-in registry

Rebuild your plug-in registry application in your OpenShift cluster with the latest Ansible plug-ins files.

Prerequisites

  • You have downloaded the Ansible plug-ins files.
  • You have set an environment variable, for example $DYNAMIC_PLUGIN_ROOT_DIR, to represent the path to the local directory where you have stored the .tar files.

Procedure

  1. Log in to your OpenShift Container Platform instance with credentials to create a new application.
  2. Open your Red Hat Developer Hub OpenShift project.

    $ oc project <YOUR_DEVELOPER_HUB_PROJECT>
  3. Run the following commands to update your plug-in registry build in the OpenShift cluster. The commands assume that $DYNAMIC_PLUGIN_ROOT_DIR represents the directory for your .tar files. Replace this in the command if you have chosen a different environment variable name.

    $ oc start-build plugin-registry --from-dir=$DYNAMIC_PLUGIN_ROOT_DIR --wait
  4. When the registry has started, the output displays the following message:

    Uploading directory "/path/to/dynamic_plugin_root" as binary input for the build …
    Uploading finished
    build.build.openshift.io/plugin-registry-1 started

Verification

Verify that the plugin-registry has been updated.

  1. In the OpenShift UI, click Topology.
  2. Click the redhat-developer-hub icon to view the pods for the plug-in registry.
  3. Click View logs for the plug-in registry pod.
  4. Open the Terminal tab and run ls to view the .tar files in the plug-in registry.
  5. Verify that the new .tar file has been uploaded.

To upgrade the Ansible plug-ins, you must edit the rhaap-dynamic-plugins-config ConfigMap to reference the new OCI image tag.

Procedure

  1. Log in to your OpenShift Container Platform instance.
  2. Navigate to ConfigMaps and select the rhaap-dynamic-plugins-config map.
  3. Select the YAML tab to edit the file.
  4. In the plugins list, update the version tag at the end of the package URL for both the frontend and backend plugins.

+

kind: ConfigMap
apiVersion: v1
metadata:
  name: rhaap-dynamic-plugins-config
data:
  dynamic-plugins.yaml: |
    includes:
      - dynamic-plugins.default.yaml
    plugins:
      # FRONTEND PLUGIN
      - disabled: false
        # UPDATE the version tag at the end of the URL (e.g., :2.1)
        package: 'oci:registry.redhat.io/ansible-automation-platform/automation-portal:2.1'
        pluginConfig:
          dynamicPlugins:
            frontend:
              ansible.plugin-backstage-rhaap:
                appIcons:
                  - importName: AnsibleLogo
                    name: AnsibleLogo
                dynamicRoutes:
                  - importName: AnsiblePage
                    menuItem:
                      icon: AnsibleLogo
                      text: Ansible
                    path: /ansible

      # BACKEND PLUGIN
      - disabled: false
        # UPDATE the version tag at the end of the URL (e.g., :2.1)
        package: 'oci:registry.redhat.io/ansible-automation-platform/automation-portal:2.1'
        pluginConfig:
          dynamicPlugins:
            backend:
              ansible.plugin-scaffolder-backend-module-backstage-rhaap: null
  1. Click Save.

    The Red Hat Developer Hub detects the configuration change and reload the plug-ins automatically.

Verification

  1. In the OpenShift UI, click Topology.
  2. Make sure that the Red Hat Developer Hub instance is available.

To uninstall the Ansible plug-ins, you must remove any software templates that use the ansible:content:create action from Red Hat Developer Hub, and remove the plug-ins configuration from the Helm chart in OpenShift.

6.1. Uninstalling a Helm chart installation

To uninstall the Ansible plug-ins from a Helm chart installation, you remove templates using the ansible:content:create action first. Then, you delete the plug-in configuration from the Helm chart YAML, remove the extraContainers section, and delete the Ansible block from the custom ConfigMap. Finally, you restart the deployment.

Procedure

  1. In Red Hat Developer Hub, remove any software templates that use the ansible:content:create action.
  2. In the OpenShift Developer UI, navigate to Helmdeveloper-hubActionsUpgradeYaml view.
  3. Remove the Ansible plug-ins configuration under the plugins section.

    global:
      dynamic:
        plugins:
          - disabled: false
            package: 'oci://registry.redhat.io/ansible-automation-platform/automation-portal:2.1!ansible-plugin-backstage-rhaap'
            pluginConfig:
              ...
          - disabled: false
            package: 'oci://registry.redhat.io/ansible-automation-platform/automation-portal:2.1!ansible-plugin-scaffolder-backend-module-backstage-rhaap'
            pluginConfig:
              ...

    For HTTP plug-in registry, remove the http://plugin-registry:8080/... entries instead.

  4. Remove the extraContainers section.

    upstream:
      backstage:
        ...
        extraContainers:
          - command:
              - adt
              - server
            image: >-
              registry.redhat.io/ansible-automation-platform-25/ansible-dev-tools-rhel8:latest
            imagePullPolicy: IfNotPresent
            name: ansible-devtools-server
            ports:
              - containerPort: 8000
  5. Click Upgrade.
  6. Edit your custom Red Hat Developer Hub config map, for example app-config-rhdh.
  7. Remove the ansible section.
  8. Restart the Red Hat Developer Hub deployment.
  9. If you used OCI delivery, delete the registry auth secret:

    oc delete secret <deployment-name>-dynamic-plugins-registry-auth
  10. If you used the HTTP plug-in registry method, remove the plug-in registry application:

    oc delete all -l app=plugin-registry

To delete the dynamic plug-ins from your installation, you must edit the ConfigMaps that reference Ansible.

The deployment auto reloads when the ConfigMaps are updated. You do not need to reload the deployment manually.

To remove the Ansible plug-ins from an Operator installation, you must edit the custom ConfigMap that references the plug-ins. You can either delete the entire plug-in entry block or simply disable the plug-ins by setting the disabled attribute to true.

Procedure

  1. Open the custom ConfigMap where you referenced the Ansible plug-ins.

    For this example, the ConfigMap name is rhaap-dynamic-plugins-config.

  2. Locate the dynamic plug-ins in the plugins: block.

    • For OCI delivery, the entries to remove or disable:

      plugins:
        - disabled: false
          package: 'oci://registry.redhat.io/ansible-automation-platform/automation-portal:2.1!ansible-plugin-backstage-rhaap'
          pluginConfig:
            ...
        - disabled: false
          package: 'oci://registry.redhat.io/ansible-automation-platform/automation-portal:2.1!ansible-plugin-scaffolder-backend-module-backstage-rhaap'
          pluginConfig:
            ...
    • For HTTP plug-in registry, the entries use http://plugin-registry:8080/... URLs instead.
  3. Click Save.

To remove Ansible Automation Platform and Dev Spaces configuration from an Operator installation, you must edit the custom Red Hat Developer Hub ConfigMap.

Procedure

  1. Open the custom Red Hat Developer Hub ConfigMap where you added configuration for the templates and for connecting to Ansible Automation Platform and Dev Spaces. In this example, the Red Hat Developer Hub ConfigMap name is app-config-rhdh.

    kind: ConfigMap
    apiVersion: v1
    metadata:
     name: rhdh-app-config
    data:
     app-config-custom.yaml: |
       ...
       catalog:
         ...
         locations: # Remove the YAML entry below the 'locations' YAML key
           - type: url
             target: https://github.com/ansible/ansible-rhdh-templates/blob/main/all.yaml
             rules:
               - allow: [Template]
         ...
       # Remove the entire 'ansible' YAML key and all sub-entries
       ansible:
         devSpaces:
           baseUrl: '<https://YOUR_DEV_SPACES_URL>'
         creatorService:
           baseUrl: '127.0.0.1'
           port: '8000'
         rhaap:
           baseUrl: '<https://YOUR_AAP_URL>'
           token: <REDACTED>
           checkSSL: false
  2. Remove the url in the locations: block to delete the templates from the RHDH instance.
  3. Remove the ansible: block to delete the Ansible-specific configuration.
  4. Click Save.

7.3. Uninstalling the sidecar container

To remove the sidecar container for Ansible development tools from the developer-hub pod, you must modify the base ConfigMap for the Red Hat Developer Hub deployment.

Procedure

  1. In the OpenShift console, select the Topology view.
  2. Click More actions ⋮ on the developer-hub instance and select Edit backstage to edit the base ConfigMap.
  3. Select the YAML tab.
  4. In the editing pane, remove the containers block for the sidecar container from the spec.deployment.patch.spec.template.spec block:

    ...
    spec:
      deployment:
        patch:
          spec:
            template:
              spec:
                containers:
                  - command:
                      - adt
                      - server
                    image: registry.redhat.io/ansible-automation-platform-25/ansible-dev-tools-rhel8:latest
                    imagePullPolicy: always
                    ports:
                      - containerPort: 8000
                        protocol: TCP
                    terminationMessagePolicy: file
  5. Click Save.
  6. If you used OCI delivery, delete the registry auth secret:

    oc delete secret <deployment-name>-dynamic-plugins-registry-auth
  7. If you used the HTTP plug-in registry, remove the plug-in registry application:

    oc delete all -l app=plugin-registry

Red Hat Developer Hub (RHDH) sends telemetry data to Red Hat using the backstage-plugin-analytics-provider-segment plug-in, which is enabled by default. This includes telemetry data from the Ansible plug-ins.

Red Hat collects and analyzes the following data to improve your experience with Red Hat Developer Hub:

  • Events of page visits and clicks on links or buttons.
  • System-related information, for example, locale, timezone, user agent including browser and OS details.
  • Page-related information, for example, title, category, extension name, URL, path, referrer, and search parameters.
  • Anonymized IP addresses, recorded as 0.0.0.0.
  • Anonymized username hashes, which are unique identifiers used solely to identify the number of unique users of the RHDH application.
  • Feedback and sentiment submitted through the Ansible plug-ins feedback form, including a 1-5 star rating and feedback text. Users must acknowledge that they share the feedback with Red Hat before submitting. The feedback form is disabled by default.

With Red Hat Developer Hub, you can disable or customize the telemetry data collection feature. For more information, refer to the Telemetry data collection and analysis guide in the Red Hat Developer Hub documentation.

8.1. Enable the Ansible plug-ins feedback form

The Ansible plug-ins feedback form is disabled by default. When enabled, you can submit a star rating and feedback text from the Ansible plug-ins interface. The feedback data is sent to Red Hat as part of the telemetry data collected by your Red Hat Developer Hub instance.

To enable the feedback form, set the ansible.feedback.enabled option to true in your Red Hat Developer Hub configuration.

Helm installation

If you installed Red Hat Developer Hub by using the Helm chart, add or update the following YAML in the app-config-rhdh.yaml data section of the ConfigMap:

kind: ConfigMap
apiVersion: v1
metadata:
  name: app-config-rhdh
data:
  app-config-rhdh.yaml: |
    ansible:
      feedback:
        enabled: true

After updating the ConfigMap:

  1. In the OpenShift Developer UI, select the Red Hat Developer Hub pod.
  2. Open Actions.
  3. Click Restart rollout.

Operator installation

If you installed Red Hat Developer Hub by using the Operator, update the app-config-rhdh ConfigMap referenced by your Backstage custom resource.

Add or update the following YAML in the app-config-rhdh.yaml data section of the ConfigMap:

kind: ConfigMap
apiVersion: v1
metadata:
  name: app-config-rhdh
data:
  app-config-rhdh.yaml: |
    ansible:
      feedback:
        enabled: true

The Operator detects the ConfigMap change and automatically restarts the Red Hat Developer Hub deployment.

Legal Notice

Copyright © Red Hat.
Except as otherwise noted below, the text of and illustrations in this documentation are licensed by Red Hat under the Creative Commons Attribution–Share Alike 3.0 Unported license . If you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, the Red Hat logo, JBoss, Hibernate, and RHCE are trademarks or registered trademarks of Red Hat, LLC. or its subsidiaries in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
XFS is a trademark or registered trademark of Hewlett Packard Enterprise Development LP or its subsidiaries in the United States and other countries.
The OpenStack® Word Mark and OpenStack logo are trademarks or registered trademarks of the Linux Foundation, used under license.
All other trademarks are the property of their respective owners.
Red Hat logoGithubredditYoutubeTwitter

Learn

Try, buy, & sell

Communities

About Red Hat

We deliver hardened solutions that make it easier for enterprises to work across platforms and environments, from the core datacenter to the network edge.

Making open source more inclusive

Red Hat is committed to replacing problematic language in our code, documentation, and web properties. For more details, see the Red Hat Blog.

About Red Hat Documentation

Legal Notice

Theme

© 2026 Red Hat
Back to top