Skip to content

[release-1.9] fix: switch Orchestrator plugins to OCI [RHDHBUGS-2527]#315

Merged
openshift-merge-bot[bot] merged 2 commits intoredhat-developer:release-1.9from
rm3l:rhdhbugs-2527-rhdh-with-orchestrator-won-t-start-with-1.9-helm-or-operator--1.9
Feb 7, 2026
Merged

[release-1.9] fix: switch Orchestrator plugins to OCI [RHDHBUGS-2527]#315
openshift-merge-bot[bot] merged 2 commits intoredhat-developer:release-1.9from
rm3l:rhdhbugs-2527-rhdh-with-orchestrator-won-t-start-with-1.9-helm-or-operator--1.9

Conversation

@rm3l
Copy link
Copy Markdown
Member

@rm3l rm3l commented Feb 7, 2026

Manual cherry-pick of #307

Fixes RHDHBUGS-2527

OpinionatedHeron and others added 2 commits February 7, 2026 22:14
…eveloper#307)

* Updating orchestrator npm packages to OCI artifacts

Signed-off-by: Leanne Ahern <lahern@redhat.com>

* Bumping backstage chart based on changes to values.yaml

Signed-off-by: Leanne Ahern <lahern@redhat.com>

* Updating ReadMe per pre-commit

Signed-off-by: Leanne Ahern <lahern@redhat.com>

* Simplify the configuration by leveraging the {{inherit}} option

This option is supported as of RHDH 1.9 and allows inheriting
the version from the dynamic-plugins.default.yaml (coming from
the plugin catalog index image).
This way, we are sure to use the default plugin version.

NOTE: For this to work properly, the plugin refs should match.
So if the orchestrator plugins refs are changed later to quay.io
or registry.access.redhat.com in the DPDY, we should update them
here as well.

* Updating orchestrator packages to quay.io from ghcr.io

Signed-off-by: Leanne Ahern <lahern@redhat.com>

* Correcting quay.io path

Signed-off-by: Leanne Ahern <lahern@redhat.com>

* Updating quay.io path to registry.access.redhat instead

Signed-off-by: Leanne Ahern <lahern@redhat.com>

* Updating package path for oci and removing plugin config

Signed-off-by: Leanne Ahern <lahern@redhat.com>

---------

Signed-off-by: Leanne Ahern <lahern@redhat.com>
Co-authored-by: Armel Soro <asoro@redhat.com>
Co-authored-by: Nick Boldt <nboldt@redhat.com>
@sonarqubecloud
Copy link
Copy Markdown

sonarqubecloud Bot commented Feb 7, 2026

@rhdh-qodo-merge
Copy link
Copy Markdown

PR Reviewer Guide 🔍

Here are some key observations to aid the review process:

🎫 Ticket compliance analysis 🔶

RHDHBUGS-2527 - Partially compliant

Compliant requirements:

  • Update the Helm chart Orchestrator plugin configuration (values/docs) accordingly.
  • (Potentially) switch Orchestrator plugins to OCI-based artifacts instead of NPM tarballs.

Non-compliant requirements:

  • Fix RHDH 1.9 startup/readiness failure when deploying with Orchestrator enabled via Helm or Operator.
  • Ensure Orchestrator plugin artifacts/versions are compatible with the Backstage version used in RHDH 1.9.

Requires further human verification:

  • Validate the deployment starts successfully (readiness probe passes) with Orchestrator enabled.
⏱️ Estimated effort to review: 2 🔵🔵⚪⚪⚪
🔒 No security concerns identified
⚡ Recommended focus areas for review

Templating Risk

The OCI references rely on {{inherit}} being passed through Helm templating as a literal for downstream processing. Verify quoting/escaping is correct across Helm rendering and any plugin installer that consumes this value; mis-rendering could produce invalid image references and break plugin fetching.

- package: 'oci://registry.access.redhat.com/rhdh/red-hat-developer-hub-backstage-plugin-orchestrator-backend:{{ "{{inherit}}" }}'
  disabled: false
- package: 'oci://registry.access.redhat.com/rhdh/red-hat-developer-hub-backstage-plugin-orchestrator-form-widgets:{{ "{{inherit}}" }}'
  disabled: false
- package: 'oci://registry.access.redhat.com/rhdh/red-hat-developer-hub-backstage-plugin-orchestrator:{{ "{{inherit}}" }}'
  disabled: false
- package: 'oci://registry.access.redhat.com/rhdh/red-hat-developer-hub-backstage-plugin-scaffolder-backend-module-orchestrator:{{ "{{inherit}}" }}'
  disabled: false
📚 Focus areas based on broader codebase context

Missing Config

The new OCI-based orchestrator.plugins entries no longer include pluginConfig (notably orchestrator.dataIndexService.url) that was previously embedded in the chart values. Validate that this configuration is still provided elsewhere (e.g., via appConfig or another values block), otherwise the orchestrator backend/scaffolder modules may start without the required Data Index endpoint configuration. (Ref 1, Ref 2)

- package: 'oci://registry.access.redhat.com/rhdh/red-hat-developer-hub-backstage-plugin-orchestrator-backend:{{ "{{inherit}}" }}'
  disabled: false
- package: 'oci://registry.access.redhat.com/rhdh/red-hat-developer-hub-backstage-plugin-orchestrator-form-widgets:{{ "{{inherit}}" }}'
  disabled: false
- package: 'oci://registry.access.redhat.com/rhdh/red-hat-developer-hub-backstage-plugin-orchestrator:{{ "{{inherit}}" }}'
  disabled: false
- package: 'oci://registry.access.redhat.com/rhdh/red-hat-developer-hub-backstage-plugin-scaffolder-backend-module-orchestrator:{{ "{{inherit}}" }}'
  disabled: false

Reference reasoning: The reference dynamic plugin configurations for the orchestrator backend/scaffolder components explicitly set pluginConfig.orchestrator.dataIndexService.url, indicating this is expected to be supplied alongside the package. Switching only the package to OCI without preserving the config deviates from that established configuration pattern and risks losing required runtime settings.

📄 References
  1. redhat-developer/rhdh/dynamic-plugins.default.yaml [1388-1408]
  2. redhat-developer/rhdh/dynamic-plugins.default.yaml [1346-1351]
  3. redhat-developer/rhdh/dynamic-plugins.default.yaml [1352-1359]
  4. redhat-developer/rhdh-operator/dist/rhdh/install.yaml [2206-2215]
  5. redhat-developer/rhdh-operator/examples/orchestrator.yaml [1-22]
  6. redhat-developer/rhdh/default.packages.yaml [77-87]
  7. redhat-developer/rhdh-chart/charts/backstage/ci/with-orchestrator-values.yaml [1-21]
  8. redhat-developer/rhdh-chart/charts/backstage/ci/with-orchestrator-and-dynamic-plugins-npmrc-values.yaml [1-24]

@rhdh-qodo-merge rhdh-qodo-merge Bot added Review effort 2/5 enhancement New feature or request labels Feb 7, 2026
@rhdh-qodo-merge
Copy link
Copy Markdown

PR Type

Enhancement


Description

  • Switch orchestrator plugins from NPM to OCI artifact registry

  • Simplify plugin configuration by removing explicit versions and integrity hashes

  • Leverage {{inherit}} option to inherit versions from dynamic-plugins catalog

  • Bump Helm chart version from 5.0.2 to 5.0.3


File Walkthrough

Relevant files
Configuration changes
Chart.yaml
Bump chart version to 5.0.3                                                           

charts/backstage/Chart.yaml

  • Increment chart version from 5.0.2 to 5.0.3
+1/-1     
Documentation
README.md
Update documentation with new chart version                           

charts/backstage/README.md

  • Update version badge from 5.0.2 to 5.0.3
  • Update helm install command example to use new chart version
+3/-3     
Enhancement
values.yaml
Migrate orchestrator plugins to OCI registry                         

charts/backstage/values.yaml

  • Replace 4 NPM-based orchestrator plugins with 4 OCI-based plugins from
    registry.access.redhat.com
  • Remove explicit package integrity hashes and version pinning
  • Remove detailed pluginConfig sections for backend and frontend plugins
  • Simplify configuration to use {{inherit}} for automatic version
    inheritance from catalog
+8/-53   

@rm3l
Copy link
Copy Markdown
Member Author

rm3l commented Feb 7, 2026

Merging as a manual cherry-pick of #307

/lgtm

@openshift-ci
Copy link
Copy Markdown

openshift-ci Bot commented Feb 7, 2026

@rm3l: you cannot LGTM your own PR.

Details

In response to this:

Merging as a manual cherry-pick of #307

/lgtm

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository.

@rhdh-qodo-merge
Copy link
Copy Markdown

PR Code Suggestions ✨

Explore these optional code suggestions:

CategorySuggestion                                                                                                                                    Impact
Possible issue
Restore missing plugin configurations

Restore the pluginConfig sections for the orchestrator plugins, as their removal
will likely break functionality by leaving backend and frontend components
unconfigured.

charts/backstage/values.yaml [397-404]

 - package: 'oci://registry.access.redhat.com/rhdh/red-hat-developer-hub-backstage-plugin-orchestrator-backend:{{ "{{inherit}}" }}'
   disabled: false
+  pluginConfig:
+    orchestrator:
+      dataIndexService:
+        url: http://sonataflow-platform-data-index-service.{{ .Release.Namespace }}
 - package: 'oci://registry.access.redhat.com/rhdh/red-hat-developer-hub-backstage-plugin-orchestrator-form-widgets:{{ "{{inherit}}" }}'
   disabled: false
+  pluginConfig:
+    dynamicPlugins:
+      frontend:
+        red-hat-developer-hub.backstage-plugin-orchestrator-form-widgets: {}
 - package: 'oci://registry.access.redhat.com/rhdh/red-hat-developer-hub-backstage-plugin-orchestrator:{{ "{{inherit}}" }}'
   disabled: false
+  pluginConfig:
+    dynamicPlugins:
+      frontend:
+        red-hat-developer-hub.backstage-plugin-orchestrator:
+          appIcons:
+            - name: orchestratorIcon
+              importName: OrchestratorIcon
+          dynamicRoutes:
+            - path: /orchestrator
+              importName: OrchestratorPage
+              menuItem:
+                icon: orchestratorIcon
+                text: Orchestrator
+          entityTabs:
+            - path: /workflows
+              title: Workflows
+              mountPoint: entity.page.workflows
+          mountPoints:
+            - mountPoint: entity.page.workflows/cards
+              importName: OrchestratorCatalogTab
+              config:
+                layout:
+                  gridColumn: "1 / -1"
+                if:
+                  anyOf:
+                    - IsOrchestratorCatalogTabAvailable
 - package: 'oci://registry.access.redhat.com/rhdh/red-hat-developer-hub-backstage-plugin-scaffolder-backend-module-orchestrator:{{ "{{inherit}}" }}'
   disabled: false
+  pluginConfig:
+    orchestrator:
+      dataIndexService:
+        url: http://sonataflow-platform-data-index-service.{{ .Release.Namespace }}
  • Apply / Chat
Suggestion importance[1-10]: 9

__

Why: The suggestion correctly identifies that removing the pluginConfig is a high-risk change that could break orchestrator functionality, as this configuration seems essential for backend and frontend plugins to work correctly.

High
  • More

@rm3l rm3l added the lgtm label Feb 7, 2026
@openshift-merge-bot openshift-merge-bot Bot merged commit 5f34f15 into redhat-developer:release-1.9 Feb 7, 2026
6 checks passed
@rm3l rm3l deleted the rhdhbugs-2527-rhdh-with-orchestrator-won-t-start-with-1.9-helm-or-operator--1.9 branch February 8, 2026 20:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants