INNER CODE UNIT · Go

waitForVolumeAttachments

kubernetes-sigs/aws-ebs-csi-driver · cmd/hooks/prestop.go:100

func waitForVolumeAttachments(clientset kubernetes.Interface, nodeName string) error {
	allAttachmentsDeleted := make(chan struct{})

	factory := informers.NewSharedInformerFactory(clientset, 0)
	informer := factory.Storage().V1().VolumeAttachments().Informer()

	_, err := informer.AddEventHandler(cache.ResourceEventHandlerFuncs{
		DeleteFunc: func(obj any) {
			klog.V(5).InfoS("DeleteFunc: VolumeAttachment deleted", "node", nodeName)
			va, ok := obj.(*storagev1.VolumeAttachment)
			if !ok {
				klog.Error("DeleteFunc: error asserting object as type VolumeAttachment", "obj", va)
			}
			if va.Spec.NodeName == nodeName {
				if err := checkVolumeAttachments(clientset, nodeName, allAttachmentsDeleted); err != nil {
					klog.ErrorS(err, "DeleteFunc: error checking VolumeAttachments")
				}
			}

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…