Fix for kubernetes crd annotation too long problem

Sometimes creating custom resource definitions (CRD) in kubernetes can be a bit challenging. Even with the help of helm charts there you may run in the following error while creating CRDs:

CustomResourceDefinition.apiextensions.k8s.io 
"runnerdeployments.actions.summerwind.dev" is invalid: 
metadata.annotations: Too long: 
must have at most 262144 bytes

Tools like ArgoCD or HELM normally use “kubectl apply -f …” to apply a yaml file. For CRDs with often very long description texts this can lead to the given error. The problem is, that an annotation “kubectl.kubernetes.io/last-applied-configuration” will be created and that one is too large.

Fix

To fix the problem you can just use the following commands instead of “kubectl apply -f …”:

kubectl create -f ...  // For creating the resource
kubectl replace -f ... // For updating the resource