@@ -11,6 +11,7 @@ import (
1111"k8s.io/apimachinery/pkg/api/meta"
1212"k8s.io/apimachinery/pkg/runtime/schema"
1313"k8s.io/client-go/dynamic"
14+ "k8s.io/client-go/tools/cache"
1415"k8s.io/klog/v2"
1516"sigs.k8s.io/cli-utils/pkg/kstatus/polling/clusterreader"
1617"sigs.k8s.io/cli-utils/pkg/kstatus/polling/engine"
@@ -43,6 +44,15 @@ type DefaultStatusWatcher struct {
4344// required for computing parent object status, to compensate for
4445// controllers that aren't following status conventions.
4546ClusterReader engine.ClusterReader
47+
48+ // Indexers control how the watch cache is indexed, allowing namespace
49+ // filtering and field selectors. If you watch at namespace scope, you must
50+ // provide the namespace indexer. If you specify a field selector filter,
51+ // you must also provide an indexer for that field.
52+ Indexers cache.Indexers
53+
54+ // Filters allows filtering the objects being watched.
55+ Filters * Filters
4656}
4757
4858var _ StatusWatcher = & DefaultStatusWatcher {}
@@ -60,6 +70,7 @@ func NewDefaultStatusWatcher(dynamicClient dynamic.Interface, mapper meta.RESTMa
6070DynamicClient : dynamicClient ,
6171Mapper : mapper ,
6272},
73+ Indexers : DefaultIndexers (),
6374}
6475}
6576
@@ -88,13 +99,18 @@ func (w *DefaultStatusWatcher) Watch(ctx context.Context, ids object.ObjMetadata
8899}
89100
90101informer := & ObjectStatusReporter {
91- InformerFactory : NewDynamicInformerFactory (w .DynamicClient , w .ResyncPeriod ),
92- Mapper : w .Mapper ,
93- StatusReader : w .StatusReader ,
94- ClusterReader : w .ClusterReader ,
95- Targets : targets ,
96- ObjectFilter : & AllowListObjectFilter {AllowList : ids },
97- RESTScope : scope ,
102+ InformerFactory : & DynamicInformerFactory {
103+ Client : w .DynamicClient ,
104+ ResyncPeriod : w .ResyncPeriod ,
105+ Indexers : w .Indexers ,
106+ Filters : w .Filters ,
107+ },
108+ Mapper : w .Mapper ,
109+ StatusReader : w .StatusReader ,
110+ ClusterReader : w .ClusterReader ,
111+ Targets : targets ,
112+ ObjectFilter : & AllowListObjectFilter {AllowList : ids },
113+ RESTScope : scope ,
98114}
99115return informer .Start (ctx )
100116}
0 commit comments