推广 热搜: 京东  联通  iphone11  摄像头  企业存储  iPhone  XSKY  京东智能采购  网络安全  自动驾驶 

一篇带你创建 Tekton 流水线

   日期:2021-06-20     来源:51cto    作者:itcg    浏览:475    我要评论    

政府采购

前面我们创建的两个任务 test 和 build-and-push 都已经完成了,我们还可以创建一个流水线来将这两个任务组织起来,形成一个流水线,这里就是我们要使用的 Pipeline 这个 CRD 对象。

创建流水线

比如我们这里的流水线流程为先运行 test 任务,如果通过了再执行后面的 build-and-push 这个任务,那么我们可以创建一个名为 test-pipeline.yaml 的资源对象,内容如下所示:

# test-pipeline.yaml apiVersion: tekton.dev/v1beta1 kind: Pipeline metadata:   name: test-pipeline spec:   resources:  # 为 Tasks 提供输入和输出资源声明     - name: demo-git       type: git     - name: harbor-image       type: image   tasks:  # 添加task到流水线中     # 运行应用测试     - name: test       taskRef:         name: test       resources:         inputs:           - name: repo # Task 输入名称             resource: demo-git # Pipeline 资源名称     # 构建并推送 Docker 镜像     - name: build-and-push       taskRef:         name: build-and-push       runAfter:       - test # 测试任务执行之后       resources:         inputs:         - name: repo  # 指定输入的git仓库资源           resource: demo-git         outputs:  # 指定输出的镜像资源         - name: builtImage           resource: harbor-image 

首先我们需要定义流水线需要哪些资源,可以是输入或者输出的资源,在这里我们只有一个输入,那就是命名为 repo 的应用程序源码的 GitHub 仓库。接下来定义任务,每个任务都通过 taskRef 进行引用,并传递任务需要的输入参数。

同样直接创建这个资源对象即可:

$ kubectl apply -f test-pipeline.yaml pipeline.tekton.dev/test-pipeline created 

前面我们提到过和通过创建 TaskRun 去触发 Task 任务类似,我们可以通过创建一个 PipelineRun 对象来运行流水线。这里我们创建一个名为 test-pipelinerun.yaml 的 PipelineRun 对象来运行流水线,文件内容如下所示:

apiVersion: tekton.dev/v1beta1 kind: PipelineRun metadata:   name: test-pipelinerun spec:   serviceAccountName: build-sa   pipelineRef:     name: test-pipeline   resources:   - name: demo-git  # 指定输入的git仓库资源     resourceRef:       name: demo-git   - name: harbor-image  # 指定输出的镜像资源     resourceRef:       name: harbor-image 

定义方式和 TaskRun 几乎一样,通过 serviceAccountName 属性指定 ServiceAccount 对象,pipelineRef 关联流水线对象。同样直接创建这个资源,创建后就会触发我们的流水线任务了:

$ kubectl apply -f test-pipelinerun.yaml pipelinerun.tekton.dev/test-pipelinerun created $ github kubectl get pods | grep test-pipelinerun test-pipelinerun-build-and-push-62g65-pod-6jqqf   0/4     Init:1/2    0          3s test-pipelinerun-test-c4r9m-pod-j7jjd             0/2     Completed   0          12s $ tkn pipelinerun describe test-pipelinerun Name:              test-pipelinerun Namespace:         default Pipeline Ref:      test-pipeline Service Account:   build-sa Timeout:           1h0m0s Labels:  tekton.dev/pipeline=test-pipeline  

 
反对 0举报 0 收藏 0 打赏 0评论 0
 
更多>同类资讯
0相关评论

头条阅读
推荐图文
相关资讯
网站首页  |  物流配送  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  RSS订阅  |  违规举报  |  京ICP备14047533号-2
Processed in 0.216 second(s), 11 queries, Memory 1.49 M