首页 > 其他分享 >Tekton Pipelines 基础

Tekton Pipelines 基础

时间:2023-12-12 15:32:23浏览次数:23  
标签:task Pipelines name Tekton when 基础 taskRef tasks params

Pipelines 概述

Pipeline是Tasks的集合,作为持续集成流的一部分,您可以定义并按照特定的执行顺序排列这些Tasks。Pipeline中的每个Tasks在Kubernetes集群上作为Pod执行。您可以配置各种执行条件来满足您的业务需求。

Pipeline使用When表达式

when 表达式

input: 被评估的内容,支持使用静态值或者变量(Parameters或者Results变量)。 e.g. "$(params.image)" or "$(tasks.task1.results.image)" or "$(tasks.task1.results.array-results[1])"。
operator: 比较操作符,仅支持in或notin两个。
values: 由字符串组成的列表,必须定义,且不能使用空值,但允许使用静态值或者变量。e.g. ["$(params.image)"] or ["$(tasks.task1.results.image)"] or ["$(tasks.task1.results.array-results[1])"]

when 表达式示例

tasks:
  - name: first-create-file
    when:
      - input: "$(params.path)"
        operator: in
        values: ["README.md"]
    taskRef:
      name: first-create-file
---
tasks:
  - name: echo-file-exists
    when:
      - input: "$(tasks.check-file.results.exists)"
        operator: in
        values: ["yes"]
    taskRef:
      name: echo-file-exists
---
tasks:
  - name: run-lint
    when:
      - input: "$(workspaces.lint-config.bound)"
        operator: in
        values: ["true"]
    taskRef:
      name: lint-source
---
tasks:
  - name: deploy-in-blue
    when:
      - input: "blue"
        operator: in
        values: ["$(params.deployments[*])"]
    taskRef:
      name: deployment

Pipeline使用runAfter

runAfter 概述

定义Task运行的顺序。

runAfter 示例

workspaces:
- name: source
tasks:
- name: test-app
  taskRef:
    name: make-test
  workspaces:
  - name: source
    workspace: source
- name: build-app
  taskRef:
    name: kaniko-build
  runAfter:
    - test-app          # 在test-app执行完成后再执行build-app。
  workspaces:
  - name: source
    workspace: source

Pipeline使用Finally

Finally 概述

用于在tasks中的各任务执行结束后运行最后的任务。

Finally 使用场景

1. 发送通知
2. 清理资源
3. 终止任务执行
...

Finally 示例

spec:
  finally:
    - name: notification
      displayName: "Notify"
      taskRef:
        name: notification
    - name: notification-using-context-variable
      displayName: "Notification from $(context.pipeline.name)"
      taskRef:
        name: notification

Pipelines 资源清单

apiVersion: tekton.dev/v1
kind: Pipeline
metadata:
  name: pipeline-demo
spec:
  params:
  workspaces:
  results:
  description:
  displayName:
  tasks:
    - name:
      displayName:
      description:
      one rror: continue # 当一个PipelineTask失败时,其余的PipelineTask将被跳过,并且PipelineRun将被声明为失败。如果你想忽略这样的PipelineTask失败并继续执行剩下的PipelineTask,设置onError: continue。
      taskRef:
      taskSpec:
      runAfter:         # 定义各Task执行的顺序
      retries:         # 定义Task失败后重试次数
      timeout:
      params:
      workspaces:
      matrix:          #
      when:             # 使用when表达式来为其添加执行条件        
  finally:             # 定义一个最终任务
    - name:
      displayName:
      description:
      taskRef:
      taskSpec:
      retries:         # 定义Task失败后重试次数
      timeout:
      params:
      workspaces:
      matrix:          #
      when:             # 使用when表达式来为其添加执行条件

Pipelines 示例

apiVersion: tekton.dev/v1
kind: Pipeline
metadata:
  name: pipeline-task-ordering
spec:
  tasks:
    - name: task-a
      taskRef:
        name: logger
      params:
      - name: text
        value: "task-A executed"
    - name: task-b
      taskRef:
        name: logger
      params:
      - name: text
        value: "Executed after task-A"
      runAfter: ["task-a"]
    - name: task-c
      taskRef:
        name: logger
      params:
      - name: text
        value: "Executed after task-A"
      runAfter: ["task-a"]
    - name: task-d
      taskRef:
        name: logger
      params:
      - name: text
        value: "Executed after task-B and task-C"
      runAfter: ["task-b", "task-c"]

参考文档

https://tekton.dev/docs/pipelines/pipelines/



标签:task,Pipelines,name,Tekton,when,基础,taskRef,tasks,params
From: https://blog.51cto.com/wangguishe/8788271

相关文章

  • Tekton TaskRun 基础
    TaskRun概述TaskRun允许您在集群上实例化和执行Task。任务指定执行容器映像的一个或多个Steps,每个容器映像执行特定的构建工作。TaskRun按照指定的顺序执行任务中的Steps,直到所有Steps执行成功或失败。TaskRun配置清单apiVersion:tekton.dev/v1#指定API版本。kind:TaskR......
  • Tekton Tasks 基础
    Tasks概述Task是一系列Step的组合,每个Step主要负责运行特定的构建或交付工具从而完成相关的一次特定事项;Task以Kubernetes集群上Pod运行。Task是名称空间级别的资源。Tasks组成Parameters:是使得Task及Pipeline资源定义出的“模板”更加具有通用性的关键要素之一Steps:具体执行的......
  • Tekton Trigger Interceptors 基础
    Interceptors概述Interceptor是针对特定平台的的事件处理器,在TriggerBinding之前运行。它允许您执行有效负载过滤、验证(使用秘密)、转换、定义和测试触发条件,以及实现其他有用的处理。一旦事件数据通过Interceptor,它就会在将有效负载数据传递到TriggerBinding之前转到Trigger。......
  • 【python基础之装饰器】---装饰器
    title:【python基础之装饰器】---装饰器date:2023-12-1118:54:06updated:2023-12-1214:30:00description:cover:https://home.cnblogs.com/u/dream-ze/【一】什么是装饰器装饰代指为被装饰对象添加新的功能,器代指器具/工具,装饰器与被装饰的对象均可......
  • 【python基础之函数对象和闭包】 --- 函数对象与闭包
    title:【python基础之函数对象和闭包】---函数对象与闭包date:2023-12-1119:20:00updated:2023-12-1119:20:00description:cover:https://home.cnblogs.com/u/dream-ze/【一】函数对象函数对象指的是函数可以被当做数据来处理具体可以分为四......
  • 系统架构设计系列之基础:初探软件架构设计
    前言欢迎来到软件架构设计的世界,这是一次面向有志成为架构师的研发工程师的学习和分享交流的机会。本系列内容将结合理论和实践经验,探讨软件架构的基本知识、设计原则和最佳实践,旨在和大家一起更好地理解软件架构设计的重要性和成为架构师的路径。一、架构的基础我们都知道编......
  • 图的基础概念和深搜广搜序
    有关图的定义图是由若干给定的顶点及连接两顶点的边所构成的图形,这种图形通常用来描述某些事物之间的某种特定关系。顶点用于代表事物,连接两顶点的边则用于表示两个事物间具有这种关系。图论起源于著名的柯尼斯堡七桥问题(下图所示),该问题于1736年被欧拉解决,因此普遍认为欧拉是图......
  • 面试基础复盘
    px、rpx、em、rem、vw、vhpx:px就是pixel的缩写,意味像素。px就是一张图片最小的一个点,一张位图就是无数个这样的点构成的,是web开发中最常用的像素单位。rpx:由微信小程序官方推出的新单位,适用于移动端的uni-app或者微信小程序的开发。可以根据屏幕宽度进行自适应,1rpx实际上等......
  • shell脚本基础学习
    shell脚本基础学习一.shell的解释:shell具备编程的能力shell是一种解释型语言(不需要提前编译,一边执行一边解释,每种解释性语言都有解释器)shell语言支持大部分编程语言都具备的功能(if判断,for循环,变量,数组,函数,加减乘除,逻辑运算)二.shell脚本的规范模板tips:shell脚本的本......
  • cesium.js入门基础教程
    运行环境搭建下载cesium.js从https://cesium.com/downloads/下载cesium.js:在vsCode中建立index.html和index.js,并在index.html中引入index.js:index.html:<!DOCTYPEhtml><htmllang="en"><head><!--Usecorrectcharacterset.-->&......