如何编写Tekton Result API调用示例?求协助构造TaskRun查询CURL命令
Tektoncd Result API 查询 TaskRun 结果的 CURL 命令指南
前置操作:端口转发访问 API
如果在集群外访问 Tekton Results API,先通过端口转发暴露服务:
kubectl port-forward service/tekton-results-api-service 8080:8080 -n tekton-pipelines
基础查询示例
查询指定命名空间下所有 TaskRun 结果
curl -X GET "http://localhost:8080/v1/namespaces/<你的命名空间>/taskruns"
替换 <你的命名空间> 为实际的 Kubernetes 命名空间名称。
查询单个 TaskRun 的详细结果
已知 TaskRun 名称时,直接查询其详细执行结果:
curl -X GET "http://localhost:8080/v1/namespaces/<你的命名空间>/taskruns/<TaskRun名称>"
带过滤条件的查询
使用 Google API 风格的过滤语法筛选结果,以下是常用场景:
- 筛选成功的 TaskRun:
curl -X GET "http://localhost:8080/v1/namespaces/<你的命名空间>/taskruns?filter=status.conditions.type%3DSucceeded%20AND%20status.conditions.status%3DTrue"
- 筛选失败的 TaskRun:
curl -X GET "http://localhost:8080/v1/namespaces/<你的命名空间>/taskruns?filter=status.conditions.type%3DSucceeded%20AND%20status.conditions.status%3DFalse"
注意:过滤参数需要做 URL 编码,= 替换为 %3D,空格替换为 %20。
认证处理(若启用 RBAC)
如果集群启用了 RBAC 认证,需要携带服务账户令牌访问:
# 获取 Tekton Results API 服务账户的认证令牌 TOKEN=$(kubectl get secrets -n tekton-pipelines -o jsonpath="{.items[?(@.metadata.annotations['kubernetes\.io/service-account\.name']=='tekton-results-api')].data.token}" | base64 --decode) # 带令牌查询 curl -X GET "http://localhost:8080/v1/namespaces/<你的命名空间>/taskruns" -H "Authorization: Bearer $TOKEN"
内容的提问来源于stack exchange,提问作者Zsolti Vagyok
相关产品推荐
相关产品推荐

