Microsoft Flux Extension Upgrades Helm-Controller to Helm v4 and Server-Side Apply
Microsoft rolled out version 1.25.0 of its microsoft.flux extension for Azure Arc-enabled Kubernetes and Azure Kubernetes Service (AKS), updating the core upstream component to Flux v2.8.8. The pivotal change in this release is the migration of helm-controller to Helm v4. This transition flips default deployment mechanisms to Kubernetes Server-Side Apply (SSA) and introduces kstatus-based health assessments for all reconciled Helm releases. In addition, the update introduces generic feature-gate passthrough capabilities for the azure-k8s-flux chart, enables --override-manager flag configuration on the Helm controller, and hardens extension templates with strict type guards.
This release marks a major operational transition for enterprise Kubernetes teams relying on managed GitOps workflows. For years, Helm v3 relied on client-side three-way strategic merge patches, which frequently created conflicts when multiple controllers or admission webhooks modified shared manifest fields. By making Helm v4 and Server-Side Apply the default in managed GitOps environments, field ownership is tracked explicitly by the Kubernetes API server. This significantly reduces reconciliation flapping and prevents out-of-band drift. Furthermore, switching to kstatus standardizes how controllers evaluate the readiness of complex workloads, replacing custom probing routines with structured, condition-based status polling.
The shift reflects the wider cloud-native ecosystem's consolidation around Server-Side Apply and standard resource lifecycle primitives. With Helm v3 entering the final phases of its maintenance lifecycle ahead of its upcoming end-of-support milestones, platform providers and GitOps engines are actively deprecating legacy client-side patching pipelines. Integrating Helm v4 directly into production-grade managed extensions like Azure's Flux operator bridges the gap between traditional templated packaging and fully declarative, controller-native state convergence, bringing Helm releases into tighter alignment with the Kubernetes control plane.
Practitioners should audit existing HelmRelease manifests before clusters automatically consume extension upgrades. While chart templating remains backwards compatible, the shift to Server-Side Apply may trigger field ownership conflicts on resources previously managed by external mutation webhooks or legacy Helm v3 clients. Teams experiencing deployment validation failures can temporarily revert to legacy behavior by toggling the useHelm3Defaults setting on the extension. Platform engineers should also evaluate the --override-manager parameter to prevent field-manager collision during multi-tool rollouts and verify that custom CRD definitions implement proper status subresources to satisfy kstatus readiness criteria.
Read original source