Skip to content

feat: configurable OCI registry for DPDY {{inherit}} refs in nightly mode#104

Merged
jrichter1 merged 2 commits into
redhat-developer:mainfrom
subhashkhileri:nightly-dpdy-registry-config
May 13, 2026
Merged

feat: configurable OCI registry for DPDY {{inherit}} refs in nightly mode#104
jrichter1 merged 2 commits into
redhat-developer:mainfrom
subhashkhileri:nightly-dpdy-registry-config

Conversation

@subhashkhileri
Copy link
Copy Markdown
Member

Summary

  • Decouples {{inherit}} tag registry from metadata's spec.dynamicArtifact to prevent registry mismatches (e.g. when metadata switches from registry.access.redhat.com to ghcr.io while DPDY stays on RHEC)
  • Adds configurable registry resolution: NIGHTLY_DPDY_OCI_REGISTRY_MAP (per-plugin JSON) > NIGHTLY_DPDY_OCI_REGISTRY (blanket) > default registry.access.redhat.com/rhdh
  • Adds selective config injection in nightly: only non-DPDY OCI plugins get appConfigExamples injected; DPDY plugins inherit config from RHDH, wrapper plugins get no injection

Environment Variables

Variable Description Example
NIGHTLY_DPDY_OCI_REGISTRY Blanket registry override for all DPDY {{inherit}} refs ghcr.io/redhat-developer/rhdh-plugin-export-overlays
NIGHTLY_DPDY_OCI_REGISTRY_MAP Per-plugin registry override (JSON, takes precedence) {"ghcr.io/custom": ["@backstage-community/plugin-tekton"]}

Changes

  • src/utils/plugin-metadata.ts: Added getDpdyRegistry() function, DEFAULT_DPDY_OCI_REGISTRY constant, updated {{inherit}} construction to use configurable registry instead of metadata-derived
  • src/utils/tests/plugin-metadata.nightly.test.ts: Added tests for registry override, per-plugin map, precedence, PR #2449 scenario, getDpdyRegistry unit tests
  • src/utils/tests/plugin-metadata.pr.test.ts: Added negative tests ensuring {{inherit}} and registry env vars don't apply in PR/local mode
  • Docs (7 files): Updated env var tables, resolution flowcharts, scenario tables, DPDY definition, changelog

Test plan

  • All 77 tests pass (build + node --test)
  • Prettier and eslint clean
  • Markdown link check passes
  • Verify nightly CI job uses correct RHEC registry for {{inherit}} refs
  • Verify NIGHTLY_DPDY_OCI_REGISTRY_MAP correctly routes specific plugins to different registries

Assisted-by: Claude Code

subhashkhileri and others added 2 commits May 12, 2026 20:06
…mode

Decouple the {{inherit}} tag registry from metadata's dynamicArtifact to
avoid registry mismatches (e.g. metadata switching from RHEC to ghcr.io
while DPDY stays on RHEC). The registry is now resolved via:

1. NIGHTLY_DPDY_OCI_REGISTRY_MAP (per-plugin JSON override)
2. NIGHTLY_DPDY_OCI_REGISTRY (blanket override)
3. Default: registry.access.redhat.com/rhdh

Also adds selective config injection in nightly: only non-DPDY OCI
plugins get appConfigExamples injected; DPDY plugins inherit config
from RHDH, and wrapper plugins get no injection.

Assisted-by: Claude Code
Co-Authored-By: Claude Code <noreply@anthropic.com>
Rewrite confusing references across docs and source comments:
- {{inherit}} tells RHDH to resolve both the OCI tag (version) AND
  default config from its built-in DPDY, not just one or the other
- Replace vague "DPDY OCI plugin" with explicit "plugins in
  default.packages.yaml whose metadata spec.dynamicArtifact is OCI"
- Remove redundant tests covered by existing assertions

Assisted-by: Claude Code
Co-Authored-By: Claude Code <noreply@anthropic.com>
@subhashkhileri subhashkhileri requested a review from jrichter1 May 13, 2026 09:47
@jrichter1 jrichter1 merged commit a3d6b86 into redhat-developer:main May 13, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants