-
Bug
-
Resolution: Done
-
Undefined
-
None
-
v0.1.0
-
False
-
-
False
-
-
Description
The deployment scripts (deploy-strimzi.sh and install-helm-chart.sh) hardcode an incorrect storage class name for OpenShift deployments. The scripts use odf-storagecluster-ceph-rbd but the actual storage class available on OpenShift clusters is ocs-storagecluster-ceph-rbd (note the ocs vs odf prefix).
This causes PersistentVolumeClaim (PVC) provisioning failures during Kafka/Strimzi deployment, resulting in pods stuck in Pending state indefinitely.
Issue Details
Two deployment scripts contain the incorrect storage class name:
1. scripts/deploy-strimzi.sh:70 - Sets STORAGE_CLASS="odf-storagecluster-ceph-rbd"
2. scripts/install-helm-chart.sh:1219 - Sets --set global.storageClass=odf-storagecluster-ceph-rbd
The correct storage class name on OpenShift with OCS/ODF is ocs-storagecluster-ceph-rbd.
Steps to Reproduce
-
- Deploy on an OpenShift cluster with OCS/ODF installed
2. Run the Kafka deployment script:./deploy-strimzi.sh
3. Observe Kafka cluster pods (ZooKeeper, Kafka brokers) stuck in Pending state
4. Check PVC status:oc get pvc -n kafka
5. See error: storageclass.storage.k8s.io "odf-storagecluster-ceph-rbd" not found
- Deploy on an OpenShift cluster with OCS/ODF installed
Expected Behavior
- Deployment scripts should use the correct storage class name ocs-storagecluster-ceph-rbd
- PVCs should provision successfully
- Kafka/Strimzi pods should start and reach Running state within the timeout period
Actual Behavior
- Scripts reference non-existent storage class odf-storagecluster-ceph-rbd
- PVC provisioning fails with "storageclass not found" error
- ZooKeeper and Kafka broker pods remain stuck in Pending state
- Deployment times out after waiting for pods to become ready
Error Messages
PVC provisioning error:
ProvisioningFailed: storageclass.storage.k8s.io "odf-storagecluster-ceph-rbd" not found
Pod events:
Warning FailedScheduling pod/kafka-cluster-zookeeper-0 0/6 nodes are available: pod has unbound immediate PersistentVolumeClaims
Workaround
Before running the deployment, manually edit the scripts to use the correct storage class name, or set it explicitly:
# For deploy-strimzi.sh
export STORAGE_CLASS=ocs-storagecluster-ceph-rbd
./deploy-strimzi.sh
Fix
Change the storage class name from odf-storagecluster-ceph-rbd to ocs-storagecluster-ceph-rbd in:
- scripts/deploy-strimzi.sh line 70
- scripts/install-helm-chart.sh line 1219
Version Information
- Helm Chart: ros-ocp version 0.1.6
- Git Commit (with fix): 3235f9b2b74b7097097186e7be586c796927a67f
- Git Branch: fix/storage-class-name
- Affected Files:
- scripts/deploy-strimzi.sh (line 70)
- scripts/install-helm-chart.sh (line 1219)
- Affected Version: IOP-POC-0.1
- Platform: OpenShift with OCS/ODF storage
- Storage Class (Incorrect): odf-storagecluster-ceph-rbd
- Storage Class (Correct): ocs-storagecluster-ceph-rbd
Additional Context
This appears to be a naming convention confusion between OpenShift Container Storage (OCS) and OpenShift Data Foundation (ODF). While the product was rebranded from OCS to ODF, the storage class names retained the ocs- prefix on existing clusters.