m/n/kubernetes: make CSI provisioner more debuggable

Change-Id: I22292e627ceac0d41a7711964517a53e63636c3e
Reviewed-on: https://review.monogon.dev/c/monogon/+/1379
Reviewed-by: Lorenz Brun <lorenz@monogon.tech>
Tested-by: Jenkins CI
diff --git a/metropolis/node/kubernetes/provisioner.go b/metropolis/node/kubernetes/provisioner.go
index 7288c84..38de7df 100644
--- a/metropolis/node/kubernetes/provisioner.go
+++ b/metropolis/node/kubernetes/provisioner.go
@@ -91,6 +91,11 @@
 	p.claimQueue = workqueue.NewRateLimitingQueue(workqueue.DefaultControllerRateLimiter())
 	p.pvQueue = workqueue.NewRateLimitingQueue(workqueue.DefaultControllerRateLimiter())
 
+	p.logger = supervisor.Logger(ctx)
+
+	p.pvcInformer.Informer().SetWatchErrorHandler(func(_ *cache.Reflector, err error) {
+		p.logger.Errorf("pvcInformer watch error: %v", err)
+	})
 	p.pvcInformer.Informer().AddEventHandler(cache.ResourceEventHandlerFuncs{
 		AddFunc: p.enqueueClaim,
 		UpdateFunc: func(old, new interface{}) {
@@ -103,7 +108,13 @@
 			p.enqueuePV(new)
 		},
 	})
-	p.logger = supervisor.Logger(ctx)
+	p.pvInformer.Informer().SetWatchErrorHandler(func(_ *cache.Reflector, err error) {
+		p.logger.Errorf("pvInformer watch error: %v", err)
+	})
+
+	p.storageClassInformer.Informer().SetWatchErrorHandler(func(_ *cache.Reflector, err error) {
+		p.logger.Errorf("storageClassInformer watch error: %v", err)
+	})
 
 	go p.pvcInformer.Informer().Run(ctx.Done())
 	go p.pvInformer.Informer().Run(ctx.Done())
@@ -226,7 +237,7 @@
 
 	storageClass, err := p.storageClassInformer.Lister().Get(*pvc.Spec.StorageClassName)
 	if err != nil {
-		return fmt.Errorf("")
+		return fmt.Errorf("could not get storage class: %w", err)
 	}
 
 	if storageClass.Provisioner != csiProvisionerServerName {
@@ -283,7 +294,7 @@
 			return errors.New("newly-created volume already contains data, bailing")
 		}
 		if err := fsquota.SetQuota(volumePath, uint64(capacity), 100000); err != nil {
-			return fmt.Errorf("failed to update quota: %v", err)
+			return fmt.Errorf("failed to update quota: %w", err)
 		}
 	case v1.PersistentVolumeBlock:
 		imageFile, err := os.OpenFile(volumePath, os.O_CREATE|os.O_RDWR, 0644)