Skip to content

fix: pin Arc chart image repositories to the resolved MCR path - #1378

Merged
Yoo Bin Shin (nibooy) merged 4 commits into
Azure:mainfrom
nibooy:arc-chart-image-repo
Oct 22, 2026
Merged

Yoo Bin Shin (nibooy) merged 4 commits into
Azure:mainfrom
nibooy:arc-chart-image-repo

Conversation

@nibooy

@nibooy Yoo Bin Shin (nibooy) commented Oct 22, 2026 •

Copy link
Copy Markdown
Member

Description of your changes

The workflow packages the chart from the plain release tag but resolves image tags from aks/v2/fleet. Chart 0.18.16-3 was packaged from v0.18.16, one commit before #1373 moved the chart to aks/v2/fleet, so it referenced aks/fleet/*:v0.18.16-3, which does not exist. Every Arc install hit ImagePullBackOff and the EV2 canary gate halted the rollout.

Before packaging, the workflow now:

I have:

  • Run make reviewable to ensure this PR is ready for review. (Workflow and README only; ran actionlint and go test ./charts/member-agent-arc/....)

How has this code been tested

Run from the arc-chart-image-repo branch at 517c3c7 republished 0.18.16-3 from the v0.18.16 chart. The chart pulled from MCR points at aks/v2/fleet, and all five images return HTTP 200. Locally, the verify step alone fails on the original broken chart.

🤖 Generated with Claude Code

The workflow resolves image tags from aks/v2/fleet but packages the chart from
the plain release tag. When that tag predates a change to the chart's image
repositories, the published chart pairs the new tags with the old path:
0.18.16-3 was packaged from v0.18.16, one commit before the move to
aks/v2/fleet, and referenced aks/fleet/*:v0.18.16-3, which does not exist.
Every install hit ImagePullBackOff and the canary rollout gate failed.

Overwrite each image repository with MCR_FLEET_REPO before packaging, so the
chart always points where the tags were resolved, regardless of the release
tag's values.yaml. Then render the chart and check every referenced image
against MCR, failing before publish if any is missing.

Co-Authored-By: Claude <noreply@anthropic.com>
Signed-off-by: yoobinshin <yoobinshin@microsoft.com>
@nibooy

Copy link
Copy Markdown
Member Author

(AI-generated) Superseded by a PR from a branch on Azure/fleet so the workflow can be dispatched from it before merge.

yoobinshin and others added 2 commits October 22, 2026 14:39
The self-hosted 1ES runner's curl predates --retry-all-errors, so every
manifest probe exited on the unknown option and each image was reported
missing. Read the HTTP status instead of relying on -f, which also surfaces
the status in the failure message.

Co-Authored-By: Claude <noreply@anthropic.com>
Signed-off-by: yoobinshin <yoobinshin@microsoft.com>
Each repository already ends in its image name, so swapping the prefix needs
no key-to-image map, and the image check that follows fails the run if a
rewrite misses.

Co-Authored-By: Claude <noreply@anthropic.com>
Signed-off-by: yoobinshin <yoobinshin@microsoft.com>
@britaniar

Copy link
Copy Markdown
Contributor

Suggestion: make the repository rewrite a narrowly scoped compatibility step for older chart sources, rather than overriding every repository: value.

New image revisions such as v0.18.16-4 still package the chart from Git tag v0.18.16, so they will continue to need the old-path correction. Future release tags cut from the corrected main should not need an override.

Instead of comparing release versions, replace only the exact legacy prefix mcr.microsoft.com/aks/fleet/ with mcr.microsoft.com/aks/v2/fleet/. That naturally leaves already-correct chart values unchanged and avoids rewriting unrelated image repositories. For example:

sed -i 's|mcr\.microsoft\.com/aks/fleet/|mcr.microsoft.com/aks/v2/fleet/|g' charts/member-agent-arc/values.yaml

Please document that this compatibility step remains necessary while publishing new revisions from tags containing the legacy prefix is supported. Keep the pre-publication image-existence verification permanently, regardless of whether the rewrite changes anything.

Comment thread .github/workflows/build-publish-mcr.yml Outdated
Replace mcr.microsoft.com/aks/fleet/ rather than every repository value, so
charts already on the current path and images hosted elsewhere are left
untouched. The step is a compatibility shim for publishing new image revisions
from release tags whose chart predates the move to aks/v2/fleet.

Co-Authored-By: Claude <noreply@anthropic.com>
Signed-off-by: yoobinshin <yoobinshin@microsoft.com>
@nibooy
Yoo Bin Shin (nibooy) merged commit 0870f05 into Azure:main Oct 22, 2026
24 of 26 checks passed
@nibooy
Yoo Bin Shin (nibooy) deleted the arc-chart-image-repo branch October 22, 2026 20:51
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