Argo Workflow 始终使用默认服务帐户

问题描述 投票:0回答:2

我安装了 Argo Workflow 的默认 Helm Chart,仅将 init.serviceAccount 配置为我创建的 argo-sa。 (有足够授权的ServiceAccount) 但是,运行每个工作流都以 serviceaccount 默认值运行,我无法弄清楚该设置是在哪里配置的。 根据 Argo Helm Chart 提供的 README,指定

init.serviceAccount
作为我创建的服务帐户应该可以解决问题。 解决方法是修改默认服务帐户,但这似乎不是一个很好的解决方案。 我有什么理解不正确的地方吗?预先感谢。

kubernetes kubernetes-helm argo-workflows argoproj
2个回答
17
投票

Argo 安装不控制使用哪个 ServiceAccount 工作流。根据 Argo 文档

当没有提供ServiceAccount时【提交工作流时】,Argo将使用默认的 来自运行它的命名空间的 ServiceAccount,这将 默认情况下几乎总是没有足够的权限。

如果您使用 Argo CLI 提交工作流程,您可以使用

--serviceaccount
指定 ServiceAccount。

如果您使用

kubectl apply
或其他工具来安装工作流,您可以在yaml定义中设置ServiceAccount名称。请参阅文档中的示例,或此缩写示例:

apiVersion: argoproj.io/v1alpha1
kind: Workflow
spec:
  serviceAccountName: some-serviceaccount

为了方便起见,Argo Helm 图表提供了一种创建 ServiceAccount 来运行工作流程的方法。但它实际上并不会“导致”您的工作流程使用该 ServiceAccount。您必须在提交工作流程时指定它。 serviceAccount: create: false # Specifies whether a service account should be created annotations: {} name: "argo-workflow" # Service account which is used to run workflows rbac: create: false # adds Role and RoleBinding for the above specified service account to be able to run workflows



0
投票

workflowDefaults: spec: serviceAccountName: argo-workflow-controller

© www.soinside.com 2019 - 2024. All rights reserved.