使用第二个任务和管道扩展你之前第一个CI/CD工作流
正如之前所了解的,使用Tekton,CI/CD工作流程中的每个操作都成为一个步骤(Step),用你指定的容器镜像执行。然后将步骤组织到任务中,在集群中作为Kubernetes pod运行。你可以进一步将任务组织到管道(Pipelines)中,管道可以控制几个任务的执行顺序。
要创建第二个任务,使用Tekton API创建一个Kubernetes对象,其类型为任务(Task)。下面的YAML文件指定了一个具有简单步骤的任务,该任务使用Ubuntu官方镜像来打印一句Goodbye World!。
apiVersion: tekton.dev/v1beta1
kind: Task
metadata:
name: goodbye
spec:
steps:
- name: goodbye
image: ubuntu
script: |
#!/bin/bash
echo "Goodbye World!"
将上述YAML写入一个名为task-goodbye.yaml的文件,并将其应用于你的Kubernetes集群:
kubectl apply -f task-goodbye.yaml
要用Tekton运行这个任务,你需要创建一个TaskRun,这是另一个Kubernetes对象,用于指定任务的运行时间信息。
要查看此 TaskRun 对象,可运行以下 Tekton CLI (tkn) 命令。
tkn task start goodbye --dry-run
运行上述命令后,应显示以下TaskRun定义:
apiVersion: tekton.dev/v1beta1
kind: TaskRun
metadata:
generateName: goodbye-run-
spec:
taskRef:
name: goodbye
要使用上面的TaskRun来启动echo任务,你可以使用tkn或kubectl。
用tkn开始:
tkn task start goodbye
用kubectl开始:
# 使用 tkn 的 --dry-run 选项,将 TaskRun 保存到一个文件中
tkn task start goodbye --dry-run > taskRun-goodbye.yaml
# 创建TaskRun
kubectl create -f taskRun-goodbye.yaml
Tekton 现在将开始运行你的任务。要查看最后一次TaskRun的日志,请运行以下 tkn命令:
tkn taskrun logs --last -f
Task可能需要一些时间才能完成。 当它执行时,它应该显示以下输出:
[goodbye] Goodbye World!
要创建Pipeline,请使用Tekton API创建一个具有Pipeline类型的Kubernetes对象。下面的YAML文件指定了一个Pipeline。
apiVersion: tekton.dev/v1beta1
kind: Pipeline
metadata:
name: hello-goodbye
spec:
tasks:
- name: hello
taskRef:
name: hello
- name: goodbye
runAfter:
- hello
taskRef:
name: goodbye
将上述YAML写入一个名为pipeline-hello-goodbye.yaml的文件,并将其应用于你的Kubernetes集群:
kubectl apply -f pipeline-hello-goodbye.yaml
要用Tekton运行这个pipeline,你需要创建一个pipelineRun,这是另一个Kubernetes对象,用于指定Pipeline的运行时间信息。
要查看这个pipelineRun对象,你可以运行以下Tekton CLI(tkn)命令。
tkn pipeline start hello-goodbye --dry-run
运行上述命令后,应显示以下PipelineRun定义:
apiVersion: tekton.dev/v1beta1
kind: PipelineRun
metadata:
generateName: hello-goodbye-run-
spec:
pipelineRef:
name: hello-goodbye
要使用上面的 pipelineRun 启动 echo Pipeline,可以使用 tkn 或 kubectl。
用 tkn 开始:
tkn pipeline start hello-goodbye
用 kubectl 开始:
# 使用tkn的-dry-run选项将pipelineRun保存到文件中
tkn pipeline start hello-goodbye --dry-run > pipelineRun-hello-goodbye.yaml
# 创建pipelineRun
kubectl create -f pipelineRun-hello-goodbye.yaml
Tekton 现在将开始运行你的Pipeline。要查看pipelineRun的日志,请运行以下 "tkn"命令:
tkn pipelinerun logs --last -f
在你的Pipeline完成之前可能需要一些时间。当它执行时,它应该显示以下输出:
[hello : hello] Hello World!
[goodbye : goodbye] Goodbye World!
