Fix Helm 4 CRD install conflict

Helm 4 uses Server-Side Apply for CRDs. When another field manager
already owns .spec.versions, install fails with a conflict error.

Setting ForceConflicts=true on the install action makes Helm take
ownership of conflicting fields via SSA, resolving the conflict.

Change-Id: Idb3701ac8fd9ce4c821d872b2af7245838aea48e
Signed-off-by: Sergiy Markin <smarkin@mirantis.com>
This commit is contained in:
Sergiy Markin
2026-06-05 21:26:49 +00:00
parent 4c2986e66b
commit a95f173315
2 changed files with 3 additions and 1 deletions
@@ -1,6 +1,6 @@
ARG FROM=quay.io/airshipit/ubuntu:noble
# Build the manager binary
FROM quay.io/airshipit/golang:1.26.3-trixie AS builder
FROM quay.io/airshipit/golang:1.26.4-trixie AS builder
ARG TARGETOS
ARG TARGETARCH
+2
View File
@@ -98,6 +98,8 @@ func (r *Runner) Install(ctx context.Context, ac armadav1.ArmadaChart, chrt *cha
}
install.DisableOpenAPIValidation = true
install.CreateNamespace = true
// Force SSA to take ownership of CRD fields from any conflicting field manager.
install.ForceConflicts = true
reli, err := install.RunWithContext(ctx, chrt, values.AsMap())
if err != nil {