in pkg/csi/controller.go [382:405]
func (r *reconciler) deleteOrphanedPDs(ctx context.Context) error {
var pvcs corev1.PersistentVolumeClaimList
if err := r.List(ctx, &pvcs); err != nil {
return err
}
var nodes corev1.NodeList
if err := r.List(ctx, &nodes); err != nil {
return err
}
knownNodes := make(map[string]bool, len(nodes.Items))
for _, n := range nodes.Items {
if n.DeletionTimestamp == nil {
knownNodes[n.GetName()] = true
}
}
for _, pvc := range pvcs.Items {
if _, found := knownNodes[pvc.GetName()]; !found {
if err := r.deletePVC(ctx, &pvc); err != nil {
return err
}
}
}
return nil
}