Skip to content

Helm 4.x does not retry on ResourceQuota conflicts when using a server side apply (regression) #32087

@Kajot-dev

Description

@Kajot-dev

What happened?

When helm is creating a resource using server side apply it does not retry after retry conflict with resource quota.

Context:
This was a fix for k8s issue kubernetes/kubernetes#67761
In #9710 and #9713 this was fixed for the client-side create function and the fix is still present in https://github.com/helm/helm/blob/v4.1.4/pkg/kube/client.go#L989

However in 4.x a makeCreateApplyFunc was introduced which if using server-side apply returns a create func without the support for retry mechanism.

So the issue is that server-side apply branch of create func does not incorporate the confict retry mechanism.

What did you expect to happen?

I was expecting retry mechanism to be consistent across versions and apply mechanisms.

How can we reproduce it (as minimally and precisely as possible)?

Deploy a helm chart with a large amount of resources in a project with quota, using server-side apply.

Helm version

Details
version.BuildInfo{Version:"v4.1.1", GitCommit:"5caf0044d4ef3d62a955440272999e139aafbbed", GitTreeState:"", GoVersion:"go1.25.7 X:nodwarf5", KubeClientVersion:"v1.35"}

Kubernetes version

Details
Client Version: v1.35.2
Kustomize Version: v5.7.1
Server Version: v1.34.6

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions