You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@druid.apache.org by ad...@apache.org on 2026/02/24 06:07:54 UTC
(druid-operator) 01/01: fix pvc volume expansion issue
This is an automated email from the ASF dual-hosted git repository.
adheipsingh pushed a commit to branch 1.3.0-pvc-expansion-fix
in repository https://gitbox.apache.org/repos/asf/druid-operator.git
commit 4a11c07d1498165070ab0bf028aaec1eb1dc395a
Author: AdheipSingh <ad...@gmail.com>
AuthorDate: Fri Sep 26 19:48:39 2025 +0530
fix pvc volume expansion issue
---
controllers/druid/volume_expansion.go | 30 ++++++++++++++++++++++++------
1 file changed, 24 insertions(+), 6 deletions(-)
diff --git a/controllers/druid/volume_expansion.go b/controllers/druid/volume_expansion.go
index 3ae6ee0..d2c888d 100644
--- a/controllers/druid/volume_expansion.go
+++ b/controllers/druid/volume_expansion.go
@@ -4,6 +4,7 @@ import (
"context"
"errors"
"fmt"
+ "strings"
"github.com/datainfrahq/druid-operator/apis/druid/v1alpha1"
appsv1 "k8s.io/api/apps/v1"
@@ -162,17 +163,34 @@ func scalePVCForSts(ctx context.Context, sdk client.Client, nodeSpec *v1alpha1.D
}
+ // Get the volume claim template name for this index
+ volumeClaimTemplateName := nodeSpec.VolumeClaimTemplates[i].Name
+
// In case size dont match, patch the pvc with the desiredsize from druid CR
- for p := range pvcSize {
- pSize, _ := pvcSize[p].AsInt64()
+ for p := range pvcList {
+ pvcObj := pvcList[p].(*v1.PersistentVolumeClaim)
+
+ // Extract the volume template name from PVC name
+ // PVC name format: {volumeClaimTemplateName}-{statefulSetName}-{ordinal}
+ stsName := sts.(*appsv1.StatefulSet).Name
+ expectedPrefix := fmt.Sprintf("%s-%s-", volumeClaimTemplateName, stsName)
+
+ // Skip if this PVC doesn't match the current volume claim template
+ if !strings.HasPrefix(pvcObj.Name, expectedPrefix) {
+ continue
+ }
+
+ pvcQuantity := pvcObj.Spec.Resources.Requests[v1.ResourceStorage]
+ pSize, _ := pvcQuantity.AsInt64()
+
if desiredSize != pSize {
// use deepcopy
- patch := client.MergeFrom(pvcList[p].(*v1.PersistentVolumeClaim).DeepCopy())
- pvcList[p].(*v1.PersistentVolumeClaim).Spec.Resources.Requests[v1.ResourceStorage] = desVolumeClaimTemplateSize[i]
- if err := writers.Patch(ctx, sdk, drd, pvcList[p].(*v1.PersistentVolumeClaim), false, patch, emitEvent); err != nil {
+ patch := client.MergeFrom(pvcObj.DeepCopy())
+ pvcObj.Spec.Resources.Requests[v1.ResourceStorage] = desVolumeClaimTemplateSize[i]
+ if err := writers.Patch(ctx, sdk, drd, pvcObj, false, patch, emitEvent); err != nil {
return err
} else {
- msg := fmt.Sprintf("[PVC:%s] successfully Patched with [Size:%s]", pvcList[p].(*v1.PersistentVolumeClaim).Name, desVolumeClaimTemplateSize[i].String())
+ msg := fmt.Sprintf("[PVC:%s] successfully Patched with [Size:%s]", pvcObj.Name, desVolumeClaimTemplateSize[i].String())
logger.Info(msg, "name", drd.Name, "namespace", drd.Namespace)
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@druid.apache.org
For additional commands, e-mail: commits-help@druid.apache.org