in pkg/csi/controller.go [255:280]
func (r *reconciler) updatePVCForLifecycle(ctx context.Context, pvc *corev1.PersistentVolumeClaim, needCreate bool) error {
found := false
for _, finalizer := range pvc.Finalizers {
if finalizer == finalizerLabel {
found = true
break
}
}
changed := false
if !found {
changed = true
pvc.Finalizers = append(pvc.Finalizers, finalizerLabel)
}
if needCreate {
if err := r.Create(ctx, pvc); err != nil {
return err
}
} else if changed {
if err := r.Update(ctx, pvc); err != nil {
return err
}
}
return nil
}