From 1b6ec47a045ba938c475f6f497beb50b58ba9da1 Mon Sep 17 00:00:00 2001 From: Xianglin Gao Date: Wed, 31 Jul 2019 15:16:35 +0800 Subject: [PATCH] do not return error, when the ds is not found Signed-off-by: Xianglin Gao --- cmd/kubeadm/app/phases/upgrade/prepull.go | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/cmd/kubeadm/app/phases/upgrade/prepull.go b/cmd/kubeadm/app/phases/upgrade/prepull.go index ad17e8f6da2..eca72a339a3 100644 --- a/cmd/kubeadm/app/phases/upgrade/prepull.go +++ b/cmd/kubeadm/app/phases/upgrade/prepull.go @@ -23,6 +23,7 @@ import ( "github.com/pkg/errors" apps "k8s.io/api/apps/v1" v1 "k8s.io/api/core/v1" + apierrors "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" clientset "k8s.io/client-go/kubernetes" kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" @@ -85,7 +86,9 @@ func (d *DaemonSetPrepuller) WaitFunc(component string) { // DeleteFunc deletes the DaemonSet used for making the image available on every relevant node func (d *DaemonSetPrepuller) DeleteFunc(component string) error { dsName := addPrepullPrefix(component) - if err := apiclient.DeleteDaemonSetForeground(d.client, metav1.NamespaceSystem, dsName); err != nil { + // TODO: The IsNotFound() check is required in cases where the DaemonSet is missing. + // Investigate why this happens: https://github.com/kubernetes/kubeadm/issues/1700 + if err := apiclient.DeleteDaemonSetForeground(d.client, metav1.NamespaceSystem, dsName); err != nil && !apierrors.IsNotFound(err) { return errors.Wrapf(err, "unable to cleanup the DaemonSet used for prepulling %s", component) } fmt.Printf("[upgrade/prepull] Prepulled image for component %s.\n", component)