Don't error if owner not found in cache

Signed-off-by: irbekrm <irbekrm@gmail.com>
This commit is contained in:
irbekrm 2021-08-17 08:31:49 +01:00
parent b5003b52d0
commit 904d4e3c15
2 changed files with 14 additions and 5 deletions

View File

@ -20,6 +20,7 @@ go_library(
"//pkg/logs:go_default_library",
"//pkg/metrics:go_default_library",
"@com_github_go_logr_logr//:go_default_library",
"@io_k8s_apimachinery//pkg/api/errors:go_default_library",
"@io_k8s_apimachinery//pkg/api/resource:go_default_library",
"@io_k8s_apimachinery//pkg/apis/meta/v1:go_default_library",
"@io_k8s_apimachinery//pkg/runtime/schema:go_default_library",

View File

@ -22,6 +22,7 @@ import (
"time"
"github.com/go-logr/logr"
"k8s.io/apimachinery/pkg/api/errors"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/runtime/schema"
"k8s.io/apimachinery/pkg/util/runtime"
@ -74,13 +75,20 @@ func HandleOwnedResourceNamespacedFunc(log logr.Logger, queue workqueue.RateLimi
}
if refGV.Group == ownerGVK.Group && ref.Kind == ownerGVK.Kind {
// TODO: how to handle namespace of owner references?
order, err := get(metaobj.GetNamespace(), ref.Name)
if err != nil {
log.Error(err, "error getting referenced owning resource")
obj, err := get(metaobj.GetNamespace(), ref.Name)
// This function is always called with a getter
// that gets from informers cache. Because this
// is also called on cache sync it may be that
// the owner is not yet in the cache.
if err != nil && errors.IsNotFound(err) {
log.Info("owning resource not found in cache")
continue
}
objKey, err := KeyFunc(order)
if err != nil {
log.Error(err, "error getting referenced owning resource from cache")
continue
}
objKey, err := KeyFunc(obj)
if err != nil {
log.Error(err, "error computing key for resource")
continue