diff --git a/Gopkg.lock b/Gopkg.lock index 717e34cc35..3a14cf1253 100644 --- a/Gopkg.lock +++ b/Gopkg.lock @@ -1129,7 +1129,7 @@ revision = "c106140daf37a5d2b7a513726091a5eb8107e8b9" [[projects]] - digest = "1:b08a45828b09ce543aea649464635291107f53fd21465c0ab00a867b4418fa15" + digest = "1:5919b80013fe2204af836990cf255fc100d7d7cb077ec524c7518ff272e9a633" name = "k8s.io/client-go" packages = [ "discovery", @@ -1343,12 +1343,14 @@ "k8s.io/apimachinery/pkg/runtime/serializer", "k8s.io/apimachinery/pkg/selection", "k8s.io/apimachinery/pkg/types", + "k8s.io/apimachinery/pkg/util/intstr", "k8s.io/apimachinery/pkg/util/runtime", "k8s.io/apimachinery/pkg/util/sets", "k8s.io/apimachinery/pkg/util/uuid", "k8s.io/apimachinery/pkg/util/wait", "k8s.io/apimachinery/pkg/watch", "k8s.io/client-go/discovery", + "k8s.io/client-go/dynamic", "k8s.io/client-go/kubernetes", "k8s.io/client-go/kubernetes/scheme", "k8s.io/client-go/kubernetes/typed/core/v1", diff --git a/pkg/source/source.go b/pkg/source/source.go index 559239f139..0bd1f912bd 100644 --- a/pkg/source/source.go +++ b/pkg/source/source.go @@ -20,17 +20,21 @@ import ( "fmt" "sync" + "k8s.io/apimachinery/pkg/api/meta" "k8s.io/apimachinery/pkg/runtime" "k8s.io/client-go/util/workqueue" "sigs.k8s.io/controller-runtime/pkg/event" "sigs.k8s.io/controller-runtime/pkg/handler" "sigs.k8s.io/controller-runtime/pkg/runtime/inject" + logf "sigs.k8s.io/controller-runtime/pkg/runtime/log" "sigs.k8s.io/controller-runtime/pkg/source/internal" "sigs.k8s.io/controller-runtime/pkg/cache" "sigs.k8s.io/controller-runtime/pkg/predicate" ) +var log = logf.KBLog.WithName("source") + const ( // defaultBufferSize is the default number of event notifications that can be buffered. defaultBufferSize = 1024 @@ -80,6 +84,10 @@ func (ks *Kind) Start(handler handler.EventHandler, queue workqueue.RateLimiting // Lookup the Informer from the Cache and add an EventHandler which populates the Queue i, err := ks.cache.GetInformer(ks.Type) if err != nil { + if kindMatchErr, ok := err.(*meta.NoKindMatchError); ok { + log.Error(err, "if %s is a CRD, should install it before calling Start", + kindMatchErr.GroupKind) + } return err } i.AddEventHandler(internal.EventHandler{Queue: queue, EventHandler: handler, Predicates: prct})