覆盖Tekton全局管道运行超时

jm81lzqq  于 2022-10-06  发布在  Kubernetes
关注(0)|答案(2)|浏览(184)

我有一个问题,我需要同时触发多个管道运行,而运行将花费更长的时间,超过1个小时。默认情况下,管道运行的全局超时为1小时,因此它会失败。管理OpenShift集群的团队不想更改全局超时,所以我必须以某种方式覆盖它。

我使用的资源是EventListener、触发器绑定、触发器模板、管道和管道运行。

我曾尝试为管道任务设置超时,如下所示:

runAfter:
        - fetch-repository
      taskRef:
        kind: ClusterTask
        name: buildah
      timeout: "3h0m0s"

但是,PipelineRun超时似乎具有优先权,因此不起作用。

  • OpenShift版本:4.9.35
  • K8S版本:v1.22.8
  • Tekton似乎是随OpenShift一起安装的,找不到哪个版本,但可能很新。

有什么主意吗?

bsxbgnwa

bsxbgnwa1#

这是OpenShift的一个已知问题,我有一个功能请求与Redhat支持提交关于这一点…已经一年多了.

尽管您提到了使用EventListeners:在这种情况下,您应该能够强制您自己的管道运行超时,从而设置您的TriggerTemplate。

试试这个:

apiVersion: triggers.tekton.dev/v1beta1
kind: TriggerTemplate
metadata:
  name: foo
spec:
  [...]
  resourcetemplates:
  - apiVersion: tekton.dev/v1beta1
    kind: PipelineRun
    metadata:
      generateName: foo-
    spec:
      timeout: 2h30m0s
      [...]

唯一的问题是,你不能从OpenShift控制台使用它们。您需要确保使用您的EventListener,启动该管道(例如:使用cURL、oc插件等),强制执行正确的超时配置。

lstz6jyr

lstz6jyr2#

您可以在管道运行中指定超时:

spec:
  ...
  timeout: 12h0m0s

如果将其设置为0,它将在遇到错误时立即失败。目前,它可以在OpenShift管道上运行,但可能会像在Tekton中那样被弃用(不是完全弃用,只是改变了语法)。

相关问题