88 "time"
99
1010 "k8s.io/apimachinery/pkg/api/meta"
11+ metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
12+ "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
1113 "k8s.io/apimachinery/pkg/runtime"
1214 "k8s.io/apimachinery/pkg/util/wait"
1315 toolscache "k8s.io/client-go/tools/cache"
@@ -116,10 +118,18 @@ func (ks *Kind[object, request]) Start(ctx context.Context, queue workqueue.Type
116118}
117119
118120func (ks * Kind [object , request ]) String () string {
119- if ! isNil (ks .Type ) {
121+ if isNil (ks .Type ) {
122+ return "kind source: unknown type"
123+ }
124+
125+ switch v := any (ks .Type ).(type ) {
126+ case * unstructured.Unstructured , * metav1.PartialObjectMetadata :
127+ gvk := v .(client.Object ).GetObjectKind ().GroupVersionKind ()
128+ gv , kind := gvk .ToAPIVersionAndKind ()
129+ return fmt .Sprintf ("kind source: %T[%s %s]" , v , gv , kind )
130+ default :
120131 return fmt .Sprintf ("kind source: %T" , ks .Type )
121132 }
122- return "kind source: unknown type"
123133}
124134
125135// WaitForSync implements SyncingSource to allow controllers to wait with starting
@@ -133,7 +143,7 @@ func (ks *Kind[object, request]) WaitForSync(ctx context.Context) error {
133143 if errors .Is (ctx .Err (), context .Canceled ) {
134144 return nil
135145 }
136- return fmt .Errorf ("timed out waiting for cache to be synced for Kind %T " , ks .Type )
146+ return fmt .Errorf ("timed out waiting for cache to be synced for %s " , ks .String () )
137147 }
138148}
139149
0 commit comments