问题标签 [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.
tekton - Tekton 任务失败,“绑定了多个 PersistentVolumeClaim”
我正在尝试使用需要访问多个PersistentVolumeClaim
工作区的任务运行 Tekton 管道。当我运行管道时,任务失败并显示消息"more than one PersistentVolumeClaim is bound"
。据我所知,没有什么可以禁止在同一个任务中绑定多个 PersistentVolumeClaim,那么为什么我会收到这个错误,我该如何解决呢?
java - 在 Tekton Hub 的 Tekton Maven 任务中缓存 Maven 依赖项
我们想使用 Maven 构建一个基于 Spring Boot 的项目。我们在 Tekton Hub 上找到了 Maven 任务,并且已经有一个正在运行的管道。在一个缩短的版本中,我们pipeline.yml
看起来像这样:
PipelineRun 定义为:
source-pvc
PersistentVolumeClaim 定义为:
我们的项目正在构建中,但是当我们启动另一个 PipelineRun 时,任务会一遍又一遍地下载项目的所有 Maven 依赖项:
Tekton Hub 的 Maven 任务https://hub.tekton.dev/tekton/task/maven似乎不支持使用缓存。尽管如此,我们如何缓存?
bash - 无法弄清楚如何在我的 Tekton 管道中进行变量替换
所以我不确定这实际上是 Bash 问题还是 Tekton 问题。问题出现在我的 OpenShift (Tekton) 管道中。部署我的应用程序后,我有一个步骤需要检查是否Deployment
已实际创建。
这样做是这样的:
在上面的代码片段中,我硬编码了Deployment
“my-app”的名称。后缀“-foo”是每个Deployment
资源的一部分。当硬编码时,它可以工作,并且我得到了我的Deployment
,如预期的那样。
当我尝试参数化 的名称时Deployment
,我的管道失败并出现以下错误:
所以问题显然是“-foo”后缀没有添加到我的变量中,我不知道如何做到这一点。尝试用大括号替换括号,尝试在整个表达式周围加上双引号,以及其他一些变体。
这是我的变量替换代码:
谁能告诉我做错了什么?
kubernetes - 将 bitbucket 与 Tekton 集成为 k8s basic-auth
我正在尝试将我们的 bitbucket 存储库与 tekton 管道集成。我执行的步骤如下所述。
- 创建 K8s 密钥
- 当我执行 tekton 管道时,在 serviceaccount 中添加了秘密,我得到了以下错误
但是当我以同样的方式集成 github 时,它工作得很好。
请帮我。
kubernetes - Tekton Pipelines:使用已发布的管道 yaml 启用 alpha 功能,而无需存储(和维护)功能标志 ConfigMap
我们想使用Tekton 实验性功能,例如Pipelines In Pipelines 功能。我们已经按照自述文件中的描述安装了该功能,kubectl apply
但最终出现如下错误:
在这个问题中,我们需要在我们的部署中启用 Tekton alpha 功能。在Customizing the Pipelines Controller behavior的 Tekton 文档中,描述了所有功能标志 - 包括Alpha 功能。文档指出,如果我们想使用这些功能,我们应该将字段从enable-api-fields:
更改为。stable
alpha
安装 Tekton Pipelines的推荐方法是使用kubectl apply
远程服务的 yaml 文件:
在里面我们看到ConfigMap
feature-flags
(缩短的):
有没有办法以某种方式即时更改该enable-api-fields
字段,alpha
而无需存储(并从长远来看维护)官方的 Tekton 管道 yaml 文件?
tekton - 是什么导致 Tekton 步骤失败?
步骤成功或失败取决于它们运行的命令或脚本的输出,但我不清楚这究竟是如何工作的。是否有任何输出stderr
导致步骤失败?如果不是,Tekton 如何准确地确定一个步骤是失败还是成功?
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 守护程序启动,或阻止任务连接到它?
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
定义:
查看有关卷绑定的官方文档hostPath
(https://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 文件。
docker-in-docker - 是否可以让边车在 Tekton 管道中的多个任务中持续存在?
Tekton 的内置 sidecar 功能允许您定义将与单个任务一起运行并在任务完成时停止的 sidecar。我关心的特定用例是使用 Docker-in-Docker sidecar 在一个任务中构建映像,然后在单独的任务中将该映像推送到注册表。
kubectl - 在 Tekton 边车中使用 --net=host
我正在创建一个 tekton 项目,该项目将生成 docker 映像,而这些映像又将运行一些 kubectl 命令。这是我通过在 tekton docker:dind 图像和设置中使用边车完成的
但是,其中一项任务失败了,因为它需要在 docker run 示例中具有等效的 --net=host 。
我试图用hostnetwork设置一个podtemplate:True,但是边车的任务无法启动docker
知道我是否可以在任务 yaml 文件中实现 --net=host 。这真的很有帮助。
我与边车的任务片段: