Skip to content

feat!: introduce new standalone RHDH Chart [RHDHPLAN-1058]#438

Draft
rm3l wants to merge 20 commits into
redhat-developer:mainfrom
rm3l:RHDHPLAN-1058--improve-helm-chart-configuration-experience-via-standalone-rhdh-helm-chart-without-backstage-subchart-dependency
Draft

feat!: introduce new standalone RHDH Chart [RHDHPLAN-1058]#438
rm3l wants to merge 20 commits into
redhat-developer:mainfrom
rm3l:RHDHPLAN-1058--improve-helm-chart-configuration-experience-via-standalone-rhdh-helm-chart-without-backstage-subchart-dependency

Conversation

@rm3l

@rm3l rm3l commented Jun 17, 2026

Copy link
Copy Markdown
Member
  • feat: add standalone RHDH Helm chart without upstream subchart dependency
  • deprecate backstage chart in favor of the new standalone rhdh chart
  • run pre-commit hooks

Description of the change

Which issue(s) does this PR fix or relate to

ref RHDHPLAN-1058

How to test changes / Special notes to the reviewer

Checklist

  • For each Chart updated, version bumped in the corresponding Chart.yaml according to Semantic Versioning.
  • For each Chart updated, variables are documented in the values.yaml and added to the corresponding README.md. The pre-commit utility can be used to generate the necessary content. Run pre-commit run --all-files to run the hooks and then push any resulting changes. The pre-commit Workflow will enforce this and warn you if needed.
  • JSON Schema template updated and re-generated the raw schema via the pre-commit hook.
  • Tests pass using the Chart Testing tool and the ct lint command.
  • If you updated the orchestrator-infra chart, make sure the versions of the Knative CRDs are aligned with the versions of the CRDs installed by the OpenShift Serverless operators declared in the values.yaml file. See Installing Knative Eventing and Knative Serving CRDs for more details.

rm3l added 3 commits June 17, 2026 08:50
…ency

Helm cannot merge lists, so when users set extraVolumes/extraEnvVars on
the current chart, the entire default list is replaced — forcing them to
copy-paste all system defaults just to add one item. This is a Day 2
maintenance burden that grows with every release.

This new chart at charts/rhdh/ owns all Kubernetes templates directly
and uses an "add, don't replace" pattern: system-required volumes,
mounts, env vars, and init containers are hardcoded in the Deployment
template, while user-provided values are always appended. Users can now
add a volume without knowing or duplicating the system defaults.

The values layout is flattened to match helm-create conventions
(replicaCount, image, service at root level) — no more navigating
global.*/upstream.backstage.* nesting to set basic options.

Assisted-by: Claude
The new rhdh chart owns all Kubernetes templates directly and no
longer depends on the upstream Backstage subchart, so the weekly
sync workflow and its helper script are no longer needed.

Assisted-by: Claude
@rm3l rm3l changed the title feat!: introduce new standalone RHDH Chart [RHDHPLAN 1058] feat!: introduce new standalone RHDH Chart [RHDHPLAN-1058] Jun 17, 2026
Comment thread charts/rhdh/templates/tests/test-connection.yaml Fixed
rm3l added 17 commits June 17, 2026 09:27
…ove-helm-chart-configuration-experience-via-standalone-rhdh-helm-chart-without-backstage-subchart-dependency

# Conflicts:
#	.github/workflows/sync-upstream-backstage.yaml
Port test scenarios from charts/backstage/ci/ with key paths adjusted
for the flat values layout. The custom-dynamic-pvc-claim-spec scenario
is dropped because the new chart hardcodes the dynamic-plugins-root
volume (user volumes are appended, not replaced).

Assisted-by: Claude
Add global.imageRegistry, global.imagePullSecrets, and
global.defaultStorageClass so they flow through to both the postgresql
subchart and the rhdh chart's own templates. Image helpers now delegate
to bitnami common's common.images.image, and imagePullSecrets are
merged from both global and root-level sources. Lightspeed container
images converted from strings to structured registry/repository/tag
maps so global.imageRegistry applies uniformly to all containers.

Also pins the test pod image to curl/curl:8.9.1 instead of latest,
adds automountServiceAccountToken: false and ephemeral-storage
requests to the test pod (SonarCloud findings).

Assisted-by: Claude
The previous version (12.10.0) was far behind. The new version
requires global.security.allowInsecureImages=true since we use a
Fedora-based PostgreSQL image instead of the bitnami one.

Assisted-by: Claude
…ion-experience-via-standalone-rhdh-helm-chart-without-backstage-subchart-dependency
…ove-helm-chart-configuration-experience-via-standalone-rhdh-helm-chart-without-backstage-subchart-dependency

# Conflicts:
#	.github/workflows/sync-upstream-backstage.yaml
…anch

chart-testing's --upgrade flag checks out the target branch and tries
to build dependencies for the chart there. For brand-new charts like
charts/rhdh/ that do not exist on main yet, this causes helm
dependency build to fail.

Make --upgrade conditional: when a specific chart is tested, check
whether its Chart.yaml exists on the target branch first. If not,
skip the upgrade test and only run a fresh install.

Also rename the backstageChartChanged output to orchestratorCrdsNeeded
and include charts/rhdh so that Knative and SonataFlow CRDs are
installed for both charts' orchestrator CI scenarios.
On vanilla K8s (KinD), there is no SCC to assign a common UID to all
containers in a pod. Set fsGroup so shared volumes (e.g. RAG data)
are group-writable across init containers and sidecars that may run
as different UIDs. Also disable the route, which is not available on
KinD.
Without a default appConfig, no app-config ConfigMap is created and
the RHDH application lacks essential configuration (base URLs, CORS,
database connection, backend auth), causing it to fail to start.

Add a default appConfig matching the backstage chart, providing:
- app.baseUrl and backend.baseUrl from rhdh.hostname
- backend.cors.origin
- backend.database.connection (postgres user, password from env var)
- backend.auth.externalAccess (legacy service-to-service auth)
…ion-experience-via-standalone-rhdh-helm-chart-without-backstage-subchart-dependency
@sonarqubecloud

Copy link
Copy Markdown

Quality Gate Failed Quality Gate failed

Failed conditions
4.6% Duplication on New Code (required ≤ 3%)

See analysis details on SonarQube Cloud

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants