Skip to content

Commit 89e959e

Browse files
dtaniwakisarabala1979
authored andcommitted
Fix workflow template in namespaced controller (#1580)
* Add workflow template permissions to namespaced deployment manifests * Use filtered shared informer factory for namespaced deployment
1 parent cd04ab8 commit 89e959e

File tree

3 files changed

+29
-3
lines changed

3 files changed

+29
-3
lines changed

manifests/namespace-install.yaml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,15 @@ rules:
8282
- update
8383
- patch
8484
- delete
85+
- apiGroups:
86+
- argoproj.io
87+
resources:
88+
- workflowtemplates
89+
- workflowtemplates/finalizers
90+
verbs:
91+
- get
92+
- list
93+
- watch
8594
- apiGroups:
8695
- ""
8796
resources:

manifests/namespace-install/workflow-controller-rbac/workflow-controller-role.yaml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,15 @@ rules:
4343
- update
4444
- patch
4545
- delete
46+
- apiGroups:
47+
- argoproj.io
48+
resources:
49+
- workflowtemplates
50+
- workflowtemplates/finalizers
51+
verbs:
52+
- get
53+
- list
54+
- watch
4655
- apiGroups:
4756
- ""
4857
resources:

workflow/controller/controller.go

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -148,9 +148,7 @@ func (wfc *WorkflowController) Run(ctx context.Context, wfWorkers, podWorkers in
148148
}
149149

150150
wfc.wfInformer = util.NewWorkflowInformer(wfc.restConfig, wfc.Config.Namespace, workflowResyncPeriod, wfc.tweakWorkflowlist)
151-
152-
informerFactory := wfextv.NewSharedInformerFactory(wfc.wfclientset, workflowTemplateResyncPeriod)
153-
wfc.wftmplInformer = informerFactory.Argoproj().V1alpha1().WorkflowTemplates()
151+
wfc.wftmplInformer = wfc.newWorkflowTemplateInformer()
154152

155153
wfc.addWorkflowInformerHandler()
156154
wfc.podInformer = wfc.newPodInformer()
@@ -508,6 +506,16 @@ func (wfc *WorkflowController) newPodInformer() cache.SharedIndexInformer {
508506
return informer
509507
}
510508

509+
func (wfc *WorkflowController) newWorkflowTemplateInformer() wfextvv1alpha1.WorkflowTemplateInformer {
510+
var informerFactory wfextv.SharedInformerFactory
511+
if wfc.Config.Namespace != "" {
512+
informerFactory = wfextv.NewFilteredSharedInformerFactory(wfc.wfclientset, workflowTemplateResyncPeriod, wfc.Config.Namespace, func(opts *metav1.ListOptions) {})
513+
} else {
514+
informerFactory = wfextv.NewSharedInformerFactory(wfc.wfclientset, workflowTemplateResyncPeriod)
515+
}
516+
return informerFactory.Argoproj().V1alpha1().WorkflowTemplates()
517+
}
518+
511519
func (wfc *WorkflowController) createPersistenceContext() (*sqldb.WorkflowDBContext, error) {
512520

513521
var wfDBCtx sqldb.WorkflowDBContext

0 commit comments

Comments
 (0)