通过 http 访问 argo 工作流存档导致权限被拒绝错误

问题描述

我正在尝试通过 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 命令中指定其他动词和/或资源,但我不知道是哪些,也找不到相关文档。有什么提示吗?

解决方法

看起来根据文档创建的角色/服务帐户/角色绑定仅授予在 argo 命名空间(无论是否存档)中列出工作流的权限。

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

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

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...