You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Right now, the [namespaced installation|https://github.com/argoproj/argo/blob/stable/manifests/namespace-install.yaml] instructions don't provide enough information to get workflows running.
Specifically, I think it should be broken into 2 parts:
One time cluster admin installation: Installs the CustomResourceDefinitions's and ClusterRoles (which are currently just Role)
Per namespaces installation: Installs the rest.
Motivation
It was unclear that we needed cluster admin at all (though the CRD's should have made that obvious). And after that, using the current config led to a case where each additional namespace that wanted to run workflows needed the cluster admin to add the RoleBindings.
Proposal
How do you think this should be implemented?
It should be broken into one time cluster admin:
---
apiVersion: apiextensions.k8s.io/v1beta1kind: CustomResourceDefinitionmetadata:
name: clusterworkflowtemplates.argoproj.iolabels:
cluster_feature: argo-worflowspec:
group: argoproj.ionames:
kind: ClusterWorkflowTemplateplural: clusterworkflowtemplatesshortNames:
- clusterwftmpl
- cwftscope: Clusterversion: v1alpha1
---
apiVersion: apiextensions.k8s.io/v1beta1kind: CustomResourceDefinitionmetadata:
name: cronworkflows.argoproj.iolabels:
cluster_feature: argo-worflowspec:
group: argoproj.ionames:
kind: CronWorkflowplural: cronworkflowsshortNames:
- cronwf
- cwfscope: Namespacedversion: v1alpha1
---
apiVersion: apiextensions.k8s.io/v1beta1kind: CustomResourceDefinitionmetadata:
name: workflows.argoproj.iolabels:
cluster_feature: argo-worflowspec:
additionalPrinterColumns:
- JSONPath: .status.phasedescription: Status of the workflowname: Statustype: string
- JSONPath: .status.startedAtdescription: When the workflow was startedformat: date-timename: Agetype: dategroup: argoproj.ionames:
kind: Workflowplural: workflowsshortNames:
- wfscope: Namespacedversion: v1alpha1
---
apiVersion: apiextensions.k8s.io/v1beta1kind: CustomResourceDefinitionmetadata:
name: workflowtemplates.argoproj.iolabels:
cluster_feature: argo-worflowspec:
group: argoproj.ionames:
kind: WorkflowTemplateplural: workflowtemplatesshortNames:
- wftmplscope: Namespacedversion: v1alpha1
---
apiVersion: rbac.authorization.k8s.io/v1kind: ClusterRolemetadata:
name: argo-rolelabels:
cluster_feature: argo-worflow# Add these permissions to the "admin" default role.# https://kubernetes.io/docs/reference/access-authn-authz/rbac/#aggregated-clusterrolesrbac.authorization.k8s.io/aggregate-to-admin: "true"rules:
- apiGroups:
- ""resources:
- pods
- pods/execverbs:
- create
- get
- list
- watch
- update
- patch
- delete
- apiGroups:
- ""resources:
- configmapsverbs:
- get
- watch
- list
- apiGroups:
- ""resources:
- persistentvolumeclaimsverbs:
- create
- delete
- apiGroups:
- argoproj.ioresources:
- workflows
- workflows/finalizersverbs:
- get
- list
- watch
- update
- patch
- delete
- create
- apiGroups:
- argoproj.ioresources:
- workflowtemplates
- workflowtemplates/finalizersverbs:
- get
- list
- watch
- apiGroups:
- ""resources:
- serviceaccountsverbs:
- get
- list
- apiGroups:
- ""resources:
- secretsverbs:
- get
- apiGroups:
- argoproj.ioresources:
- cronworkflows
- cronworkflows/finalizersverbs:
- get
- list
- watch
- update
- patch
- delete
- apiGroups:
- ""resources:
- eventsverbs:
- create
- apiGroups:
- policyresources:
- poddisruptionbudgetsverbs:
- create
- get
- delete
---
apiVersion: rbac.authorization.k8s.io/v1kind: ClusterRolemetadata:
name: argo-server-rolelabels:
cluster_feature: argo-worflow# Add these permissions to the "admin" default role.# https://kubernetes.io/docs/reference/access-authn-authz/rbac/#aggregated-clusterrolesrbac.authorization.k8s.io/aggregate-to-admin: "true"rules:
- apiGroups:
- ""resources:
- configmapsverbs:
- get
- watch
- list
- apiGroups:
- ""resources:
- secretsverbs:
- get
- apiGroups:
- ""resources:
- pods
- pods/exec
- pods/logverbs:
- get
- list
- watch
- delete
- apiGroups:
- ""resources:
- secretsverbs:
- get
- apiGroups:
- argoproj.ioresources:
- workflows
- workflowtemplates
- cronworkflowsverbs:
- create
- get
- list
- watch
- update
- patch
- delete
And per namespace install that can be run by namespace admin:
Summary
Right now, the [namespaced installation|https://github.com/argoproj/argo/blob/stable/manifests/namespace-install.yaml] instructions don't provide enough information to get workflows running.
Specifically, I think it should be broken into 2 parts:
CustomResourceDefinitions
's andClusterRole
s (which are currently justRole
)Motivation
It was unclear that we needed cluster admin at all (though the CRD's should have made that obvious). And after that, using the current config led to a case where each additional namespace that wanted to run workflows needed the cluster admin to add the
RoleBindings
.Proposal
How do you think this should be implemented?
It should be broken into one time cluster admin:
And per namespace install that can be run by namespace admin:
Message from the maintainers:
If you wish to see this enhancement implemented please add a 👍 reaction to this issue! We often sort issues this way to know what to prioritize.
The text was updated successfully, but these errors were encountered: