Document containerImages Bicep recipe design#12372
Conversation
There was a problem hiding this comment.
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 (
imageBuildoutput + embeddedradiusContainerImagesBuildScript). - 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.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 02f56b94-06c1-4607-a961-824552d82076
da0ccb1 to
a0f8f01
Compare
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 |
There was a problem hiding this comment.
does this also keep the bicep build hook uninstalled or no?
There was a problem hiding this comment.
Good point. Right now, the hook is always present regardless of the dynamicrp.buildkit.enabled flag.
willdavsmith
left a comment
There was a problem hiding this comment.
nice work! left a couple of comments but overall looks good.
|
|
||
| 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. |
There was a problem hiding this comment.
What is a hook in this context?
|
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
Summary
Radius.Compute/containerImagesRelated implementation: #12361
Related recipe: radius-project/resource-types-contrib#228