Helm do not update CRDs
https://helm.sh/docs/topics/charts/
Limitations on CRDs Unlike most objects in Kubernetes, CRDs are installed globally. For that reason, Helm takes a very cautious approach in managing CRDs. CRDs are subject to the following limitations:
CRDs are never reinstalled. If Helm determines that the CRDs in the crds/ directory are already present (regardless of version), Helm will not attempt to install or upgrade. CRDs are never installed on upgrade or rollback. Helm will only create CRDs on installation operations. CRDs are never deleted. Deleting a CRD automatically deletes all of the CRD's contents across all namespaces in the cluster. Consequently, Helm will not delete CRDs. Operators who want to upgrade or delete CRDs are encouraged to do this manually and with great care.
Gatekeeper has a specific Job for this, using kubectl apply.
See https://github.com/open-policy-agent/gatekeeper/pull/1485
@jkatz
What is the proper solution in the meantime. Just copy the content of the latest version and use kubectl edit on the cluster?
Effectively what is said in the original post:
Operators who want to upgrade or delete CRDs are encouraged to do this manually and with great care.
https://helm.sh/docs/topics/charts/#custom-resource-definitions-crds
You can follow the kustomize instructions for upgrades.
WDYT about the alternatives presented here: https://github.com/CrunchyData/postgres-operator-examples/issues/59
Closing this as near-enough a duplicate of #59 + I've captured it in our backlog