Skip to content

docs: design Bicep extension GHCR migrations - #12951

Merged
DariuszPorowski merged 6 commits into
mainfrom
willdavsmith-audit-bicep-registries
Sep 14, 2026
Merged

DariuszPorowski merged 6 commits into
mainfrom
willdavsmith-audit-bicep-registries

Conversation

@willdavsmith

@willdavsmith willdavsmith commented Sep 9, 2026

Copy link
Copy Markdown
Contributor

Summary

Add technical designs for migrating Radius Bicep extension publishing and consumption from ACR to GHCR. The production design covers Radius and AWS extensions, phased rollout, parallel workstreams, compatibility, and retirement cleanup. A separate design records the optional Test-tenant TEST_BICEP_TYPES_REGISTRY migration.

Reason for change

Provide an implementation-ready design for the cross-repository migration while keeping production and Test-tenant scope independent.

Related to #12937.

How to test

Review the rendered Markdown and run the repository Markdown checks against both files.

File change summary

File Summary of change
eng/design-notes/tools/2026-09-bicep-extension-ghcr-migration.md Define the production Radius and AWS extension migration, rollout, parallel execution, compatibility, and cleanup.
eng/design-notes/tools/2026-09-test-bicep-extension-ghcr-migration.md Record the separate Test-tenant extension migration, ACR inventory, workflow changes, and Terraform cleanup.

Copilot-Session: a636af32-e4d0-4459-a055-e653592c44b9
Signed-off-by: willdavsmith <willdavsmith@gmail.com>
@github-actions

github-actions Bot commented Sep 9, 2026

Copy link
Copy Markdown

Dependency Review

✅ No vulnerabilities or license issues or OpenSSF Scorecard issues found.

Scanned Files

None

@willdavsmith
willdavsmith marked this pull request as ready for review September 10, 2026 18:21
Copilot AI lite review requested due to automatic review settings September 10, 2026 18:21
@willdavsmith
willdavsmith requested review from a team as code owners September 10, 2026 18:21
Copilot-Session: a636af32-e4d0-4459-a055-e653592c44b9
Signed-off-by: willdavsmith <willdavsmith@gmail.com>

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟢 Approval recommended

The changes add new design-note documentation only, and the Markdown content/structure appears consistent and internally coherent with no blocking issues found.

Pull request overview

Adds implementation-ready design notes describing how Radius can migrate Bicep extension publishing and consumption from ACR (biceptypes.azurecr.io) to GHCR (ghcr.io), including a phased rollout plan, compatibility constraints, and cleanup steps. It also documents a separate, optional migration for the Test-tenant functional-test extensions currently published via TEST_BICEP_TYPES_REGISTRY.

Changes:

  • Define the production migration contract (package naming, tag semantics), publishing model, Bicep toolchain requirements, and phased rollout/cutover gates.
  • Document cross-repo execution planning, compatibility/retirement risks, and concrete Azure/GitHub settings cleanup targets.
  • Capture a separate Test-tenant design for moving functional-test extension publishing to GHCR and deleting the Terraform-managed test ACR.
File summaries
File Description
eng/design-notes/tools/2026-09-bicep-extension-ghcr-migration.md Production migration design: artifact contract, publishing/consumption, Bicep upgrade considerations, phased rollout, and ACR retirement/cleanup plan.
eng/design-notes/tools/2026-09-test-bicep-extension-ghcr-migration.md Optional Test-tenant migration design: GHCR targets for test extensions, workflow and cleanup approach, ACR inventory, and Terraform removal plan.
Review details
  • Files reviewed: 2/2 changed files
  • Comments generated: 0
  • Review effort level: Lite

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

@DariuszPorowski
DariuszPorowski self-requested a review September 10, 2026 20:37

@DariuszPorowski DariuszPorowski left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Three blocking design issues and one non-blocking correction. The inline comments address the proposed migration, not a runtime change in this documentation-only PR.

Comment thread eng/design-notes/tools/2026-09-bicep-extension-ghcr-migration.md Outdated
Comment thread eng/design-notes/tools/2026-09-bicep-extension-ghcr-migration.md Outdated
Comment thread eng/design-notes/tools/2026-09-test-bicep-extension-ghcr-migration.md Outdated
Comment thread eng/design-notes/tools/2026-09-test-bicep-extension-ghcr-migration.md Outdated
Copilot-Session: a636af32-e4d0-4459-a055-e653592c44b9
Signed-off-by: willdavsmith <willdavsmith@gmail.com>

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

The publishing model and package names remain unresolved, and the test cleanup inventory misses active workflow guidance.

Get a fresh assessment by requesting another Copilot review.

Review details

Suppressed comments (1)

Previously missed (1) — in code that hasn't changed since the last review.

eng/design-notes/tools/2026-09-test-bicep-extension-ghcr-migration.md:99

  • Add .github/instructions/github-workflows.instructions.md to this cleanup scope. Its active workflow examples still reference TEST_BICEP_TYPES_REGISTRY (lines 49 and 58), so deleting the variable without updating this guidance would leave contributors and agents with instructions for the removed ACR path.
  • Files reviewed: 2/2 changed files
  • Comments generated: 2
  • Review effort level: Balanced

Comment thread eng/design-notes/tools/2026-09-bicep-extension-ghcr-migration.md Outdated
Comment thread eng/design-notes/tools/2026-09-bicep-extension-ghcr-migration.md Outdated
Copilot-Session: a636af32-e4d0-4459-a055-e653592c44b9
Signed-off-by: willdavsmith <willdavsmith@gmail.com>
Copilot-Session: a636af32-e4d0-4459-a055-e653592c44b9
Signed-off-by: willdavsmith <willdavsmith@gmail.com>
@DariuszPorowski
DariuszPorowski added this pull request to the merge queue Sep 14, 2026
Merged via the queue into main with commit 09bd0e6 Sep 14, 2026
41 checks passed
@DariuszPorowski
DariuszPorowski deleted the willdavsmith-audit-bicep-registries branch September 14, 2026 20:42
pujitha24 pushed a commit to pujitha24/radius that referenced this pull request Sep 21, 2026
…ect#12980)

<!--
Thank you for contributing to Radius! Please fill out each section below
so
reviewers have the context they need. Sections marked optional can be
removed
if they do not apply.
-->

## Summary

<!-- Provide a concise description of what this PR does. -->

Align the Bicep extension GHCR migration design with the unmerged
release stack ending at `dp/release-snapshot-hardening`: radius-project#12970,
reviewed at
[`20bbd89a8311659ade5db65a50fb5ed98ff674fa`](https://github.com/radius-project/radius/tree/20bbd89a8311659ade5db65a50fb5ed98ff674fa).

Replace the proposed `radius-project/bicep-publisher` repository and
external Bicep dispatch with source-repository `GITHUB_TOKEN`
publishing. Reuse read-only snapshots, immutable version staging,
source/digest locks, verification, approval, alias promotion, and
resume. GHCR `edge` follows `main`; `latest` tracks stable releases,
while legacy ACR mappings remain during compatibility.

## Reason for change

<!--
Explain why this change is needed. If it addresses a GitHub issue, link
it
below so it is automatically closed when this PR merges (optional).
-->

Related to radius-project#12937 and follow-up to merged radius-project#12951. The release stack is
an implementation dependency, not the current `main` workflow layout.
The previously prepared external-dispatch implementation is superseded,
not included here.

The reference branch still executes PR-controlled code with `packages:
write` in `functional-test-cloud.yaml`. Make shared credential isolation
an explicit activation prerequisite, and align the companion
test-registry design with that separation. Preserve the historical ACR
inventory and cleanup guidance.

This is a two-document design revision only: it does not complete
radius-project#12937, implement production workflows, publish artifacts, change
secrets/settings, or perform a live migration. Test-tenant registry
migration remains outside the production design's scope; its resources
and configuration are retained.

## How to test

<!-- Describe the steps a reviewer can take to verify these changes. -->

The supplied patch and both final document SHA-256 hashes match. These
scoped checks passed locally using cached tools without installing
dependencies:

```bash
npx --no-install --package=markdown-table-formatter@1.7.0 markdown-table-formatter 'eng/design-notes/tools/2026-09-*bicep-extension-ghcr-migration.md' --check
npx --no-install --package=markdownlint-cli2@0.23.2 markdownlint-cli2 'eng/design-notes/tools/2026-09-*bicep-extension-ghcr-migration.md' --config .github/linters/.markdownlint-cli2.yaml
npx --no-install cspell lint --config .github/linters/.cspell.yml --no-progress eng/design-notes/tools/2026-09-bicep-extension-ghcr-migration.md eng/design-notes/tools/2026-09-test-bicep-extension-ghcr-migration.md
git diff --check
```

No code tests or builds are needed for this documentation-only change.
Release and migration verification described in the documents is future
implementation work, not performed by this PR.

## File change summary

<!-- Summarize the change made in each file that was modified. -->

| File | Summary of change |
| ---- | ----------------- |
| `eng/design-notes/tools/2026-09-bicep-extension-ghcr-migration.md` |
Align production GHCR publishing with the release stack; define
immutable staging, verification, promotion/resume, credential-isolation
gates, and ACR compatibility while retaining the inventory and cleanup
plan. |
|
`eng/design-notes/tools/2026-09-test-bicep-extension-ghcr-migration.md`
| Align credential-separation guidance only; retain the separate,
optional Test-tenant registry migration design. |

---------

Signed-off-by: willdavsmith <willdavsmith@gmail.com>
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.

3 participants