@@ -22,6 +22,7 @@ import (
2222 "k8s.io/client-go/util/workqueue"
2323 "k8s.io/kubectl/pkg/scheme"
2424 "k8s.io/utils/strings/slices"
25+ csiv1 "sigs.k8s.io/secrets-store-csi-driver/apis/v1"
2526)
2627
2728// Controller for checking events
@@ -79,7 +80,16 @@ func NewController(
7980 }
8081 }
8182
82- listWatcher := cache .NewFilteredListWatchFromClient (client .CoreV1 ().RESTClient (), resource , namespace , optionsModifier )
83+ getterRESTClient := client .CoreV1 ().RESTClient ()
84+ if resource == "secretproviderclasspodstatuses" {
85+ csiClient , err := kube .GetCSIClient ()
86+ if err != nil {
87+ logrus .Fatal (err )
88+ }
89+ getterRESTClient = csiClient .SecretsstoreV1 ().RESTClient ()
90+ }
91+
92+ listWatcher := cache .NewFilteredListWatchFromClient (getterRESTClient , resource , namespace , optionsModifier )
8393
8494 _ , informer := cache .NewInformerWithOptions (cache.InformerOptions {
8595 ListerWatcher : listWatcher ,
@@ -108,6 +118,8 @@ func (c *Controller) Add(obj interface{}) {
108118 case * v1.Namespace :
109119 c .addSelectedNamespaceToCache (* object )
110120 return
121+ case * csiv1.SecretProviderClassPodStatus :
122+ return
111123 }
112124
113125 if options .ReloadOnCreate == "true" {
@@ -122,11 +134,13 @@ func (c *Controller) Add(obj interface{}) {
122134}
123135
124136func (c * Controller ) resourceInIgnoredNamespace (raw interface {}) bool {
125- switch object := raw .(type ) {
137+ switch obj := raw .(type ) {
126138 case * v1.ConfigMap :
127- return c .ignoredNamespaces .Contains (object .Namespace )
139+ return c .ignoredNamespaces .Contains (obj .Namespace )
128140 case * v1.Secret :
129- return c .ignoredNamespaces .Contains (object .Namespace )
141+ return c .ignoredNamespaces .Contains (obj .Namespace )
142+ case * csiv1.SecretProviderClassPodStatus :
143+ return c .ignoredNamespaces .Contains (obj .Namespace )
130144 }
131145 return false
132146}
@@ -145,6 +159,10 @@ func (c *Controller) resourceInSelectedNamespaces(raw interface{}) bool {
145159 if slices .Contains (selectedNamespacesCache , object .GetNamespace ()) {
146160 return true
147161 }
162+ case * csiv1.SecretProviderClassPodStatus :
163+ if slices .Contains (selectedNamespacesCache , object .GetNamespace ()) {
164+ return true
165+ }
148166 }
149167 return false
150168}
@@ -183,6 +201,9 @@ func (c *Controller) Update(old interface{}, new interface{}) {
183201
184202// Delete function to add an object to the queue in case of deleting a resource
185203func (c * Controller ) Delete (old interface {}) {
204+ if _ , ok := old .(* csiv1.SecretProviderClassPodStatus ); ok {
205+ return
206+ }
186207
187208 if options .ReloadOnDelete == "true" {
188209 if ! c .resourceInIgnoredNamespace (old ) && c .resourceInSelectedNamespaces (old ) && secretControllerInitialized && configmapControllerInitialized {
0 commit comments