问题描述
我正在尝试通过 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"