What
Add an rhdh addon so oinc create --addons rhdh stands up Red Hat Developer Hub on the cluster, the same way the kuadrant addon works today. Consumers currently hand-roll this: kuadrant-backstage-plugin carries ~350 lines of helm mechanics and microshift workarounds in oinc/setup-rhdh.sh just to get stock RHDH running before layering its own plugins on top (see Kuadrant/kuadrant-backstage-plugin#348). The generic part belongs in oinc.
This issue is written as an implementation brief for an agent working in this repo.
Design
- Mirror the existing
kuadrant addon structure and conventions. Do not invent a new addon mechanism.
- Version syntax:
rhdh@<chart-version> pins the rhdh/backstage chart version from https://redhat-developer.github.io/rhdh-chart/. Note the chart carries no appVersion and is image-agnostic; rhdh@latest follows the chart index. Chart 6.2.2 pairs with the rhdh:1.10 image line (there is no 1.4 tag on quay, active minors are 1.5/1.8/1.9/1.10).
- Install stock RHDH into an
rhdh namespace with guest auth enabled by default.
- Expose it properly: prefer a Route on the ports oinc already maps rather than leaving consumers to
kubectl port-forward (a single forward dies on pod restart; consumers currently carry supervised reconnect loops to cope). Document the access URL either way.
Config hooks (what makes it useful for e2e consumers)
- Custom image override: repository, tag, and
registry: \"\" so localhost/ sideloaded refs resolve, pullPolicy: IfNotPresent.
- A user values overlay file merged into the chart install, for dynamic-plugins config and app-config extras.
- Toggle to disable the quickstart onboarding overlay (its persistent progressbar breaks e2e page-ready waits).
Microshift quirks the addon must own (hard-won, do not rediscover)
- The chart default for
dynamic-plugins-root is an ephemeral 5Gi PVC; microshift has no provisioner, so it must be overridden to emptyDir. Helm replaces the extraVolumes list wholesale: the override must re-declare the full seven-volume set the install-dynamic-plugins initContainer and main container mount (dynamic-plugins-root, dynamic-plugins, dynamic-plugins-npmrc, dynamic-plugins-registry-auth, npmcacache, extensions-catalog, temp), or the Deployment is rejected with orphan volumeMounts.
- Postgres: persistence off (emptyDir) with a sane ephemeral-storage limit.
A working reference for all of the above is oinc/setup-rhdh.sh on the PR branch linked overhead; absorb its generic parts, leave its kuadrant plugin config behind.
Acceptance criteria
Out of scope, related follow-ups
oinc load-image <ref> subcommand (docker-archive into CRI-O via skopeo, the kind load docker-image equivalent)
- Pre-baking skopeo into the oinc image so consumers stop
dnf installing it mid-job
Both are worth their own issues; kuadrant-backstage-plugin currently carries local versions of each.
What
Add an
rhdhaddon sooinc create --addons rhdhstands up Red Hat Developer Hub on the cluster, the same way thekuadrantaddon works today. Consumers currently hand-roll this: kuadrant-backstage-plugin carries ~350 lines of helm mechanics and microshift workarounds inoinc/setup-rhdh.shjust to get stock RHDH running before layering its own plugins on top (see Kuadrant/kuadrant-backstage-plugin#348). The generic part belongs in oinc.This issue is written as an implementation brief for an agent working in this repo.
Design
kuadrantaddon structure and conventions. Do not invent a new addon mechanism.rhdh@<chart-version>pins therhdh/backstagechart version from https://redhat-developer.github.io/rhdh-chart/. Note the chart carries no appVersion and is image-agnostic;rhdh@latestfollows the chart index. Chart 6.2.2 pairs with therhdh:1.10image line (there is no1.4tag on quay, active minors are 1.5/1.8/1.9/1.10).rhdhnamespace with guest auth enabled by default.kubectl port-forward(a single forward dies on pod restart; consumers currently carry supervised reconnect loops to cope). Document the access URL either way.Config hooks (what makes it useful for e2e consumers)
registry: \"\"solocalhost/sideloaded refs resolve,pullPolicy: IfNotPresent.Microshift quirks the addon must own (hard-won, do not rediscover)
dynamic-plugins-rootis an ephemeral 5Gi PVC; microshift has no provisioner, so it must be overridden toemptyDir. Helm replaces theextraVolumeslist wholesale: the override must re-declare the full seven-volume set theinstall-dynamic-pluginsinitContainer and main container mount (dynamic-plugins-root,dynamic-plugins,dynamic-plugins-npmrc,dynamic-plugins-registry-auth,npmcacache,extensions-catalog,temp), or the Deployment is rejected with orphan volumeMounts.A working reference for all of the above is
oinc/setup-rhdh.shon the PR branch linked overhead; absorb its generic parts, leave its kuadrant plugin config behind.Acceptance criteria
oinc create --version 4.21 --addons rhdhon a clean host yields a reachable stock RHDH (guest sign-in works)rhdh@<chart-version>pins the chart;rhdh@latestdocumented as following the chart index--addons kuadrant@latest,rhdhon one clusterOut of scope, related follow-ups
oinc load-image <ref>subcommand (docker-archive into CRI-O via skopeo, thekind load docker-imageequivalent)dnf installing it mid-jobBoth are worth their own issues; kuadrant-backstage-plugin currently carries local versions of each.