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