diff --git a/federation/pkg/federation-controller/util/BUILD b/federation/pkg/federation-controller/util/BUILD index 64c28474476..f73dce965ab 100644 --- a/federation/pkg/federation-controller/util/BUILD +++ b/federation/pkg/federation-controller/util/BUILD @@ -33,6 +33,7 @@ go_library( "//pkg/client/clientset_generated/internalclientset:go_default_library", "//pkg/controller/deployment/util:go_default_library", "//vendor/github.com/golang/glog:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/net:go_default_library", diff --git a/federation/pkg/federation-controller/util/federated_updater.go b/federation/pkg/federation-controller/util/federated_updater.go index 3dec68acf12..929f397966f 100644 --- a/federation/pkg/federation-controller/util/federated_updater.go +++ b/federation/pkg/federation-controller/util/federated_updater.go @@ -20,6 +20,7 @@ import ( "fmt" "time" + "k8s.io/apimachinery/pkg/api/errors" pkgruntime "k8s.io/apimachinery/pkg/runtime" kubeclientset "k8s.io/kubernetes/pkg/client/clientset_generated/clientset" ) @@ -95,6 +96,10 @@ func (fu *federatedUpdaterImpl) UpdateWithOnError(ops []FederatedOperation, time err = fu.updateFunction(clientset, op.Obj) case OperationTypeDelete: err = fu.deleteFunction(clientset, op.Obj) + // IsNotFound error is fine since that means the object is deleted already. + if errors.IsNotFound(err) { + err = nil + } } if err != nil && onError != nil { onError(op, err)