From 5ab9e1e50a7c9f22ba3509c88ee7a813a8d46e07 Mon Sep 17 00:00:00 2001 From: Haowei Cai Date: Wed, 22 Jul 2020 18:53:54 -0700 Subject: [PATCH] keep processing partial discovery result when failure occurs --- pkg/trigger/discovery_handler.go | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/pkg/trigger/discovery_handler.go b/pkg/trigger/discovery_handler.go index 1a102fae5..ba040c619 100644 --- a/pkg/trigger/discovery_handler.go +++ b/pkg/trigger/discovery_handler.go @@ -26,6 +26,7 @@ import ( "k8s.io/apimachinery/pkg/runtime/schema" utilruntime "k8s.io/apimachinery/pkg/util/runtime" "k8s.io/apimachinery/pkg/util/wait" + "k8s.io/client-go/discovery" "k8s.io/klog" migrationv1alpha1 "sigs.k8s.io/kube-storage-version-migrator/pkg/apis/migration/v1alpha1" @@ -44,7 +45,16 @@ func (mt *MigrationTrigger) processDiscovery(ctx context.Context) { return true, nil }) if err != nil { - utilruntime.HandleError(fmt.Errorf("Abort processing discovery document: %v", err)) + if discovery.IsGroupDiscoveryFailedError(err2) { + // process the partial discovery result, and update the heartbeat for + // resources that do have a valid discovery document + klog.Warningf("failed to discover some groups: %v; processing partial result", err2.(*discovery.ErrGroupDiscoveryFailed).Groups) + } else { + klog.Warningf("failed to discover preferred resources: %v", err2) + } + } + // skip updating heartbeat if we failed to discover anything (e.g. lost connection) + if resources == nil { return } mt.heartbeat = metav1.Now()