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

Tekton Pipelines 基础

时间:2023-12-04 16:14:53浏览次数:28  
标签: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://www.cnblogs.com/wangguishe/p/17875189.html

相关文章

  • Tekton 基础
    Tekton概述Tekton是用于构建CI/CD系统的云原生解决方案。它由TektonPipelines(提供构建块)和支持组件(例如TektonCLI和TektonCatalog)组成,使Tekton成为一个完整的生态系统。Tekton是Linux基金会项目CD基金会的一部分。Tekton作为Kubernetes集群上的扩展安装和运......
  • 软件测试/人工智能|Python 变量解析:从基础概念到内存地址探究
    变量什么是变量?变量是在程序中用于存储数据的名称。它们可以存储各种类型的数据,比如数字、文本、列表、字典等等。变量类型在介绍变量时,可以提及Python中常见的变量类型,例如整数、浮点数、字符串、布尔值、列表、元组、字典等。如下所示:a=1b='muller'c='123'd=......
  • Tekton TaskRun 基础
    TaskRun概述TaskRun允许您在集群上实例化和执行Task。任务指定执行容器映像的一个或多个Steps,每个容器映像执行特定的构建工作。TaskRun按照指定的顺序执行任务中的Steps,直到所有Steps执行成功或失败。TaskRun配置清单apiVersion:tekton.dev/v1#指定API版本。kind:T......
  • Java零基础-if条件语句
    前言条件语句是编程语言中最基础也是最常用的语句之一,对于初学者来说,掌握好条件语句是学习编程的第一步。本文将以Java开发语言为例,详细介绍Java中的if条件语句及其应用场景。摘要本文主要包含以下内容:Java中的if条件语句的概念和语法格式if条件语句的源代码解析if条件语句......
  • 3.计算机硬件和基础架构
    现在的计算机和移动设备都遵循冯诺依曼架构冯诺依曼架构:输入设备:键盘,鼠标,触屏(CPU)运算器+控制器:运算器:负责运算控制器:负责控制语句(顺序,循环,条件)输出设备:显示屏,打印机内部存储器:内存条外部存储器:硬......
  • 头歌—密码学基础
    第1关:哈希函数题目任务描述本关任务:利用哈希算法统计每个字符串出现的个数。相关知识为了完成本关任务,你需要掌握:1.密码学哈希函数的概念及特性,2.安全哈希算法。密码学哈希函数的概念及特性我们需要理解的第一个密码学的基础知识是密码学哈希函数,哈希函数是一个数学函数,具......
  • Python基础 continue; pass; break;
    在Python中,pass、continue和break都是在循环中使用的控制语句,但它们的作用是不同的。pass是一个空操作语句,它的作用是保持程序的控制流程,不做任何事情。当你在编写代码时,如果你需要一个语句块,但你还没有决定在里面放什么,你可以使用pass。例如,在创建一个空的类或者函数时,你可能会使......
  • 2023-2024-1 20231413 《计算机基础与程序设计》第十周学习总结
    2023-2024-120231413《计算机基础与程序设计》第十周学习总结1.作业信息班级:2023-2024-1-计算机基础与程序设计作业要求:2023-2024-1《计算机基础与程序设计》教学进程目标:自学教材:计算机科学概论第12、13、14章并完成云班课测试《C语言程序设计》第9章并完成云班课测试......
  • Restart Study MySQL-01数据库概述(基础)
    C(Chapter)C-01.数据库概述1.为什么要用数据库持久化(persistence):把数据保存到可掉电式存储设备(硬盘)中以供之后使用。大多数情况下,特别是企业应用,数据持久化是将内存中的数据保存到硬盘上加以"固化",而持久化的实现过程大多使用各种关系数据库来完成。持久化的主要作用是将......
  • 2023-2024-1 20231309 《计算机基础与程序设计》第十周学习总结
    2023-2024-120231309《计算机基础与程序设计》第十周学习总结作业信息这个作业属于哪个课程2023-2024-1-计算机基础与程序设计这个作业要求在哪里2023-2024-1计算机基础与程序设计第十周作业这个作业的目标作业正文2023-2024-120231309《计算机基础与程......