k8up-io / k8up

Kubernetes and OpenShift Backup Operator
https://k8up.io/
Apache License 2.0
601 stars 62 forks source link

Installation of CRD fails #951

Closed timbrd closed 3 months ago

timbrd commented 3 months ago

Description

I am trying to install k8up operator following the official tutorial. The installation of the CRDs unfortunately fails:

❯ k apply -f https://github.com/k8up-io/k8up/releases/download/v2.8.0/k8up-crd.yaml
customresourcedefinition.apiextensions.k8s.io/archives.k8up.io created
customresourcedefinition.apiextensions.k8s.io/backups.k8up.io created
customresourcedefinition.apiextensions.k8s.io/checks.k8up.io created
customresourcedefinition.apiextensions.k8s.io/prunes.k8up.io created
customresourcedefinition.apiextensions.k8s.io/restores.k8up.io created
customresourcedefinition.apiextensions.k8s.io/schedules.k8up.io created
customresourcedefinition.apiextensions.k8s.io/snapshots.k8up.io created
The CustomResourceDefinition "prebackuppods.k8up.io" is invalid: metadata.annotations: Too long: must have at most 262144 bytes

Is there really a bug in the CRD file? What might cause this error?

Additional Context

No response

Logs

No response

Expected Behavior

Installation of CRDs

Steps To Reproduce

No response

Version of K8up

v2.8.0

Version of Kubernetes

1.29.3

Distribution of Kubernetes

K3s

timbrd commented 3 months ago

Version 2.7.2 works as expected:

❯ k apply -f https://github.com/k8up-io/k8up/releases/download/v2.7.2/k8up-crd.yaml
customresourcedefinition.apiextensions.k8s.io/archives.k8up.io configured
customresourcedefinition.apiextensions.k8s.io/backups.k8up.io configured
customresourcedefinition.apiextensions.k8s.io/checks.k8up.io configured
customresourcedefinition.apiextensions.k8s.io/prebackuppods.k8up.io created
customresourcedefinition.apiextensions.k8s.io/prunes.k8up.io configured
customresourcedefinition.apiextensions.k8s.io/restores.k8up.io configured
customresourcedefinition.apiextensions.k8s.io/schedules.k8up.io configured
customresourcedefinition.apiextensions.k8s.io/snapshots.k8up.io configured
Kidswiss commented 3 months ago

@timbrd

Can you try this?

k apply -f https://github.com/k8up-io/k8up/releases/download/v2.8.0/k8up-crd.yaml --server-side

The problem is most likely with the kubectl.kubernetes.io/last-applied-configuration annotation that kubectl uses to track the apply. It basically contains a copy of the whole CRD and it looks like with the latest release they just crossed the threshold of the allowed annotation size.

Using --server-side with the apply doesn't create the kubectl.kubernetes.io/last-applied-configuration annotation, so it should apply.

timbrd commented 3 months ago

Sorry for the late response, I wasn't able to check your suggestion. Using the server side rendering, my cluster could load the CRD.