通过 http 访问 argo workflow archive 导致权限被拒绝错误

Accessing argo workflow archive via http leads to permission denied error

我正在尝试通过 REST API 访问 Argo 工作流存档。 documentation 声明我需要创建一个角色和一个令牌,所以我就是这样做的。可以像这样创建具有最小权限的角色:

kubectl create role jenkins --verb=list,update --resource=workflows.argoproj.io

事实上,我现在可以使用 curl http://localhost:2746/api/v1/workflows/argo -H "Authorization: $ARGO_TOKEN" 这样的命令访问 argo 服务器。 但是,似乎需要更多权限才能访问 /api/v1/archived-workflows 等端点,因为我得到的只是:

{
  "code": 7,
  "message": "permission denied"
}

想必我需要在kubectl create role命令中指定其他动词and/or资源,但不知道是哪些,也找不到相关文档。有什么提示吗?

看起来根据文档创建的 role/serviceaccount/rolebinding 仅授予在 argo 命名空间(无论是否存档)中列出工作流的权限。

可以像这样为存档指定命名空间:

curl http://localhost:2746/api/v1/archived-workflows?listOptions.fieldSelector=metadata.namespace=argo -H "Authorization: $ARGO_TOKEN"