fix: argocd notification controller app cluster permission issue (#16057)

* if applicationNamespaces is not provided as input parameter, then use namespaced appClient

Signed-off-by: May Zhang <may_zhang@intuit.com>

* fix go lint error

Signed-off-by: May Zhang <may_zhang@intuit.com>

---------

Signed-off-by: May Zhang <may_zhang@intuit.com>
This commit is contained in:
May Zhang
2023-10-23 14:44:49 -07:00
committed by GitHub
parent 56a7bb79a4
commit f4e0d35454

View File

@@ -61,7 +61,13 @@ func NewController(
secretName string,
configMapName string,
) *notificationController {
appClient := client.Resource(applications)
var appClient dynamic.ResourceInterface
namespaceableAppClient := client.Resource(applications)
appClient = namespaceableAppClient
if len(applicationNamespaces) == 0 {
appClient = namespaceableAppClient.Namespace(namespace)
}
appInformer := newInformer(appClient, namespace, applicationNamespaces, appLabelSelector)
appProjInformer := newInformer(newAppProjClient(client, namespace), namespace, []string{namespace}, "")
secretInformer := k8s.NewSecretInformer(k8sClient, namespace, secretName)
@@ -74,7 +80,7 @@ func NewController(
appInformer: appInformer,
appProjInformer: appProjInformer,
apiFactory: apiFactory}
res.ctrl = controller.NewController(appClient, appInformer, apiFactory,
res.ctrl = controller.NewController(namespaceableAppClient, appInformer, apiFactory,
controller.WithSkipProcessing(func(obj v1.Object) (bool, string) {
app, ok := (obj).(*unstructured.Unstructured)
if !ok {