- 云原生
- CI/CD
- DevOps
- 后端
【免费下载链接】pipeline
A cloud-native Pipeline resource.
导读:本文以 Tekton Pipeline 的 API 参考文档为核心,系统梳理云原生流水线中
Pipeline、Task、PipelineRun、TaskRun、Run/CustomRun、ResolutionRequest、StepAction与VerificationPolicy等核心资源的类型定义、字段语义与版本演进。你将掌握tekton.dev与resolution.tekton.dev两个 API 组共 6 个包的资源结构、参数/结果/工作区/超时等关键字段的默认值与校验规则,并能基于仓库中的源码与 CRD 文件准确编写与阅读 Pipeline 清单。
一、API 包总览:六个版本化包的职责划分
Tekton Pipeline 的 API 被划分为两个 API 组(Group),并在各自组内按稳定性提供多个版本。文档中给出的完整包清单如下:
| 包(Package) | API 组 | 主要资源 |
|---|---|---|
resolution.tekton.dev/v1alpha1 | resolution | ResolutionRequest |
resolution.tekton.dev/v1beta1 | resolution | ResolutionRequest |
tekton.dev/unversioned | tekton | Volumes(Pod 卷的非版本化配置) |
tekton.dev/v1 | tekton | Pipeline、PipelineRun、Task、TaskRun |
tekton.dev/v1alpha1 | tekton | PipelineResource(废弃)、Run、StepAction、VerificationPolicy |
tekton.dev/v1beta1 | tekton | CustomRun、Pipeline、PipelineRun、StepAction、Task、TaskRun |
从源码结构看,该仓库在 pkg/apis/pipeline/v1、pkg/apis/pipeline/v1beta1、pkg/apis/pipeline/v1alpha1、pkg/apis/resolution/v1beta1 与 pkg/apis/resolution/v1alpha1 目录中分别维护各版本的 Go 类型定义,并通过 pkg/apis/pipeline/register.go 与 pkg/apis/resolution/register.go 完成 Scheme 注册。CRD 清单位于 config/300-crds 目录(如 300-pipeline.yaml、300-task.yaml、300-resolutionrequest.yaml)。
关键版本策略:
tekton.dev/v1是稳定版本,仓库中的Pipeline、Task、PipelineRun、TaskRun定义标注了+kubebuilder:storageversion,即作为存储版本使用;tekton.dev/v1beta1中的同名资源已标记 Deprecated(如Deprecated: Please use v1.Pipeline instead.),保留仅为兼容旧客户端;tekton.dev/v1alpha1中的PipelineResource已废弃(Deprecated: Unused, preserved only for backwards compatibility),Run已被 v1beta1 的CustomRun取代;resolution.tekton.dev/v1beta1是 ResolutionRequest 的存储版本(见 pkg/apis/resolution/v1beta1/resolution_request_types.go 中+kubebuilder:storageversion标注)。
二、ResolutionRequest:远程资源解析请求的类型定义
ResolutionRequest是一个用于“请求某个 Tekton 资源(如 pipeline.yaml)内容”的对象,其文档定义同时存在于resolution.tekton.dev/v1alpha1与resolution.tekton.dev/v1beta1两个版本中。
2.1 顶层对象
apiVersion: resolution.tekton.dev/v1beta1 # 或 v1alpha1 kind: ResolutionRequest metadata: # 复用 Kubernetes ObjectMeta name: my-resolution namespace: my-namespace spec: # ResolutionRequestSpec,可选 params: [] url: "" # 仅 v1beta1 提供,alpha 稳定性级别 status: # ResolutionRequestStatus,可选 data: "" refSource: {}字段说明:
| 字段 | 类型 | 说明 |
|---|---|---|
apiVersion | string | resolution.tekton.dev/v1alpha1或resolution.tekton.dev/v1beta1 |
kind | string | 固定为ResolutionRequest |
metadata | ObjectMeta | 遵循 Kubernetes API 规范 |
spec | ResolutionRequestSpec | 请求部分的信息 |
status | ResolutionRequestStatus | 请求状态,最终包含被解析资源的内容 |
2.2 ResolutionRequestSpec:两版本的关键差异
- v1alpha1:仅一个字段
params,类型为object (keys:string, values:string),即“运行时属性”,传给 resolver 以确定如何解析被请求的资源,例如仓库 URL、commit SHA、文件路径、认证类型等。 - v1beta1:
params的类型升级为[Param](#param)数组(复用 tekton 的Param结构,见 pkg/apis/pipeline/v1/param_types.go),并新增url字段——运行时传给 resolver 的 URL。文档明确标注该字段目前处于ALPHA 稳定性级别,受 alpha API 兼容性策略约束(对应仓库 api_compatibility_policy.md)。
源码佐证:在 pkg/apis/resolution/v1beta1/resolution_request_types.go 中,ResolutionRequestSpec.Params的类型正是[]pipelinev1.Param,并新增了URL string字段。
2.3 ResolutionRequestStatus 与 StatusFields
ResolutionRequestStatus内嵌了ResolutionRequestStatusFields,其字段包括:
| 字段 | 类型 | 说明 |
|---|---|---|
observedGeneration | integer | 控制器最后处理的资源 Generation |
conditions | Conditions | 资源当前状态的最新可观测信息 |
annotations | object | 由 reconciler 向外传达的附加状态信息 |
data | string | 被请求资源的解析内容,内联在该对象的字符串表示中 |
source | RefSource | v1beta1 已废弃,改用 RefSource |
refSource | RefSource | 远程数据的来源引用,记录 url、digest 与 entrypoint |
其中RefSource的字段为:
uri:构建定义来源的标识,如https://github.com/tektoncd/catalog;digest:URI 指定内容的密码学摘要集合,如{"sha1": "f99d13e554ffcb696dee719fa85b695cb5b0f428"};entryPoint:构建的入口点,通常是构建定义文件的路径或文件内目标标签,如task/git-clone/0.10/git-clone.yaml。
实用提示:ResolutionRequest 与
resolver机制配合使用。在PipelineRef/TaskRef中可以通过ResolverRef指定resolver: git等名称并传参,从而从 Git 仓库、OCI Bundle、Hub 等远程位置拉取 Pipeline 或 Task 定义。详见仓库文档 resolution.md、git-resolver.md 与 tekton-bundle-contracts.md。
三、tekton.dev/v1:稳定版核心资源
3.1 Pipeline 与 PipelineSpec
Pipeline描述要执行的一组 Tasks,以及上游 Task 输出如何作为下游 Task 输入。顶层字段为apiVersion: tekton.dev/v1、kind: Pipeline、metadata、spec。
PipelineSpec(见 pkg/apis/pipeline/v1/pipeline_types.go)字段:
| 字段 | 类型 | 说明 |
|---|---|---|
displayName | string | 面向 UI 的展示名,可选 |
description | string | 面向 UI 的描述,可选 |
tasks | PipelineTask 数组 | 声明 Pipeline 运行时的 Task 图 |
params | ParamSpecs | 运行 Pipeline 时必须提供的输入参数声明 |
workspaces | PipelineWorkspaceDeclaration 数组 | 期望由 PipelineRun 提供的一组命名工作区 |
results | PipelineResult 数组 | Pipeline 运行后可输出的值 |
finally | PipelineTask 数组 | 在所有 tasks 成功结束、或 Pipeline 因失败即将结束前执行的任务列表 |
PipelineResult由name、type(取值string/array/object,默认string,其中 array 与 object 为 alpha 特性)、description与value(从底层步骤取值表达式)组成。
PipelineTask是 Pipeline 的执行单元,关键字段包括:
name:任务在 Pipeline 上下文中的名称,与from、runAfter一起决定执行顺序;taskRef/taskSpec:引用已有 Task 或内联定义 Task(taskSpec可通过disable-inline-spec特性开关禁用);when:WhenExpressions 守卫表达式,全部求值为 true 才执行;retries:Task 失败(ConditionSucceeded 为 False)时的重试次数;runAfter:强制执行顺序的任务名列表;params/matrix:传入参数与基于数组参数扇出任务的 Matrix 声明;workspaces:Pipeline 工作区到 Task 工作区的映射;timeout:TaskRun 超时,默认 1 小时,格式遵循 Go 的ParseDuration(如1h30m);pipelineRef/pipelineSpec:alpha 字段,需将enable-api-fields特性开关设为alpha,用于将嵌套 Pipeline 作为子 PipelineRun 执行;onError:continue(PipelineTask 失败后继续执行 DAG 其余部分)或stopAndFail(失败即停止并失败整个 PipelineRun)。
3.2 PipelineRun 与 PipelineRunSpec
PipelineRun代表一次 Pipeline 执行:它向 Pipeline 提供参数等输入,并捕获 Task 执行的操作属性(如 service account、tolerations)。创建 PipelineRun 会为引用的 Pipeline 中的 Tasks 创建 TaskRuns。
PipelineRunSpec字段:
| 字段 | 类型 | 说明 |
|---|---|---|
pipelineRef | PipelineRef | 引用具体 Pipeline 实例 |
pipelineSpec | PipelineSpec | 内联 Pipeline 定义(可由disable-inline-spec禁用) |
params | Params | 参数名与值列表 |
status | PipelineRunSpecStatus | 用于取消 pipelinerun 等 |
timeouts | TimeoutFields | Pipeline 级超时,见下文 |
taskRunTemplate | PipelineTaskRunTemplate | 应用于所有 Task 的运行模板(podTemplate、serviceAccountName) |
workspaces | WorkspaceBinding 数组 | 与 Pipeline 声明匹配的工作区绑定 |
taskRunSpecs | PipelineTaskRunSpec 数组 | 针对具体 Task 的运行时配置 |
managedBy | string | 指明负责调和此资源的控制器;未设置或为tekton.dev/pipeline时由默认 Tekton 控制器管理;不可变字段 |
TimeoutFields 粒度超时(注意约束Timeouts.pipeline >= Timeouts.tasks + Timeouts.finally):
| 字段 | 说明 |
|---|---|
pipeline | 整个 Pipeline 执行的最大允许时长,tasks 与 finally 各自超时之和不得超过该值 |
tasks | Pipeline 的 tasks 阶段最大允许时长 |
finally | Pipeline 的 finally 阶段最大允许时长 |
PipelineRunStatus包含observedGeneration、conditions、annotations、startTime、completionTime、results(PipelineRunResult 数组)、pipelineSpec(实例化运行时使用的确切 spec)、skippedTasks、childReferences(子 TaskRun/Run 的名称、PipelineTask 名与 API 版本/类型)、finallyStartTime(所有非 finally 任务完成、仅执行 finally 任务的时间点)、provenance(软件工件构建方式的关键认证元数据,供 Tekton Chains 采集)与spanContext(链路追踪 span 上下文)。
其中ChildStatusReference用于指向 PipelineRun 内各 TaskRun 与 Run 的状态,字段为name、displayName、pipelineTaskName与whenExpressions;SkippedTask记录因 when 表达式求值为 false 而跳过的任务及其SkippingReason。
SkippingReason 完整取值表(用于诊断任务为何被跳过):
| Reason 展示文本 | 含义 |
|---|---|
| When Expressions evaluated to false | when 表达式至少一个求值为 false |
| Parent Tasks were skipped | 父任务被跳过 |
| PipelineRun was stopping | PipelineRun 正在停止 |
| PipelineRun was gracefully cancelled | PipelineRun 被优雅取消 |
| PipelineRun was gracefully stopped | PipelineRun 被优雅停止 |
| Results were missing | 缺少必要的结果 |
| PipelineRun timeout has been reached | 超过整体超时 |
| PipelineRun Tasks timeout has been reached | 超过 Timeouts.Tasks |
| PipelineRun Finally timeout has been reached | 超过 Timeouts.Finally |
| Matrix Parameters have an empty array | Matrix 参数包含空数组 |
| None | 任务未被跳过 |
3.3 Task、TaskSpec 与 Step
Task表示按顺序执行的一组步骤(steps),运行时由提供输入参数与资源的 TaskRun 触发。
TaskSpec字段:
| 字段 | 类型 | 说明 |
|---|---|---|
params | ParamSpecs | 运行 Task 所需的输入参数,除非声明了默认值,否则必须在 TaskRun 中提供 |
displayName/description | string | UI 展示信息 |
steps | Step 数组 | 构建步骤,顺序执行,源码挂载于/workspace |
volumes | Volumes | 可供步骤挂载的卷集合(对应 Pod.spec.volumes) |
stepTemplate | StepTemplate | 作为所有 step 容器基础的模板 |
sidecars | Sidecar 数组 | 与 step 容器并行运行,在 steps 之前开始、完成后结束 |
workspaces | WorkspaceDeclaration 数组 | 该 Task 需要的卷 |
results | TaskResult 数组 | 该 Task 可输出的值 |
Step 字段(v1 稳定版):name、displayName、image、command(entrypoint 数组,不经过 shell 执行)、args、workingDir、envFrom、env、computeResources、volumeMounts、volumeDevices、imagePullPolicy(Always/Never/IfNotPresent,:latest默认 Always,否则 IfNotPresent)、securityContext、script(可执行文件内容,非空时不能同时有 command,args 会传给脚本)、timeout(Step 超时,默认永不超时)、workspaces(alpha 字段,声明独占访问的 Task 工作区)、onError(continue/stopAndFail)、stdoutConfig/stderrConfig(StepOutputConfig,可将 stdout/stderr 复制到容器本地文件系统的path)、ref(引用已有 StepAction)、params、results(StepResult 数组,内联 Step 时可写入$(step.results.resultName.path);引用 StepAction 时不能使用,改用 StepAction 声明的结果)、when(StepWhenExpressions)。
Sidecar 与 Step 的差异:Sidecar 拥有与 Step 几乎相同的数据结构,但没有超时能力,另含ports、livenessProbe、readinessProbe、startupProbe、lifecycle、stdin、stdinOnce、tty等容器级字段。
ParamSpec / ParamType / ParamValue:参数支持三种类型string(默认)、array、object;ParamSpec支持default(未提供输入值时的默认值)与enum(允许值的枚举,设置后执行输入校验,未设置则不校验);properties用于支撑 key-value 对象的 JSON Schema 属性定义。ParamValue在 JSON 反序列化时可同时接受单个字符串或字符串数组。
3.4 TaskRun 与 TaskRunSpec
TaskRun代表单次 Task 执行,是 Task 中步骤实际运行的方式。
TaskRunSpec字段:debug(TaskRunDebug 断点配置:breakpoints.onFailure可在步骤失败时暂停、beforeSteps指定暂停前的步骤列表)、params、serviceAccountName、taskRef/taskSpec(二者至多指定一个)、status(取消 TaskRun)、statusMessage、retries(失败重试次数)、timeout(单次重试尝试超时,默认 1 小时)、podTemplate、workspaces、stepSpecs/sidecarSpecs(alpha 特性,按名称覆盖步骤/边车的 computeResources)、computeResources、managedBy(不可变)。
TaskRunStatus的字段包括:podName(执行步骤的 Pod 名)、startTime、completionTime、steps(StepState 数组,报告各 step 容器的 waiting/running/terminated 状态与 results、provenance、inputs/outputs 工件)、retriesStatus(重试历史,用于留存失败记录)、results(TaskRunResult 数组)、artifacts(输入输出工件集合,inputs/outputs各为 Artifact 数组,Artifact 含name、values(digest 与 uri)与buildOutput标记)、sidecars、taskSpec(实例化时反引用后的确切 spec)、provenance、spanContext。
3.5 工作区(Workspace)体系
WorkspaceDeclaration(Task 声明):name、description、mountPath(覆盖挂载目录)、readOnly(默认 false 可写)、optional(默认 false 即必需);PipelineWorkspaceDeclaration(Pipeline 声明):name、description、optional;WorkspaceBinding(运行期绑定):name、subPath、volumeClaimTemplate(控制器为每个 PipelineRun 创建唯一 PVC)、persistentVolumeClaim、emptyDir、configMap、secret、projected、csi(后两者二选一约束适用于 PVC 与 emptyDir);WorkspacePipelineTaskBinding(Pipeline 到 Task 的映射):name(Task 声明名)、workspace(Pipeline 声明名)、subPath;WorkspaceUsage(Step/Sidecar 独占访问):name、mountPath(覆盖 Task 声明中的 mountPath)。
四、tekton.dev/v1beta1:过渡版本与 CustomRun
tekton.dev/v1beta1包中的Pipeline、PipelineRun、Task、TaskRun均标注Deprecated: Please use v1.* instead.,字段与 v1 基本一致,但保留了以下 v1 中已移除或改名的历史字段:
PipelineRef.bundle/TaskRef.bundle:Tekton Bundle URL 引用,已废弃,改用ResolverRef+ bundles resolver,字段保留仅为 Go 客户端向后兼容,不再使用;PipelineRunSpec.resources/timeout:resources为废弃的 PipelineResource 绑定;timeout已废弃,改用timeouts.pipeline;PipelineRunStatus.taskRuns/runs(map 形式):自 v0.45.0 起不再填充,改用childReferences;TaskRunSpec.stepOverrides/sidecarOverrides:对应 v1 的stepSpecs/sidecarSpecs;TaskSpec.resources(TaskResources):废弃的 PipelineResource 声明;Provenance.configSource:废弃,改用refSource。
CustomRun 是 v1beta1 包新增的核心资源,用于执行自定义 Task(Custom Task):
CustomRunSpec字段:customRef(TaskRef)、customSpec(EmbeddedCustomRunSpec 内嵌自定义任务定义)、params、status(取消)、statusMessage、retries(向自定义任务传播重试计数)、serviceAccountName、timeout(自定义任务超时)、workspaces。
CustomRunStatus状态消息常量包括:CustomRun cancelled as the PipelineRun it belongs to has been cancelled.与CustomRun cancelled as the PipelineRun it belongs to has timed out.。
历史对应:v1alpha1 中的
Run表示单次自定义任务执行,其RunSpec字段(ref、spec、params、status、statusMessage、retries、serviceAccountName、podTemplate、timeout、workspaces)与 CustomRun 高度相似,CustomRun 是其演进版本。迁移指南见 migrating-v1alpha1.Run-to-v1beta1.CustomRun.md。
五、tekton.dev/v1alpha1:遗留资源与安全/复用能力
该包包含 4 种资源类型:
5.1 PipelineResource(废弃)
PipelineResource描述 Task 的输入或输出资源,文档明确标注Deprecated: Unused, preserved only for backwards compatibility,无控制器为其工作。PipelineResourceSpec字段为description、type、params(ResourceParam)、secrets(SecretParam)。
5.2 Run(废弃,被 CustomRun 取代)
如前所述,Run用于执行自定义任务,RunSpecStatus仅定义RunCancelled一个取值。
5.3 StepAction:步骤复用单元
StepAction表示 Step 的可执行组件,Step 只能从集群内或通过远程解析引用它。StepActionSpec字段:description、image、command、args、env、script(非空时不能有 command,args 传给脚本)、workingDir、params(ParamSpecs,除非声明默认值否则需在 Steps 中提供)、results(StepResult 数组)、securityContext(StepAction 中的设置优先于 Task 中的值)、volumeMounts。
在Step.ref(Ref 结构)中可以引用 StepAction:Ref字段为name与ResolverRef(支持从 Git 等远程位置引用)。StepAction的 v1beta1 版本存在于tekton.dev/v1beta1包中。实践示例见 examples/v1/taskruns/stepaction.yaml 与 examples/v1/taskruns/stepaction-params.yaml。
5.4 VerificationPolicy:资源签名验证策略
VerificationPolicy定义验证 Tekton 资源的规则,可将“资源来源”映射到“公钥列表”,在验证资源时使用对应的公钥。
VerificationPolicySpec字段:
| 字段 | 类型 | 说明 |
|---|---|---|
resources | ResourcePattern 数组 | 受该策略约束的资源来源模式,正则匹配。例如 git resolver 场景:https://github.com/tektoncd/catalog.git |
authorities | Authority 数组 | 签名验证规则 |
mode | ModeType | enforce(默认,验证失败则使 taskrun/pipelinerun 失败)或warn(仅记录告警,不失败) |
ResourcePattern.pattern的文档示例:GitHub 资源https://github.com/tektoncd/catalog.git、https://github.com/tektoncd/*;Bundle 资源gcr.io/tekton-releases/catalog/upstream/git-clone、gcr.io/tekton-releases/catalog/upstream/*;Hub 资源https://artifacthub.io/*。
Authority包含name与key(KeyRef);KeyRef支持secretRef(引用存有密钥的 Secret)、data(内联公钥)、kms(KMS URL,目前尚未支持)与hashAlgorithm(默认sha256,可选sha224/sha256/sha384/sha512)。
深入阅读:该机制与 pkg/trustedresources 包(含 verifier 与 verify 逻辑)及 docs/trusted-resources.md 配合使用;CRD 定义见 config/300-crds/300-verificationpolicy.yaml,密钥测试数据位于 test/trustedresources-keys。
六、tekton.dev/unversioned:非版本化的 Volumes
该包仅包含Volumes类型,其底层类型为 Kubernetes 的Volume(API v1),被EmbeddedTask与TaskSpec引用。它完整继承了 Kubernetes 的卷类型体系,包括hostPath、emptyDir、secret、configMap、persistentVolumeClaim、nfs、projected、csi、ephemeral、image等。
值得关注的是较新的卷类型语义:
ephemeral:生命周期与 Pod 绑定,适用于仅 Pod 运行期间需要的卷、需要快照恢复/容量跟踪、由 storage class 指定驱动并支持动态供应的场景;Pod 同时可以使用临时卷与持久卷;image:将 OCI 对象(容器镜像或工件)拉取并挂载到 kubelet 主机,按Always/Never/IfNotPresent拉取策略解析,只读(ro)且不可执行(noexec)挂载;1.33 之前不支持 subPath 挂载。
七、跨版本通用类型速查
以下类型在多个版本包中重复出现,字段语义保持一致:
- Param / ParamSpec / ParamValue / Params / ParamType / ParamSpecs:参数体系,类型为
string/array/object; - ResultsType:区分
string、array、object结果类型(注意与用于判定 RunResult 是否来自 task result 的 ResultType 不同); - WhenExpression / WhenExpressions:字段
input、operator、values(非空数组)、cel(CEL 表达式,可选),所有表达式需为 true 才执行守卫任务; - Provenance / RefSource / ConfigSource:远程构建定义的来源元数据,v1beta1 中
ConfigSource已废弃,统一为RefSource(uri、digest、entryPoint),Provenance.featureFlags记录运行期使用的特性开关; - TimeoutFields:Pipeline 级
pipeline/tasks/finally三档超时; - OnErrorType(Step 级):
stopAndFail/continue; - PipelineTaskOnErrorType(PipelineTask 级):
stopAndFail/continue; - Artifact / ArtifactValue / Artifacts:工件输入输出记录,含
digest(按 Algorithm 映射)与uri; - RetriesStatus:重试历史,内联
TaskRunStatusFields且不再重复记录时间。
八、如何在仓库中印证与使用这些 API
- 类型定义源头:各版本的 Go 类型集中在 pkg/apis/pipeline/v1、pkg/apis/pipeline/v1beta1、pkg/apis/pipeline/v1alpha1,例如
Pipeline/PipelineSpec/PipelineTask见 pkg/apis/pipeline/v1/pipeline_types.go,ResolutionRequest见 pkg/apis/resolution/v1beta1/resolution_request_types.go; - CRD 声明:config/300-crds 下的 300-*.yaml 是各资源在集群中的最终结构声明(OpenAPI v3 schema);
- 可运行示例:examples/v1/pipelineruns 与 examples/v1/taskruns 提供了大量实战清单,覆盖 params、results、workspaces、when 表达式、matrix、stepaction、sidecar、超时覆盖等全部文档字段的用法;
- 行为校验:各类型对应的
*_validation.go与*_test.go(如 pkg/apis/pipeline/v1/pipeline_validation_test.go)印证了文档中 Validation 列的约束(如Timeouts.pipeline >= tasks + finally、values非空、taskRef与taskSpec互斥等); - 运行与查看:通过
kubectl apply提交上述 CR 清单,用kubectl get/kubectl describe观察status中的 conditions、results、skippedTasks、childReferences 等字段。
结语
Tekton Pipeline 通过tekton.dev与resolution.tekton.dev两组 API、多个版本化的包,把“流水线定义(Pipeline/Task)”“运行实例(PipelineRun/TaskRun/Run/CustomRun)”“远程解析(ResolutionRequest/ResolverRef)”“复用单元(StepAction)”与“安全信任(VerificationPolicy)”完整地纳入了 Kubernetes 声明式体系。理解每个包的职责、稳定级别与字段语义,是编写可长期维护的 CI/CD 清单、排查运行状态以及评估版本迁移影响的前提。建议新资源一律使用tekton.dev/v1与resolution.tekton.dev/v1beta1,遗留字段仅用于兼容旧客户端。
- 云原生
- CI/CD
- DevOps
- 后端
【免费下载链接】pipeline
A cloud-native Pipeline resource.
相关推荐
Tekton Pipeline 任务(Task)配置完全指南
Tekton Pipeline 任务 Task 配置完全指南 概述 在Tekton Pipeline中,Task 任务 是构建CI/CD流程的基本执行单元。本文
云原生CI/CDDevOps后端Tekton Pipelines 核心实体模型:Task、Pipeline 与其运行资源的完整解析
Tekton Pipelines 核心实体模型:Task、Pipeline 与其运行资源的完整解析 本文基于 Tekton Pipelines 项目的官方文档入
云原生CI/CDDevOps后端Tekton Pipeline Git Resolver 完整指南:从 Git 仓库远程解析 Task 与 Pipeline 资源
Tekton Pipeline Git Resolver 完整指南:从 Git 仓库远程解析 Task 与 Pipeline 资源 导读 Git Resolve
云原生CI/CDDevOps后端
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考