Skip to content

fix: Update Github Action to publish arc member agent helm charts to MCR#1162

Merged
xmuhammad-xali merged 5 commits into
Azure:mainfrom
xmuhammad-xali:alimuhammad/fleet/arc-member-agent-helm-charts
Aug 4, 2025
Merged

fix: Update Github Action to publish arc member agent helm charts to MCR#1162
xmuhammad-xali merged 5 commits into
Azure:mainfrom
xmuhammad-xali:alimuhammad/fleet/arc-member-agent-helm-charts

Conversation

@xmuhammad-xali

Copy link
Copy Markdown
Contributor

Description of your changes

This PR updates the Github Action to publish arc member agents helm charts to MCR.

Fixes #

I have:

  • Run make reviewable to ensure this PR is ready for review.

How has this code been tested

Special notes for your reviewer

@ryanzhang-oss

Copy link
Copy Markdown
Contributor

so this pulls images from both fleet and fleet-networking then why is the action here? Is there an ARC repo? Do we foresee more development needed purely for Arc?

1 similar comment
@ryanzhang-oss

Copy link
Copy Markdown
Contributor

so this pulls images from both fleet and fleet-networking then why is the action here? Is there an ARC repo? Do we foresee more development needed purely for Arc?

@ryanzhang-oss
ryanzhang-oss requested a review from Copilot July 30, 2025 02:07

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

This PR adds support for publishing arc member agent helm charts to Microsoft Container Registry (MCR). The change introduces a new Helm chart specifically for Azure Arc extensions and updates the GitHub Actions workflow to build and publish this chart alongside existing images.

  • Adds a new member-agent-arc Helm chart with Arc-specific configurations and templates
  • Updates the build workflow to package and publish the Arc member agent chart to MCR
  • Includes necessary Makefile targets for building and publishing the Arc Helm chart

Reviewed Changes

Copilot reviewed 13 out of 13 changed files in this pull request and generated 2 comments.

File Description
charts/member-agent-arc/ New Helm chart directory with Arc-specific templates, values, and CRDs for the member agent
Makefile Adds helm-package-arc-member-agent target to build and publish Arc member agent chart
.github/workflows/build-publish-mcr.yml Updates workflow to build and publish Arc member agent chart with fleet networking version handling
Comments suppressed due to low confidence (2)

charts/member-agent-arc/templates/deployment.yaml:235

  • Inconsistent indentation. This line should be indented to align with the previous volumeMounts entry.
             - name: azure-proxy-cert-store

charts/member-agent-arc/templates/azure-proxy-secrets.yaml:9

  • The secret key name 'proxy-cert.crt' doesn't match the reference 'azure-proxy-cert.crt' used in the deployment volumeMounts.
  proxy-cert.crt: {{ .Values.Azure.proxySettings.proxyCert | b64enc | quote }}

Comment thread charts/member-agent-arc/values.yaml Outdated
Comment thread charts/member-agent-arc/templates/rbac.yaml
@Ealianis

Copy link
Copy Markdown
Contributor

so this pulls images from both fleet and fleet-networking then why is the action here? Is there an ARC repo? Do we foresee more development needed purely for Arc?

Took conversation into intenral Teams chat.

Comment thread Makefile Outdated
fi
echo "release_tag=$RELEASE_TAG" >> $GITHUB_OUTPUT

# Fetch the latest fleet-networking version

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.

Should we move it to the https://github.com/Azure/fleet-networking/blob/main/.github/workflows/build-publish-mcr.yml and handle it independently?

there is no order guaranteed when we cut the release.

there will be a case, we cut the fleet first and then fleet-networking. Then your acr does not have the latest fleet-networking tag.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

The fleet member agent and networking agent both are needed to package and push to MCR.

We can move to fleet-networking but then we would then need to fetch the azure fleet version and would end up in the same case as you mentioned.

We will update the release process to update the order of cutting the release to

  1. azure/fleet-networking agent
  2. azure/fleet agent

I spoke to Britania, and it seems to be that DP team cuts the azure/fleet-networking first as it does not require backporting from the kubefleet and is easier compared to azure/fleet agent release.

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.

Why merging fleet-networking and fleet agent into one chart?

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.

Suppose someone updates fleet-networking repo, how do they know they need to update here too?

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.

yeah, i have the same question as Wantong, why we need to couple fleet and fleet-networking into one chart? why not doing it independently?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Why merging fleet-networking and fleet agent into one chart?

We are working on enabling Arc connected clusters to join fleets as members. We install the agents on Arc clusters as an Arc Extension. The Arc Extension is simply a packaged helm chart pushed into MCR. Since we are installing the networking and fleet agents onto the Arc Clusters, they need to be packaged as one for Arc Extension. Please see this wiki for more info.

Suppose someone updates fleet-networking repo, how do they know they need to update here too?

We will be updating the Fleet Release Manual to ensure that we always run the Github Action to package all updated agents and push to MCR.

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.

could you please add a comment in this workflow to provide such context? so that we don't lose the context in the future.

Please update the release manual to make sure that when people bump the agent versions for the aks cluster, use the same version combination as the arc helm charts. Otherwise, what's installed in the normal aks cluster could be different from arc clusters.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

In the Github Action, if no tag is provided for agent versions we fetch the latest tag and push that to MCR. We are doing the same for the ARC helm charts. We use the bumped/updated tag agent version for both fleet agent for the aks cluster and arc helm chart

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.

to clarify that, i'm talking about the toggle bump PR, who creates the bump PR needs to make sure the ARC is using the same versions (fleet & fleet-networking) as the one defined in the toggle to keep them consistent.

Comment thread .github/workflows/build-publish-mcr.yml Outdated
@xmuhammad-xali

Copy link
Copy Markdown
Contributor Author

https://status-portal.mscr.io/?repoFilter=microsoft.fleetmember

Successfully publishing the helm charts to MCR.

Comment thread .github/workflows/build-publish-mcr.yml Outdated

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

Overall LGTM. Just minor comments. I assume you have tested installing the helm chart you pushed and the current set up will work from start to finish.

Also small: PR Title check is failing please update to use one of these

Comment thread .github/workflows/build-publish-mcr.yml
Comment thread .github/workflows/build-publish-mcr.yml Outdated
Comment thread Makefile Outdated
@xmuhammad-xali xmuhammad-xali changed the title Update Github Action to publish arc member agent helm charts to MCR fix: Update Github Action to publish arc member agent helm charts to MCR Aug 1, 2025
@xmuhammad-xali

Copy link
Copy Markdown
Contributor Author

Overall LGTM. Just minor comments. I assume you have tested installing the helm chart you pushed and the current set up will work from start to finish.

Also small: PR Title check is failing please update to use one of these

I have successfully tested the packaging and pushing of the helm charts to MCR, excluding building agent images in this branch alimuhammad/fleet/arc-helm-charts.

Example successful push to MCR: https://github.com/Azure/fleet/actions/runs/16654328607/job/47135279571

The reason I have excluded (commented them out) building agent images is because we have a with: ref: field to the tag version we want to release and since the new step to build and publish helm charts to MCR is not yet tagged currently, it fails to find.

This flow should be successful when a new agent release tag is created which holds this PR change.

https://github.com/Azure/fleet/blob/alimuhammad/fleet/arc-helm-charts/.github/workflows/build-publish-mcr.yml#L60C1-L61C25

@xmuhammad-xali
xmuhammad-xali merged commit fc8bf76 into Azure:main Aug 4, 2025
28 of 30 checks passed
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.

8 participants