@@ -488,6 +488,11 @@ func (r *TenantReconciler) reconcileArgoCD(ctx context.Context, tenant *cattagev
488488 for i , ns := range nss .Items {
489489 namespaces [i ] = ns .Name
490490 }
491+ delegatedNamespaces , err := r .getDelegatedNamespaces (ctx , tenant .Spec .Delegates )
492+ if err != nil {
493+ return err
494+ }
495+ namespaces = append (namespaces , delegatedNamespaces ... )
491496
492497 tpl , err := template .New ("AppProject Template" ).Parse (r .config .ArgoCD .AppProjectTemplate )
493498 if err != nil {
@@ -552,6 +557,21 @@ func (r *TenantReconciler) reconcileArgoCD(ctx context.Context, tenant *cattagev
552557 return nil
553558}
554559
560+ func (r * TenantReconciler ) getDelegatedNamespaces (ctx context.Context , delegates []cattagev1beta1.DelegateSpec ) ([]string , error ) {
561+ result := make ([]string , 0 )
562+
563+ for _ , d := range delegates {
564+ nss := & corev1.NamespaceList {}
565+ if err := r .client .List (ctx , nss , client.MatchingFields {constants .TenantNamespaceIndex : d .Name }); err != nil {
566+ return nil , err
567+ }
568+ for _ , ns := range nss .Items {
569+ result = append (result , ns .Name )
570+ }
571+ }
572+ return result , nil
573+ }
574+
555575func (r * TenantReconciler ) reconcileConfigMapForApplicationController (ctx context.Context , tenant * cattagev1beta1.Tenant ) error {
556576 cmList := & corev1.ConfigMapList {}
557577 err := r .client .List (ctx , cmList , client.MatchingLabels {constants .ManagedByLabel : "cattage" })
0 commit comments