使用第二个任务和管道扩展你之前第一个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!