Argo Workflow 始终使用默认服务帐户
Argo Workflow always using default serviceaccount
我安装了 Argo Workflow 的默认 helm chart,仅将 init.serviceAccount 配置为我创建的 argo-sa。 (有足够权限的ServiceAccount)
但是,运行 每个 Workflow 都以 serviceaccount Default 运行,我不知道在哪里配置了设置。
根据 Argo Helm Chart 提供的 README,指定 init.serviceAccount
作为我创建的 serviceaccount 应该可以解决问题。
解决方法是修改 Default serviceaccount,但似乎不是一个很好的解决方案。
有什么我理解不正确的吗?提前致谢。
Argo 安装不控制使用哪个 ServiceAccount 工作流。根据 Argo docs,
When no ServiceAccount is provided [when the Workflow is submitted], Argo will use the default
ServiceAccount from the namespace from which it is run, which will
almost always have insufficient privileges by default.
如果您使用的是Argo CLI to submit Workflows,您可以使用--serviceaccount
指定ServiceAccount。
如果您使用 kubectl apply
或其他一些工具来安装 Workflows,您可以 set the ServiceAccount name in the yaml definition. See an example from the documentation,或者这个缩写示例:
apiVersion: argoproj.io/v1alpha1
kind: Workflow
spec:
serviceAccountName: some-serviceaccount
为方便起见,Argo Helm 图表 provides a way to create a 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
我安装了 Argo Workflow 的默认 helm chart,仅将 init.serviceAccount 配置为我创建的 argo-sa。 (有足够权限的ServiceAccount)
但是,运行 每个 Workflow 都以 serviceaccount Default 运行,我不知道在哪里配置了设置。
根据 Argo Helm Chart 提供的 README,指定 init.serviceAccount
作为我创建的 serviceaccount 应该可以解决问题。
解决方法是修改 Default serviceaccount,但似乎不是一个很好的解决方案。
有什么我理解不正确的吗?提前致谢。
Argo 安装不控制使用哪个 ServiceAccount 工作流。根据 Argo docs,
When no ServiceAccount is provided [when the Workflow is submitted], Argo will use the default ServiceAccount from the namespace from which it is run, which will almost always have insufficient privileges by default.
如果您使用的是Argo CLI to submit Workflows,您可以使用--serviceaccount
指定ServiceAccount。
如果您使用 kubectl apply
或其他一些工具来安装 Workflows,您可以 set the ServiceAccount name in the yaml definition. See an example from the documentation,或者这个缩写示例:
apiVersion: argoproj.io/v1alpha1
kind: Workflow
spec:
serviceAccountName: some-serviceaccount
为方便起见,Argo Helm 图表 provides a way to create a 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