Description
When following the current README installation instructions, the Adobe Koperator Helm chart installation fails.
The README first instructs to install the Koperator CRDs manually with:
|
kubectl apply -f https://raw.githubusercontent.com/adobe/koperator/refs/heads/master/config/base/crds/kafka.banzaicloud.io_cruisecontroloperations.yaml |
|
kubectl apply -f https://raw.githubusercontent.com/adobe/koperator/refs/heads/master/config/base/crds/kafka.banzaicloud.io_kafkaclusters.yaml |
|
kubectl apply -f https://raw.githubusercontent.com/adobe/koperator/refs/heads/master/config/base/crds/kafka.banzaicloud.io_kafkatopics.yaml |
|
kubectl apply -f https://raw.githubusercontent.com/adobe/koperator/refs/heads/master/config/base/crds/kafka.banzaicloud.io_kafkausers.yaml |
It then instructs to install the Helm chart without --skip-crds:
|
helm install kafka-operator oci://ghcr.io/adobe/helm-charts/kafka-operator --version 0.28.0-adobe-20250923 --namespace=kafka --create-namespace |
This causes the Helm installation to fail because the chart also contains the same CRDs. Helm therefore attempts to install CRDs that were already created by the previous documented step.
The current Helm command fails with the following error:
Pulled: ghcr.io/adobe/helm-charts/kafka-operator:0.28.0-adobe-20250923
Digest: sha256:87f2d9f17e9b49b043529f6cd03d6c3df41396c263f5689b97441455b94b70aa
Error: INSTALLATION FAILED: failed to install CRD crds/cruisecontroloperations.yaml: conflict occurred while applying object /cruisecontroloperations.kafka.banzaicloud.io apiextensions.k8s.io/v1, Kind=CustomResourceDefinition: Apply failed with 1 conflict: conflict with "kubectl": .metadata.annotations.controller-gen.kubebuilder.io/version
Expected Behavior
The README should install the CRDs separately, then install the Helm chart with --skip-crds.
The Helm installation command should be:
helm install kafka-operator oci://ghcr.io/adobe/helm-charts/kafka-operator \
--version 0.28.0-adobe-20250923 \
--namespace=kafka \
--create-namespace \
--skip-crds
This prevents Helm from attempting to install CRDs that were already installed in the previous README step.
Actual Behavior
The README currently installs the Koperator CRDs with kubectl apply --server-side, then runs helm install without --skip-crds.
As a result, Helm tries to install the same CRDs again. This creates an ownership conflict on the existing CRD metadata, which leads to installation failure.
Steps to Reproduce
Follow README instructions (described above)
My Setup
HELM :
version.BuildInfo{Version:"v4.2.1", GitCommit:"d591a19b953bd9cfdf7d9ddd83c2f4ffdaeafb29", GitTreeState:"clean", GoVersion:"go1.26.4", KubeClientVersion:"v1.36"}
KUBECTL :
Client Version: v1.34.1
Kustomize Version: v5.7.1
Server Version: v1.34.1
Checklist
Description
When following the current README installation instructions, the Adobe Koperator Helm chart installation fails.
The README first instructs to install the Koperator CRDs manually with:
koperator/README.md
Lines 112 to 115 in 309bb34
It then instructs to install the Helm chart without
--skip-crds:koperator/README.md
Line 127 in 309bb34
This causes the Helm installation to fail because the chart also contains the same CRDs. Helm therefore attempts to install CRDs that were already created by the previous documented step.
The current Helm command fails with the following error:
Expected Behavior
The README should install the CRDs separately, then install the Helm chart with
--skip-crds.The Helm installation command should be:
This prevents Helm from attempting to install CRDs that were already installed in the previous README step.
Actual Behavior
The README currently installs the Koperator CRDs with
kubectl apply --server-side, then runshelm installwithout--skip-crds.As a result, Helm tries to install the same CRDs again. This creates an ownership conflict on the existing CRD metadata, which leads to installation failure.
Steps to Reproduce
Follow README instructions (described above)
My Setup
HELM :
version.BuildInfo{Version:"v4.2.1", GitCommit:"d591a19b953bd9cfdf7d9ddd83c2f4ffdaeafb29", GitTreeState:"clean", GoVersion:"go1.26.4", KubeClientVersion:"v1.36"}KUBECTL :
Checklist