Repository navigation
feat(bicep): use public GHCR extension defaults - #13181
willdavsmith wants to merge 4 commits into
Conversation
Dependency Review✅ No vulnerabilities or license issues or OpenSSF Scorecard issues found.Scanned FilesNone |
78d0c96 to
a8dd2cf
Compare
a8dd2cf to
5c1720b
Compare
5c1720b to
a0169f7
Compare
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## willdavsmith-extension-release-cutover #13181 +/- ##
=======================================================================
Coverage 69.27% 69.27%
=======================================================================
Files 735 735
Lines 40385 40383 -2
=======================================================================
- Hits 27976 27975 -1
+ Misses 12409 12408 -1 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
a0169f7 to
c4a5c97
Compare
Signed-off-by: willdavsmith <willdavsmith@gmail.com>
Signed-off-by: willdavsmith <willdavsmith@gmail.com>
…r cutover Signed-off-by: willdavsmith <willdavsmith@gmail.com>
Signed-off-by: willdavsmith <willdavsmith@gmail.com>
c4a5c97 to
1f79821
Compare
Radius functional test overviewClick here to see the test run details
Test Status⌛ Building Radius and pushing container images for functional tests... |
Summary
R4 migrates active Radius-repository production extension defaults to
ghcr.io/radius-project/bicep-types-radiusandghcr.io/radius-project/bicep-types-aws, with explicitexperimentalFeaturesEnabled.ociEnabled=true. Development uses GHCRedge; channels, full versions/RCs and existing user configs/digest pins retain their meaning.October 29 refresh: R3 base #13178 is
3fb1b25dcb2e4ae4ae87bb5d2ebc456551540aa0, on pinned main51a32aaea53cde89caae479340c7b45e666bb321. R4 head is1f7982182dcd8bd92fafef905532b089def51c01. All four owned commits replayed conflict-free with=range-diff correspondence; aggregate stable patch ID is unchanged:6bd553115e603716ed0aed7d84af8dedb753217a. No compatibility commit or later-main chase was needed. Native stack 13154, its order, draft status and this PR's R3 base remain unchanged.New upstream edge/latest policy is preserved: noncloud
DE_TAGstaysedge; trusted cloud context defaults DE toedgeand retains explicit dispatch tags. DE/dashboard main images use edge and newest-stable aliases use latest. GHCR Bicep follows the same edge/development and latest/stable split, while legacy ACR Bicep latest remains development. Stable image/Helm/bridge/channel alias promotion and no-downgrade checks are unchanged.Other retained invariants: current O_EXCL shared CLI config writer; existing-config preservation; exact 0.62 channel/full/RC coverage; optional approved
BICEP_RELEASE_PLANpath with fullBICEP_EXTENSION_TAG; both legacy ACR and GHCR stable/RC configs; unknown-selector rejection; strict isolated release-attestation job/gates/read permissions/summary/verification; sibling/source/evidence checks; bounded visibility recovery; Helm isolation/retry; new Bash authorization/Terraform helpers; current pins. Deleted agents and old CLI application/defaults files remain deleted.Only general defaults migrate. Tagged image configs remain plan-derived:
ghcr-v1selects GHCR full refs/OCI, selector-free legacy plans select ACR full refs. CI Bicep targets use the existingradius-registryTLS alias and a narrow secure-Kind DNS step; Docker/ORAS capture retains localhost.Reason for change
Planned public-GHCR consumer migration, refreshed against the authorized upstream stable/development policy. No issue is automatically closed.
Latest hosted evidence and remaining gates
The prior pushed head's Lint, unit tests and build checks succeeded, confirming the earlier pinned-Prettier repair. The remaining failed consumers still show package availability failures, not a new demonstrated runtime defect:
edge: BCP192 / token 403 Forbidden.legacy-test-environment.bicepcannot restore canonical Radiusedge, BCP192 / manifest unknown.edgerestore fails BCP192 / 403 Forbidden.Keep draft until ordered Radius layers and actual AWS companion deployment are complete; separately authorized private receiver guards/drains and promotion handoffs are complete; both packages are public with required edge/channel/full-version/RC refs and exact historical-digest backfill; a CLI release ships these generated defaults. Do not invent a future release version or historical provenance.
ACR resources, compatibility mirrors, historical verification/parity evidence, approved legacy image configs and private
TEST_BICEP_TYPES_REGISTRY/test/radius/testresourcesremain. No fallback, disabled tests, live publishing/bootstrap, visibility/credentials/settings/cloud mutation, other-branch changes, stack mutation, ready/merge or auto-merge was performed.How to test
Prerequisites: repository Go toolchain, Node.js, Bash, jq, yq, OpenSSL, Helm, Bicep/ORAS and linters. On macOS, use existing GNU coreutils for Linux-oriented fixtures; assertions are not changed.
go test ./internal/tooling ./pkg/cli/setup ./pkg/cli/bicep ./pkg/cli/cmd/radinit/... ./pkg/cli/cmd/bicep/publish ./pkg/cli/cmd/bicep/publishextension— expect exact refs/OCI, preserved files and downloaded-template behavior. Passed October 29.for channel in edge 0.62 0.62.0 0.62.0-rc.1 0.61; do go test ./pkg/cli/setup -run 'Test_(GetVersionedBicepConfig|WriteBicepConfig)' -count=1 -ldflags "-X github.com/radius-project/radius/pkg/version.channel=$channel" || exit; done— exact generated channels. Passed.PATH="/opt/homebrew/opt/coreutils/libexec/gnubin:$PATH" make test-release-controller test-release-cutover test-release-publication test-publishing-isolation test-release-oci-artifacts— passed October 29. Includes plan 21, controller 79, resume 5, DE image 10, strict build contract 109, cutover 15, installation, attestation 5, cloud/isolation 19, OCI 19, plus shared alias eligibility, both contracts, RC/no-downgrade and no ACR-latest/GHCR-edge overwrite regressions. Default invocation skips the two opt-in native cases; both ran separately below.node --test .github/scripts/cloud-test-artifacts.test.mjs .github/scripts/bicep-types.test.mjs .github/scripts/azure-oidc-login.test.mjs .github/scripts/release-assets_test.mjs .github/scripts/release-reconciliation_test.mjs— 113 passed, zero failures/skips, including trusted DE edge defaults and explicit dispatch behavior.npm exec --yes --package=prettier@3.9.10 -- prettier --config .github/linters/.prettierrc.yml --check .github/scripts/cloud-test-artifacts.test.mjs .github/scripts/verify-release-manifest_test.mjs bicepconfig.json .radius/bicepconfig.json test/functional-portable/dynamicrp/noncloud/resources/bicepconfig.json— passed.npm exec --yes --package=markdownlint-cli2@0.24.0 -- markdownlint-cli2 docs/contributing/contributing-code/contributing-code-schema-changes/README.md docs/contributing/contributing-code/contributing-code-github-workflows/README.md --config .github/linters/.markdownlint-cli2.yaml— passed. The pinned version is now available; the previous ETARGET limitation no longer applies.cspell lint --config .github/linters/.cspell.yml --no-progress --dot <same-docs>andnpm exec --yes --package=markdown-table-formatter@1.7.0 -- markdown-table-formatter <same-docs> --checkalso passed.actionlint -shellcheck= .github/workflows/functional-test-cloud.yaml .github/workflows/functional-test-noncloud.yaml .github/workflows/long-running-azure.yamlandshellcheck -x --rcfile .github/linters/.shellcheckrc build/scripts/generate-bicepconfig.sh .github/scripts/release-cutover_test.sh— passed, along withgit diff --check.Native local evidence
Start an owned disposable HTTP
registry:2bound only to127.0.0.1, then runBICEP_RELEASE_NATIVE_REGISTRY=localhost:<port> node --test .github/scripts/publish-release-bicep.test.mjs .github/scripts/promote-release-bicep.test.mjsand remove only that registry. October 29: 37 passed, zero failures/skips, including native immutable full-version consumption, same-digest mirror retries and new shared stable-alias eligibility regressions. The owned container was removed; unrelated buildkit containers were left alone. This is local fixture evidence, not live AWS generation or public production publishing.Prior October 27 TLS/Kind proof remains applicable, not represented as a new run: consumer Go defaults, shell generator, secure local registry action and Kind DNS action are byte-identical across this rebase. That proof rebuilt source rad (
make build-rad-linux-arm64) and used pinned Bicep 0.46.1 in fresh isolated Linux containers with temporary SAN certificates and no host-global trust or/etc/hostsedits. Actual shared-Go general config and actual shell-generated approved image configs asserted canonical Radius/AWS refs and OCI selection first; only Radius's endpoint was mapped locally for typed compilation. Legacy and GHCR stable0.62.0and RC0.62.0-rc.1config cases all passed. These fixture values are not new provenance claims./proof/bicep publish-extension /proof/types/index.json --target br:localhost:5000/test/radius:edge --force/proof/bicep publish-extension /proof/types/index.json --target br:radius-registry:5000/test/radius:edge --force/proof/rad bicep publish-extension -f /proof/testresourcetypes.yaml --target br:radius-registry:5000/testresources:edge --force/proof/bicep restore /proof/probe.bicep --forceand/proof/bicep build /proof/probe.bicep --stdout/proof/bicep publish /proof/probe.bicep --target br:radius-registry:5000/test/recipe:edge --force/proof/rad bicep publish --file /proof/probe.bicep --target br:radius-registry:5000/test/rad-recipe:edgeA separate fresh container and fresh Kind pod resolved/restored/compiled with the exact DNS action and mounted
SSL_CERT_DIRtrust. Scratch config inode preservation avoided the documented macOS/Podman bind-mount replacement issue; no production workaround. Owned containers, cluster, certificates and kubeconfig were cleaned.Not claimed: green hosted functional tests, public GHCR end-to-end availability, AWS companion deployment, live release rehearsal or historical backfill. Those operational gates remain unresolved; no registry write was authorized or attempted.
File change summary
pkg/cli/setup/bicepconfig.gopkg/cli/setup/bicepconfig_test.gobuild/scripts/generate-bicepconfig.shinternal/tooling/bicep_config_test.go.github/scripts/release-cutover_test.sh.github/scripts/verify-release-manifest_test.mjsbicepconfig.json.radius/bicepconfig.jsontest/functional-portable/dynamicrp/noncloud/resources/bicepconfig.json.github/workflows/functional-test-cloud.yaml.github/workflows/functional-test-noncloud.yaml.github/workflows/long-running-azure.yaml.github/actions/create-kind-cluster/action.yaml.github/scripts/cloud-test-artifacts.test.mjs.github/scripts/test-repo-radius-state-e2e.sh.github/workflows/update-resource-types.yamlbuild/generate.mkdocs/contributing/contributing-code/contributing-code-schema-changes/README.mddocs/contributing/contributing-code/contributing-code-github-workflows/README.md