tekton pipeline 的全局超时时间 不生效的问题

打印 上一主题 下一主题

主题 727|帖子 727|积分 2181

修改全局超时时间

tekton 的 pipeline、task 运行时有时需要设置超时时间,确保会退出,除了在pipeline run、task run上设置 spec.timeouts 外,还可以设置全局的超时时间,通过 default-timeout-minutes 参数,这样一来如果 pipeline run / task run 没有设置超时也会有一个保底的。
官方文档:https://tekton.dev/vault/pipelines-v0.28.2/install/#customizing-basic-execution-parameters
  1. apiVersion: v1
  2. kind: ConfigMap
  3. metadata:
  4.   name: config-defaults
  5.   namespace: tekton-pipelines
  6.   labels:
  7.     app.kubernetes.io/instance: default
  8.     app.kubernetes.io/part-of: tekton-pipelines
  9. data:
  10.   default-service-account: "default"
  11.   # 这里设置为 1 min是为了测试,正常可以设置为10 min
  12.   # 默认的 config-defaults 的配置放在 data/_example 节点里面,需要在 data 节点下直接设置
  13.   default-timeout-minutes: "1"
复制代码
问题出现

修改完了configmap/config-defaultss 后,发现运行起来的 pipeline-run 或者 task-run 依然使用了默认的 60 min (1 h) 作为超时,并没有使用设置的  default-timeout-minutes 作为超时时间。

查看pipeline run 和 task run,发现yaml中timeout也是 60 min (1 h)
以下使用了tekton cli —— tkn, 工具安装方法 https://tekton.dev/docs/cli/
  1. tkn pipelinerun list
  2. tkn pr describe {pipeline-run-instance}
复制代码

分析

复制了网上的各种脚本进行修改,并使用了必杀技(重启),都无法解决问题,最后去看了下dashboard的源码,并做了一下测试,发现只要使用界面上的“重新运行”功能就会导致默认超时时间不生效的问题。

查看了github上的源码,发现里面设置了默认为10 min 超时
https://github.com/tektoncd/dashboard/blob/051c9c9ec7e6e6e881ca0df437dd20b7e1ac2da3/src/containers/CreatePipelineRun/CreatePipelineRun.js#L66
https://github.com/tektoncd/dashboard/blob/9c354e9127f6c9b66d6e6664dadc2d3c05890b6d/src/containers/CreateTaskRun/CreateTaskRun.js#L65

通过网络请求的监听也可以看到,前端设置了超时时间为1h小时,所以默认的超时时间是不生效的
调用dashboard中api 只是转发,实际上还是k8s api,所以这里的 request body 是yaml的内容

结论

设置 default-timeout-minutes 参数是生效的,只是 dashboard 会自己设定一个超时时间为 60min(1h)

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

祗疼妳一个

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表