Skip to content

Document containerImages Bicep recipe design#12372

Open
AzureMike wants to merge 4 commits into
radius-project:mainfrom
AzureMike:docs/container-images-bicep-design
Open

Document containerImages Bicep recipe design#12372
AzureMike wants to merge 4 commits into
radius-project:mainfrom
AzureMike:docs/container-images-bicep-design

Conversation

@AzureMike

Copy link
Copy Markdown

Summary

  • document the scoped Bicep execution hook for Radius.Compute/containerImages
  • describe the embedded BuildKit script contract, security boundary, compatibility differences, and alternatives
  • capture the validation plan and remaining release decisions

Related implementation: #12361
Related recipe: radius-project/resource-types-contrib#228

@AzureMike
AzureMike requested a review from a team as a code owner July 10, 2026 22:35
Copilot AI review requested due to automatic review settings July 10, 2026 22:35
@AzureMike
AzureMike requested a review from a team as a code owner July 10, 2026 22:35
@AzureMike
AzureMike requested a deployment to external-contributor-approval July 10, 2026 22:35 — with GitHub Actions Waiting

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.

Pull request overview

Adds a new design note documenting how a Kubernetes Bicep recipe for Radius.Compute/containerImages will be executed via a scoped post-deployment hook in the Bicep driver, including the private imageBuild output contract and embedded build.sh behavior. This fits into the broader recipes system by describing a targeted extension to the generic Bicep driver path used by dynamic-rp.

Changes:

  • Document the high-level flow and the Bicep-to-driver private contract (imageBuild output + embedded radiusContainerImagesBuildScript).
  • Describe the embedded BuildKit script contract, compatibility differences vs Terraform, and security boundary considerations.
  • Capture test/validation plans and remaining release/open questions for shipping the hook and recipe.

Comment thread eng/design-notes/recipes/2026-07-container-images-bicep-recipe.md Outdated
@AzureMike
AzureMike marked this pull request as draft July 13, 2026 18:11
Mike Azure added 2 commits July 14, 2026 10:31
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 02f56b94-06c1-4607-a961-824552d82076
@AzureMike
AzureMike force-pushed the docs/container-images-bicep-design branch from da0ccb1 to a0f8f01 Compare July 14, 2026 17:32
@AzureMike
AzureMike marked this pull request as ready for review July 14, 2026 17:33
@AzureMike AzureMike self-assigned this Jul 14, 2026
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 5b3219d9-0b93-4ab8-b255-57d9ca7d1df8
BuildKit remains an install-time opt-in:

```sh
rad install kubernetes --set dynamicrp.buildkit.enabled=true

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.

does this also keep the bicep build hook uninstalled or no?

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

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

Good point. Right now, the hook is always present regardless of the  dynamicrp.buildkit.enabled flag.

Comment thread eng/design-notes/recipes/2026-07-container-images-bicep-recipe.md Outdated
Comment thread eng/design-notes/recipes/2026-07-container-images-bicep-recipe.md Outdated
Comment thread eng/design-notes/recipes/2026-07-container-images-bicep-recipe.md
Comment thread eng/design-notes/recipes/2026-07-container-images-bicep-recipe.md
Comment thread eng/design-notes/recipes/2026-07-container-images-bicep-recipe.md

@willdavsmith willdavsmith 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.

nice work! left a couple of comments but overall looks good.

@brooke-hamilton brooke-hamilton 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.

🚀


1. `dynamic-rp` downloads the compiled Bicep recipe and adds the Radius recipe context.
2. UCP deploys the Bicep template and returns `result` plus the private `imageBuild` output.
3. The Bicep driver checks the resource type. Only `Radius.Compute/containerImages` uses this hook.

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.

What is a hook in this context?

Comment thread eng/design-notes/recipes/2026-07-container-images-bicep-recipe.md Outdated
Comment thread eng/design-notes/recipes/2026-07-container-images-bicep-recipe.md Outdated
@lakshmimsft

lakshmimsft commented Jul 17, 2026

Copy link
Copy Markdown
Contributor

overall /lgtm, great work!

- Define build hook and clarify it is driver-owned, not developer-supplied
- Attribute immutable-ref guidance to the developer via build.source
- Note the build hook is always present; only BuildKit sidecar is opt-in
- Add multi-cluster advantage of running from the control plane
- Reframe recipeDigest and script-constraint items as future enhancements
- Add open questions for Bicep/Terraform recipe sync and multi-cluster credentials
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.

6 participants