@@ -237,22 +237,29 @@ func (m *Manager) createPVCForWorkspacePod(startContext *startWorkspaceContext)
237
237
if startContext .Class != nil {
238
238
PVCConfig = startContext .Class .PVC
239
239
}
240
- storageClassName := PVCConfig . StorageClass
241
- return & corev1.PersistentVolumeClaim {
240
+
241
+ pvc := & corev1.PersistentVolumeClaim {
242
242
ObjectMeta : metav1.ObjectMeta {
243
243
Name : fmt .Sprintf ("%s-%s" , prefix , req .Id ),
244
244
Namespace : m .Config .Namespace ,
245
245
},
246
246
Spec : corev1.PersistentVolumeClaimSpec {
247
- AccessModes : []corev1.PersistentVolumeAccessMode {corev1 .ReadWriteOnce },
248
- StorageClassName : & storageClassName ,
247
+ AccessModes : []corev1.PersistentVolumeAccessMode {corev1 .ReadWriteOnce },
249
248
Resources : corev1.ResourceRequirements {
250
249
Requests : corev1.ResourceList {
251
250
corev1 .ResourceName (corev1 .ResourceStorage ): PVCConfig .Size ,
252
251
},
253
252
},
254
253
},
255
- }, nil
254
+ }
255
+ if PVCConfig .StorageClass != "" {
256
+ // Specify the storageClassName when the storage class is non-empty.
257
+ // This way, the Kubernetes uses the default StorageClass within the cluster.
258
+ // Otherwise, the Kubernetes would try to request the PVC with no class.
259
+ pvc .Spec .StorageClassName = & PVCConfig .StorageClass
260
+ }
261
+
262
+ return pvc , nil
256
263
}
257
264
258
265
// createDefiniteWorkspacePod creates a workspace pod without regard for any template.
0 commit comments