首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Tekton步骤之间传递变量

在Tekton步骤之间传递变量
EN

Stack Overflow用户
提问于 2021-10-17 14:05:02
回答 2查看 449关注 0票数 0

我正在尝试实现一个基本的Tekton CI管道。管道所做的一切就是: 1)获取源代码;2)构建一个新版本的镜像,并将其推送到镜像注册表。

镜像版本由Tekton步骤生成。镜像是由另一个使用Kaniko的Tekton步骤构建的,如所述的here

我知道使用工作区在Tekton步骤之间传递变量。这意味着我可以将版本写入工作区中的文件。但是在下面的Kaniko构建步骤中,我找不到从文件中读取此版本的方法:

代码语言:javascript
复制
  steps:
    - name: build-and-push
      image: gcr.io/kaniko-project/executor:latest
      # specifying DOCKER_CONFIG is required to allow kaniko to detect docker credential
      env:
        - name: "DOCKER_CONFIG"
          value: "/tekton/home/.docker/"
      command:
        - /kaniko/executor
      args:
        - --dockerfile=$(params.pathToDockerFile)
        - --destination=$(resources.outputs.builtImage.url):<IMAGE-VERSION-NEEDED-HERE>
        - --context=$(params.pathToContext)
        - --build-arg=BASE=alpine:3

应该有一个通用的模式来解决这个问题,但我不确定我是否在Tekton文档中找到了正确的位置。

有谁能提供一些建议吗?

EN

回答 2

Stack Overflow用户

发布于 2021-10-21 20:03:04

这是为了确认我按照@Jonas的建议重新设计了任务的步骤,从而解决了这个问题。

Tekton任务可以有输出,这些输出可以在其他任务中引用。在撰写本文时,Tekton steps似乎还没有这个特性。

有关更多详细信息,请参阅上面@Jonas评论中的链接。

票数 1
EN

Stack Overflow用户

发布于 2021-11-08 10:03:30

Task中的所有步骤共享相同的Pod,因此可以访问作为emptyDir卷实现的共享工作区:

代码语言:javascript
复制
Volumes:
  tekton-internal-workspace:
    Type:       EmptyDir (a temporary directory that shares a pod's lifetime)
    Medium:
    SizeLimit:  <unset>

在步骤之间共享数据的一种常见方法是将数据存储到/workspace中的文件中,然后在下一步中读取该文件。

或者,正如@Jonas所建议的那样,如果您使用不同的Tasks,您可以在第一个Task中编写一个result,并将其提供给Pipeline定义中第二个Task的参数。

以这种方式使用结果会隐式地在两个Tasks之间创建依赖关系,因此Tekton控制器不会调度第二个Task,直到第一个are成功完成并且结果可用。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69605094

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档