Skip to content

ticdc: pvc_cleaner doesn't reclaim PVC after ticdc scaled in #4943

@mahjonp

Description

@mahjonp

Bug Report

func (c *realPVCCleaner) reclaimPV(meta metav1.Object) (map[string]string, error) {
var clusterType string
switch meta := meta.(type) {
case *v1alpha1.TidbCluster:
if !meta.IsPVReclaimEnabled() {
return nil, nil
}
clusterType = "tidbcluster"
case *v1alpha1.DMCluster:
if !meta.IsPVReclaimEnabled() {
return nil, nil
}
clusterType = "dmcluster"
}
ns := meta.GetNamespace()
metaName := meta.GetName()
skipReason := map[string]string{}
pvcs, err := c.listAllPVCs(meta)
if err != nil {
return skipReason, err
}
runtimeMeta := meta.(runtime.Object)
for _, pvc := range pvcs {
pvcName := pvc.GetName()
l := label.Label(pvc.Labels)
if !(l.IsPD() || l.IsTiKV() || l.IsTiFlash() || l.IsDMMaster() || l.IsDMWorker()) {
skipReason[pvcName] = skipReasonPVCCleanerIsNotTarget
continue
}

What did you do?

Create a tidb-cluster with 3 ticdc replicas, then scale in 1 replicas

What did you expect to see?

Only 1 ticdc data pvc left.

In our k8s environment, the storageclass we use is extremely valuable. Each node has only 2-3 PVs created, yet we run hundreds of TiDB clusters for testing purposes. Therefore, it is imperative that scaled-in PVs are reclaimed as soon as possible.

What did you see instead?

ticdc-data-tc-ticdc-0      Bound    pvc-8d6d669a-c631-40da-9c14-dd108825b331   500Gi      RWO            local-path     11m
ticdc-data-tc-ticdc-1      Bound    pvc-53e1eeee-bab5-4d48-a3a9-ab91fb4c4111   500Gi      RWO            local-path     11m
ticdc-data-tc-ticdc-2      Bound    pvc-e61a2b51-7b71-421b-820a-81ae2d2e20fb   500Gi      RWO            local-path     11m

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions