问题标签 [tekton-pipelines]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
84 浏览

tekton - Tekton 任务失败,“绑定了多个 PersistentVolumeClaim”

我正在尝试使用需要访问多个PersistentVolumeClaim工作区的任务运行 Tekton 管道。当我运行管道时,任务失败并显示消息"more than one PersistentVolumeClaim is bound"。据我所知,没有什么可以禁止在同一个任务中绑定多个 PersistentVolumeClaim,那么为什么我会收到这个错误,我该如何解决呢?

0 投票
1 回答
214 浏览

java - 在 Tekton Hub 的 Tekton Maven 任务中缓存 Maven 依赖项

我们想使用 Maven 构建一个基于 Spring Boot 的项目。我们在 Tekton Hub 上找到了 Maven 任务,并且已经有一个正在运行的管道。在一个缩短的版本中,我们pipeline.yml看起来像这样:

PipelineRun 定义为:

source-pvcPersistentVolumeClaim 定义为:

我们的项目正在构建中,但是当我们启动另一个 PipelineRun 时,任务会一遍又一遍地下载项目的所有 Maven 依赖项:

在此处输入图像描述

Tekton Hub 的 Maven 任务https://hub.tekton.dev/tekton/task/maven似乎不支持使用缓存。尽管如此,我们如何缓存?

0 投票
1 回答
55 浏览

bash - 无法弄清楚如何在我的 Tekton 管道中进行变量替换

所以我不确定这实际上是 Bash 问题还是 Tekton 问题。问题出现在我的 OpenShift (Tekton) 管道中。部署我的应用程序后,我有一个步骤需要检查是否Deployment已实际创建。

这样做是这样的:

在上面的代码片段中,我硬编码了Deployment“my-app”的名称。后缀“-foo”是每个Deployment资源的一部分。当硬编码时,它可以工作,并且我得到了我的Deployment,如预期的那样。

当我尝试参数化 的名称时Deployment,我的管道失败并出现以下错误:

所以问题显然是“-foo”后缀没有添加到我的变量中,我不知道如何做到这一点。尝试用大括号替换括号,尝试在整个表达式周围加上双引号,以及其他一些变体。

这是我的变量替换代码:

谁能告诉我做错了什么?

0 投票
0 回答
74 浏览

kubernetes - 将 bitbucket 与 Tekton 集成为 k8s basic-auth

我正在尝试将我们的 bitbucket 存储库与 tekton 管道集成。我执行的步骤如下所述。

  1. 创建 K8s 密钥
  2. 当我执行 tekton 管道时,在 serviceaccount 中添加了秘密,我得到了以下错误

但是当我以同样的方式集成 github 时,它工作得很好。

请帮我。

0 投票
1 回答
70 浏览

kubernetes - Tekton Pipelines:使用已发布的管道 yaml 启用 alpha 功能,而无需存储(和维护)功能标志 ConfigMap

我们想使用Tekton 实验性功能,例如Pipelines In Pipelines 功能。我们已经按照自述文件中的描述安装了该功能,kubectl apply但最终出现如下错误:

这个问题中,我们需要在我们的部署中启用 Tekton alpha 功能。在Customizing the Pipelines Controller behavior的 Tekton 文档中,描述了所有功能标志 - 包括Alpha 功能。文档指出,如果我们想使用这些功能,我们应该将字段从enable-api-fields:更改为。stablealpha

安装 Tekton Pipelines的推荐方法是使用kubectl apply远程服务的 yaml 文件:

在里面我们看到ConfigMap feature-flags(缩短的):

有没有办法以某种方式即时更改该enable-api-fields字段,alpha而无需存储(并从长远来看维护)官方的 Tekton 管道 yaml 文件?

0 投票
1 回答
27 浏览

tekton - 是什么导致 Tekton 步骤失败?

步骤成功或失败取决于它们运行的​​命令或脚本的输出,但我不清楚这究竟是如何工作的。是否有任何输出stderr导致步骤失败?如果不是,Tekton 如何准确地确定一个步骤是失败还是成功?

0 投票
1 回答
26 浏览

tekton - Tekton sidecar:docker daemon 无法启动

我有一个 Tekton 管道,可以构建 Docker 映像并将其推送到私有存储库。处理这个的任务使用了一个 DinD sidecar。最初,它工作得很好,但它开始因错误而失败Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?。起初这是一个间歇性错误,但现在每次我尝试运行管道时似乎都会发生这种情况。我试着让它等到它可以连接到守护进程,以防这是一个时间问题,但它最终只是永远等待。什么可能阻止 Docker 守护程序启动,或阻止任务连接到它?

0 投票
1 回答
89 浏览

kubernetes - 将 Tekton Workspace 目录绑定到 VolumeMount

我们有一个 Tekton 管道,我们希望从中运行我们的 ReadyAPI 测试套件。我们使用来自 SmartBear 的官方镜像 ( https://hub.docker.com/r/smartbear/ready-api-soapui-testrunner )。

该镜像要求您将/project容器中的文件夹绑定到 ReadyAPI 测试项目所在的主机目录。在我们的例子中,我们的测试项目位于 TektonWorkspace目录common-workspace/application-foo/tests/application-foo-readyapi-project.xml中。

在本地(使用docker run)运行容器映像时,我只需添加一个参数-v="common-workspace/application-foo/tests/":/project。我不知道如何在 Tekton 中进行此映射Task。这是完整的Task定义:

查看有关卷绑定的官方文档hostPathhttps://kubernetes.io/docs/concepts/storage/volumes/#hostpath),我希望我能做这样的事情,但这由于某种原因不起作用:

那么如何绑定volumeMounts到主机上的实际目录呢?有什么线索吗?

更新: 在 OpenShift 中查看 pod 时,它Task有一个CreateContainerError状态。在事件视图中,这是显示的错误消息:“错误:mkdir common-workspace/application-foo/tests 失败:mkdir common-workspace: operation not allowed”

我不明白为什么它会尝试创建 common-workspace 文件夹,因为它已经存在。我已经验证了使用emptyDir卷类型时整个路径都存在,然后运行ls /workspace/source/common-workspace/application-foo/tests​​. 这将打印出测试项目的 XML 文件。

0 投票
1 回答
26 浏览

docker-in-docker - 是否可以让边车在 Tekton 管道中的多个任务中持续存在?

Tekton 的内置 sidecar 功能允许您定义将与单个任务一起运行并在任务完成时停止的 sidecar。我关心的特定用例是使用 Docker-in-Docker sidecar 在一个任务中构建映像,然后在单独的任务中将该映像推送到注册表。

0 投票
1 回答
46 浏览

kubectl - 在 Tekton 边车中使用 --net=host

我正在创建一个 tekton 项目,该项目将生成 docker 映像,而这些映像又将运行一些 kubectl 命令。这是我通过在 tekton docker:dind 图像和设置中使用边车完成的

但是,其中一项任务失败了,因为它需要在 docker run 示例中具有等效的 --net=host 。

我试图用hostnetwork设置一个podtemplate:True,但是边车的任务无法启动docker

知道我是否可以在任务 yaml 文件中实现 --net=host 。这真的很有帮助。

我与边车的任务片段: