The following code base was suggested here will break under helm v4 where the --server-side is defaulted to true.
With the follow helm manifest
apiVersion: v1
kind: Secret
metadata:
name: my-secret
annotations:
reflector.v1.k8s.emberstack.com/reflects: "default/source-secret"
reflector.v1.k8s.emberstack.com/reflected-version: ""
type: Opaque
data:
Using helm CLI v4.2.3
PS \token-with-attr\helm> helm version
version.BuildInfo{Version:"v4.2.3", GitCommit:"43e8b7feece8beb0fcba47059ec9b522fd929a64", GitTreeState:"clean", GoVersion:"go1.26.5", KubeClientVersion:"v1.36"}
PS \token-with-attr\helm> helm install bug-jwt .
NAME: bug-jwt
LAST DEPLOYED: Mon Aug 24 11:25:51 2026
NAMESPACE: default
STATUS: deployed
REVISION: 1
DESCRIPTION: Install complete
TEST SUITE: None
PS \token-with-attr\helm> helm upgrade bug-jwt .
level=WARN msg="upgrade failed" name=bug-jwt error="conflict occurred while applying object default/my-secret /v1, Kind=Secret: Apply failed with 1 conflict: conflict with \"unknown\" using v1: .metadata.annotations.reflector.v1.k8s.emberstack.com/reflected-version"
Error: UPGRADE FAILED: conflict occurred while applying object default/my-secret /v1, Kind=Secret: Apply failed with 1 conflict: conflict with "unknown" using v1: .metadata.annotations.reflector.v1.k8s.emberstack.com/reflected-version
To workaround it, we have to specify --server-side false during the upgrade.
helm v4 is now used in our CD system via https://github.com/rancher/fleet, and it is causing the deployment pipeline from completing.
The following code base was suggested here will break under helm v4 where the
--server-sideis defaulted totrue.With the follow helm manifest
Using helm CLI v4.2.3
To workaround it, we have to specify
--server-side falseduring the upgrade.helm v4 is now used in our CD system via https://github.com/rancher/fleet, and it is causing the deployment pipeline from completing.