Skip to content

Resetting "reflector.v1.k8s.emberstack.com/reflected-version" during the helm upgrade is blocked by helm in server side apply mode. #700

Description

@aDisplayName

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions