pipelineruns 概述
PipelineRun允许你在集群上实例化和执行Pipeline。一个Pipeline指定一个或多个Tasks,按照期望的执行顺序执行。PipelineRun按照指定的顺序执行Pipeline中的Tasks,直到所有Tasks都成功执行或失败。
PipelineRun会自动为Pipeline中的每个Task创建相应的taskrun。
pipelineruns 资源清单
apiVersion: tekton.dev/v1 # 指定 API 版本。
kind: PipelineRun # 将此资源对象标识为一个PipelineRun对象。
metadata: # 指定唯一标识 PipelineRun资源对象的元数据。例如,一个name.
name: hello
namespace: tekton
generateName: show-run- # 自动生成name后缀
spec: # 指定该资源对象Task的配置信息
workspaces:
params:
timeouts:
taskRunSpecs:
pipelineRef: # 以指定要引用的Pipeline对象的名称
pipelineSpec: # 直接定义要运行的Pipeline的资源配置
taskRunSpecs: # 指定 PipelineRunTaskSpec 列表,允许为每个任务设置 ServiceAccountName、Pod 模板和Metadata。这会覆盖整个 Pipeline 的 Pod 模板集
- pipelineTaskName: # Pipeline.tasks.name
serviceAccountName:
podTemplate:
nodeSelector:
disktype: ssd
podTemplate: # pod 模板信息
schedulerName: volcano
securityContext:
runAsNonRoot: true
runAsUser: 1001
volumes:
- name: my-cache
persistentVolumeClaim:
claimName: my-volume-claim
pipelineruns 示例
apiVersion: tekton.dev/v1
kind: PipelineRun
metadata:
name: test-task-with-serviceaccount-git-ssh
spec:
pipelineRef:
name: source-to-image
taskRunSpecs:
- pipelineTaskName: git-clone
serviceAccountName: gitlab-clone
params:
- name: git-url
value: https://github.com/tektoncd/pipeline.git
workspaces:
- name: codebase
volumeClaimTemplate:
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
storageClassName: nfs-csi
- name: docker-config
secret:
secretName: docker-config
参考文档
https://tekton.dev/docs/pipelines/pipelineruns/