Skip to content

Add rhdh addon #13

Description

@jasonmadigan

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

  • oinc create --version 4.21 --addons rhdh on a clean host yields a reachable stock RHDH (guest sign-in works)
  • rhdh@<chart-version> pins the chart; rhdh@latest documented as following the chart index
  • Image override and values overlay hooks work (proven by installing with a custom image ref and an overlay that adds a dynamic plugin)
  • Composes with the kuadrant addon: --addons kuadrant@latest,rhdh on one cluster
  • Works on a GitHub ubuntu-latest runner (smoke-tested in this repo's CI)
  • README documents the addon, its options, and the access URL

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.

Activity

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

Metadata

Metadata

Assignees

Labels

No labels
No labels

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions