I believe a bug was introduced in #115 when the selector fields were upgraded to use {{- include "version-checker.labels" . | nindent 6 }}. This is because version-checker.labels includes things like app.kubernetes.io/version which changes on newer versions. The selector field is immutable in Deployments and shouldn't change between the same release.
To replicate:
$ helm upgrade -i version-checker jetstack/version-checker --version v0.3.1
Release "version-checker" does not exist. Installing it now.
NAME: version-checker
LAST DEPLOYED: Mon Dec 4 15:49:49 2023
NAMESPACE: default
STATUS: deployed
REVISION: 1
TEST SUITE: None
$ helm upgrade -i version-checker jetstack/version-checker --version v0.3.2
Error: UPGRADE FAILED: cannot patch "version-checker" with kind Deployment: Deployment.apps "version-checker" is invalid: spec.selector: Invalid value: v1.LabelSelector{MatchLabels:map[string]string{"app.kubernetes.io/instance":"version-checker", "app.kubernetes.io/managed-by":"Helm", "app.kubernetes.io/name":"version-checker", "app.kubernetes.io/version":"v0.3.2", "helm.sh/chart":"version-checker-v0.3.2"}, MatchExpressions:[]v1.LabelSelectorRequirement(nil)}: field is immutable
I believe a bug was introduced in #115 when the selector fields were upgraded to use
{{- include "version-checker.labels" . | nindent 6 }}
. This is becauseversion-checker.labels
includes things likeapp.kubernetes.io/version
which changes on newer versions. The selector field is immutable in Deployments and shouldn't change between the same release.To replicate: