zl程序教程

您现在的位置是:首页 >  其他

当前栏目

使用 Tekton 在 Kubernetes 中编写您的第一个 CI/CD 管道

2023-03-14 22:31:39 时间

创建您自己的 CI/CD 管道

开始使用 Tekton 的最简单方法是编写您自己的简单管道。如果您每天都使用 Kubernetes,您可能会对 YAML 感到满意,这正是 Tekton 管道的定义方式。这是一个克隆代码存储库的简单管道示例。

首先,创建一个名为task.yaml的文件  并在您喜欢的文本编辑器中打开它。该文件定义了您要执行的步骤。在这个例子中,这是克隆一个存储库,所以我命名了步骤克隆。该文件设置了一些环境变量,然后提供了一个简单的 shell 脚本来执行克隆。

接下来是任务。您可以将步骤视为由任务调用的函数,任务设置步骤所需的参数和工作区。

apiVersion : tekton.dev/v1beta1
kind : Task
metadata :
 name : git-clone
spec :
 workspaces :
   - name : output
     description : git repo 将被克隆到支持此工作区的卷上。
 params :
   - name : url
     description :要从中克隆的存储库 URL。
     类型:字符串
   -名称:修订
     描述:要结帐的修订。(分支、标签、sha、ref 等... )
     类型:字符串
     默认值:“”
 步骤:
   -名称:克隆
     图像:“gcr.io/tekton-releases/github.com/tektoncd/pipeline/cmd/git-init :v0.21.0"
     ENV:
       -名称: PARAM_URL
         值: $ ( params.url )
       -名称: PARAM_REVISION
         值: $ ( params.revision )
       -名称:WORKSPACE_OUTPUT_PATH
         值: $ ( workspaces.output.path )
     脚本:|
      #!/usr/bin/env sh
       set -eu

       CHECKOUT_DIR="${WORKSPACE_OUTPUT_PATH}"

       /ko-app/git-init 
         -url="${PARAM_URL}" 
         -revision="${PARAM_REVISION}" 
         - path="${CHECKOUT_DIR}"
       cd "${CHECKOUT_DIR}"
       EXIT_CODE="$?"
       if [ "${EXIT_CODE}" != 0 ] ; then
         exit "${EXIT_CODE}"
       fi
       # 通过阅读自述文件验证克隆是否成功。
       猫 ${CHECKOUT_DIR}/README.

创建名为 的第二个文件 pipeline.yaml,并在您喜欢的文本编辑器中打开它。该文件通过设置重要参数来定义管道,例如可以运行和处理任务的工作区。

apiVersion : tekton.dev/v1beta1
kind :管道
元数据:
 名称: cat-branch-readme
规范:
 参数:
   -名称: repo-url
     类型:字符串
     描述:要从中克隆的 git 存储库 URL。
   - 名称:分支名称
     类型:字符串
     描述:要克隆的 git 分支。
 工作区:
   -名称:共享数据
     描述:|
      这个工作区将接收克隆的 git repo 并传递
       给下一个 Task 以读取 repo 的 README.md 文件。
 任务:
   -名称: fetch-repo
     taskRef:
       名称: git-clone
     工作区:
       -名称:输出
         工作区:共享数据
     参数:
       -名称: url
         值: $ ( params.repo-url )
       -名称:修订
         值:$ ( params.branch-name )

最后,创建一个名为的文件 pipelinerun.yaml 并在您喜欢的文本编辑器中打开它。该文件实际上运行管道。它调用管道中定义的参数(反过来,调用由任务文件定义的任务。)

apiVersion : tekton.dev/v1beta1
样: PipelineRun
元数据:
 名称:混帐克隆检查中取一个分支
规范:
 pipelineRef:
   名称:猫分支自述
 工作区:
   -名称:共享数据
     volumeClaimTemplate:
       规格:
         accessModes :
          - ReadWriteOnce
         资源:
           请求:
             存储: 1Gi
 参数:
   - 名称: repo-url
     值: https : //github.com/tektoncd/pipeline.git
   - 名称:分支名称
     值: release-v0.12.x

在单独的文件中构建您的工作的优点是该 git-clone 任务可重用于多个管道。

例如,假设您要对管道项目进行端到端测试。您可以使用该 git-clone 任务来确保您拥有需要测试的代码的全新副本。