×

流水线和任务是 CI/CD 过程的可重用块。您可以重用以前开发的或其他人开发的流水线或任务,而无需复制和粘贴它们的定义。这些流水线或任务可以来自多种类型的来源,从集群上的其他命名空间到公共目录。

在流水线运行资源中,您可以从现有来源指定流水线。在流水线资源或任务运行资源中,您可以从现有来源指定任务。

StepAction自定义资源 (CR) 中定义的步骤操作是单个步骤在任务中完成的可重用操作。指定步骤时,您可以引用现有来源中的StepAction定义。

在这些情况下,Red Hat OpenShift Pipelines 中的解析器会在运行时从指定的源检索管道、任务或StepAction定义。

Red Hat OpenShift Pipelines 的默认安装中提供以下解析器:

Hub 解析器

从 Artifact Hub 或 Tekton Hub 上提供的 Pipelines Catalog 中检索任务、管道或StepAction定义。

Bundle 解析器

从 Tekton bundle 中检索任务、管道或StepAction定义。Tekton bundle 是一个 OCI 镜像,可从任何 OCI 仓库(例如 OpenShift 容器仓库)获取。

Git 解析器

从 Git 仓库检索任务、管道或StepAction定义。您必须指定仓库、分支和路径。

HTTP 解析器

从远程 HTTP 或 HTTPS URL 检索任务、管道或StepAction定义。您必须指定用于身份验证的 URL。

集群解析器

检索已经在同一 OpenShift Container Platform 集群的特定命名空间中创建的任务、管道或StepAction定义。

OpenShift Pipelines 安装包含一组标准任务,您可以在管道中使用这些任务。这些任务位于 OpenShift Pipelines 安装命名空间中,通常是openshift-pipelines命名空间。您可以使用集群解析器访问这些任务。

OpenShift Pipelines 还提供标准的StepAction定义。您可以使用集群解析器访问此定义。

从 Tekton 目录指定远程管道、任务或步骤操作

您可以使用 Hub 解析器指定在公共 Tekton 目录 Artifact Hub 或 Tekton Hub 实例中定义的远程管道、任务或StepAction定义。

Red Hat OpenShift Pipelines 不支持 Artifact Hub 项目。仅支持 Artifact Hub 的配置。

配置 Hub 解析器

您可以通过配置 Hub 解析器来更改拉取资源的默认 Hub 和默认目录设置。

步骤
  1. 要编辑TektonConfig自定义资源,请输入以下命令:

    $ oc edit TektonConfig config
  2. TektonConfig自定义资源中,编辑pipeline.hub-resolver-config规范。

    apiVersion: operator.tekton.dev/v1alpha1
    kind: TektonConfig
    metadata:
      name: config
    spec:
      pipeline:
        hub-resolver-config:
          default-tekton-hub-catalog: Tekton (1)
          default-artifact-hub-task-catalog: tekton-catalog-tasks (2)
          default-artifact-hub-pipeline-catalog: tekton-catalog-pipelines (3)
          defailt-kind: pipeline (4)
          default-type: tekton (5)
          tekton-hub-api: "https://my-custom-tekton-hub.example.com" (6)
          artifact-hub-api: "https://my-custom-artifact-hub.example.com" (7)
    1 拉取资源的默认 Tekton Hub 目录。
    2 拉取任务资源的默认 Artifact Hub 目录。
    3 拉取管道资源的默认 Artifact Hub 目录。
    4 引用的默认对象类型。
    5 拉取资源的默认 Hub,对于 Artifact Hub 为artifact,对于 Tekton Hub 为tekton
    6 如果default-type选项设置为tekton,则使用 Tekton Hub API。
    7 可选:如果default-type选项设置为artifact,则使用 Artifact Hub API。

    如果将default-type选项设置为tekton,则必须通过设置tekton-hub-api值来配置您自己的 Tekton Hub 实例。

    如果将default-type选项设置为artifact,则解析器默认使用公共 Hub API https://artifacthub.io/。您可以通过设置artifact-hub-api值来配置您自己的 Artifact Hub API。

使用 Hub 解析器指定远程管道、任务或步骤操作

创建管道运行时,您可以指定来自 Artifact Hub 或 Tekton Hub 的远程管道。创建管道或任务运行时,您可以指定来自 Artifact Hub 或 Tekton Hub 的远程任务。在任务中创建步骤时,您可以引用来自 Artifact Hub 或 Tekton Hub 的远程StepAction定义。

步骤
  • 要指定来自 Artifact Hub 或 Tekton Hub 的远程管道、任务或StepAction定义,请在pipelineReftaskRefstep.ref规范中使用以下引用格式:

    # ...
      resolver: hub
      params:
      - name: catalog
        value: <catalog>
      - name: type
        value: <catalog_type>
      - name: kind
        value: [pipeline|task]
      - name: name
        value: <resource_name>
      - name: version
        value: <resource_version>
    # ...
    表 1. Hub 解析器支持的参数
    参数 描述 示例值

    catalog

    拉取资源的目录。

    默认:tekton-catalog-tasks(对于task类型);tekton-catalog-pipelines(对于pipeline类型)。

    type

    拉取资源的目录类型。对于 Artifact Hub 为artifact,对于 Tekton Hub 为tekton

    默认:artifact

    kind

    taskpipeline

    默认:task

    name

    要从 Hub 获取的任务或管道的名称。

    golang-build

    version

    要从 Hub 获取的任务或管道的版本。必须使用引号 (") 括住数字。

    "0.5.0"

    如果管道或任务需要其他参数,请在管道、管道运行或任务运行的规范的params部分中指定这些参数的值。pipelineReftaskRef规范的params部分必须仅包含解析器支持的参数。

示例

以下管道运行示例引用了来自目录的远程管道:

apiVersion: tekton.dev/v1
kind: PipelineRun
metadata:
  name: hub-pipeline-reference-demo
spec:
  pipelineRef:
    resolver: hub
    params:
    - name: catalog
      value: tekton-catalog-pipelines
    - name: type
      value: artifact
    - name: kind
      value: pipeline
    - name: name
      value: example-pipeline
    - name: version
      value: "0.1"
  params:
  - name: sample-pipeline-parameter
    value: test

以下管道示例引用了来自目录的远程任务:

apiVersion: tekton.dev/v1
kind: Pipeline
metadata:
  name: pipeline-with-hub-task-reference-demo
spec:
  tasks:
  - name: "cluster-task-reference-demo"
    taskRef:
      resolver: hub
      params:
      - name: catalog
        value: tekton-catalog-tasks
      - name: type
        value: artifact
      - name: kind
        value: task
      - name: name
        value: example-task
      - name: version
        value: "0.6"
    params:
    - name: sample-task-parameter
      value: test

以下任务运行示例引用了来自目录的远程任务:

apiVersion: tekton.dev/v1
kind: TaskRun
metadata:
  name: hub-task-reference-demo
spec:
  taskRef:
    resolver: hub
    params:
    - name: catalog
      value: tekton-catalog-tasks
    - name: type
      value: artifact
    - name: kind
      value: task
    - name: name
      value: example-task
    - name: version
      value: "0.6"
  params:
  - name: sample-task-parameter
    value: test

以下任务示例包含一个步骤,该步骤引用了来自目录的StepAction定义:

apiVersion: tekton.dev/v1
kind: Task
metadata:
  name: hub-stepaction-reference-demo
spec:
  steps:
  - name: example-step
    ref:
    - resolver: hub
    - params:
      - name: catalog
        value: tekton-catalog-stepactions
      - name: type
        value: artifact
      - name: kind
        value: StepAction
      - name: name
        value: example-stepaction
      - name: version
        value: "0.6"
    params:
    - name: sample-stepaction-parameter
      value: test

从 Tekton bundle 指定远程管道、任务或步骤操作

您可以使用 bundle 解析器从 Tekton bundle 指定远程管道、任务或StepAction定义。Tekton bundle 是一个 OCI 镜像,可从任何 OCI 仓库(例如 OpenShift 容器仓库)获取。

配置 bundle 解析器

您可以通过配置 bundle 解析器来更改默认服务帐户名称和从 Tekton bundle 拉取资源的默认类型。

步骤
  1. 要编辑TektonConfig自定义资源,请输入以下命令:

    $ oc edit TektonConfig config
  2. TektonConfig自定义资源中,编辑pipeline.bundles-resolver-config规范。

    apiVersion: operator.tekton.dev/v1alpha1
    kind: TektonConfig
    metadata:
      name: config
    spec:
      pipeline:
        bundles-resolver-config:
          default-service-account: pipelines (1)
          default-kind: task (2)
    1 用于 bundle 请求的默认服务帐户名称。
    2 bundle 镜像中的默认层类型。

使用 bundle 解析器指定远程管道、任务或步骤操作

创建管道运行时,您可以指定来自 Tekton bundle 的远程管道。创建管道或任务运行时,您可以指定来自 Tekton bundle 的远程任务。在任务中创建步骤时,您可以引用来自 Tekton bundle 的远程StepAction定义。

步骤
  • 要指定来自 Tekton bundle 的远程管道、任务或StepAction定义,请在pipelineReftaskRefstep.ref规范中使用以下引用格式:

    # ...
      resolver: bundles
      params:
      - name: bundle
        value: <fully_qualified_image_name>
      - name: name
        value: <resource_name>
      - name: kind
        value: [pipeline|task]
    # ...
    表 2. bundle 解析器支持的参数
    参数 描述 示例值

    serviceAccount

    构建注册表凭据时要使用的服务帐户名称。

    default

    bundle

    指向要获取的镜像的 bundle URL。

    gcr.io/tekton-releases/catalog/upstream/golang-build:0.1

    name

    要从 bundle 中提取的资源名称。

    golang-build

    kind

    要从 bundle 中提取的资源类型。

    task

    如果管道或任务需要其他参数,请在管道、管道运行或任务运行的规范的params部分中指定这些参数的值。pipelineReftaskRef规范的params部分必须仅包含解析器支持的参数。

示例

以下管道运行示例引用了来自 Tekton bundle 的远程管道:

apiVersion: tekton.dev/v1
kind: PipelineRun
metadata:
  name: bundle-pipeline-reference-demo
spec:
  pipelineRef:
    resolver: bundles
    params:
    - name: bundle
      value: registry.example.com:5000/simple/pipeline:latest
    - name: name
      value: hello-pipeline
    - name: kind
      value: pipeline
  params:
  - name: sample-pipeline-parameter
    value: test
  - name: username
    value: "pipelines"

以下管道示例引用了来自 Tekton bundle 的远程任务:

apiVersion: tekton.dev/v1
kind: Pipeline
metadata:
  name: pipeline-with-bundle-task-reference-demo
spec:
  tasks:
  - name: "bundle-task-demo"
    taskRef:
      resolver: bundles
      params:
      - name: bundle
        value: registry.example.com:5000/advanced/task:latest
      - name: name
        value: hello-world
      - name: kind
        value: task
    params:
    - name: sample-task-parameter
      value: test

以下任务运行示例引用了来自 Tekton bundle 的远程任务:

apiVersion: tekton.dev/v1
kind: TaskRun
metadata:
  name: bundle-task-reference-demo
spec:
  taskRef:
    resolver: bundles
    params:
    - name: bundle
      value: registry.example.com:5000/simple/new_task:latest
    - name: name
      value: hello-world
    - name: kind
      value: task
  params:
  - name: sample-task-parameter
    value: test

以下任务示例包含一个步骤,该步骤引用了来自 Tekton bundle 的StepAction定义:

apiVersion: tekton.dev/v1
kind: Task
metadata:
  name: bundle-stepaction-reference-demo
spec:
  steps:
  - name: example-step
    ref:
      resolver: bundles
      params:
      - name: bundle
        value: registry.example.com:5000/simple/new_task:latest
      - name: name
        value: hello-world-action
      - name: kind
        value: StepAction
    params:
    - name: sample-stepaction-parameter
      value: test

使用匿名 Git 克隆指定远程 Pipeline、Task 或步骤操作

您可以使用 Git 解析器从 Git 仓库访问远程 Pipeline、Task 或StepAction定义。该仓库必须包含一个定义 Pipeline 或 Task 的 YAML 文件。对于匿名访问,您无需身份验证凭据即可使用解析器克隆仓库。

配置 Git 解析器以进行匿名 Git 克隆

如果您想使用匿名 Git 克隆,您可以配置默认 Git 版本、获取超时和默认仓库 URL,以便从 Git 仓库拉取远程 Pipeline 和 Task。

步骤
  1. 要编辑TektonConfig自定义资源,请输入以下命令:

    $ oc edit TektonConfig config
  2. TektonConfig自定义资源中,编辑pipeline.git-resolver-config规范

    apiVersion: operator.tekton.dev/v1alpha1
    kind: TektonConfig
    metadata:
      name: config
    spec:
      pipeline:
        git-resolver-config:
          default-revision: main (1)
          fetch-timeout: 1m (2)
          default-url: https://github.com/tektoncd/catalog.git (3)
    1 如果未指定,则使用默认的 Git 版本。
    2 任何单个 Git 克隆解析可能花费的最大时间,例如1m2s700ms。Red Hat OpenShift Pipelines 还对所有解析请求强制执行 1 分钟的全局最大超时。
    3 如果未指定,则用于匿名克隆的默认 Git 仓库 URL。

使用 Git 解析器进行匿名克隆来指定远程 Pipeline、Task 或步骤操作

创建 Pipeline 运行时,您可以使用匿名克隆指定来自 Git 仓库的远程 Pipeline。创建 Pipeline 或 Task 运行时,您可以指定来自 Git 仓库的远程 Task。在 Task 中创建步骤时,您可以引用来自 Git 仓库的远程StepAction定义。

步骤
  • 要指定来自 Git 仓库的远程 Pipeline、Task 或StepAction定义,请在pipelineReftaskRefstep.ref规范中使用以下引用格式

    # ...
      resolver: git
      params:
      - name: url
        value: <git_repository_url>
      - name: revision
        value: <branch_name>
      - name: pathInRepo
        value: <path_in_repository>
    # ...
    表 3. Git 解析器支持的参数
    参数 描述 示例值

    url

    使用匿名克隆时的仓库 URL。

    https://github.com/tektoncd/catalog.git

    revision

    仓库中的 Git 版本。您可以指定分支名称、标签名称或提交 SHA 哈希。

    aeb957601cf41c012be462827053a21a420befca
    main
    v0.38.2

    pathInRepo

    仓库中 YAML 文件的路径名称。

    task/golang-build/0.3/golang-build.yaml

    要匿名克隆和获取仓库,请使用url参数。请勿同时指定url参数和repo参数。

    如果 Pipeline 或 Task 需要其他参数,请在params中提供这些参数。

示例

以下 Pipeline 运行示例引用了来自 Git 仓库的远程 Pipeline

apiVersion: tekton.dev/v1beta1
kind: PipelineRun
metadata:
  name: git-pipeline-reference-demo
spec:
  pipelineRef:
    resolver: git
    params:
      - name: url
        value: https://github.com/tektoncd/catalog.git
      - name: revision
        value: main
      - name: pathInRepo
        value: pipeline/simple/0.1/simple.yaml
  params:
    - name: name
      value: "testPipelineRun"
    - name: sample-pipeline-parameter
      value: test

以下 Pipeline 示例引用了来自 Git 仓库的远程 Task

apiVersion: tekton.dev/v1
kind: Pipeline
metadata:
  name: pipeline-with-git-task-reference-demo
spec:
  tasks:
    - name: "git-task-reference-demo"
      taskRef:
        resolver: git
        params:
          - name: url
            value: https://github.com/tektoncd/catalog.git
          - name: revision
            value: main
          - name: pathInRepo
            value: task/git-clone/0.6/git-clone.yaml
      params:
      - name: sample-task-parameter
        value: test

以下 Task 运行示例引用了来自 Git 仓库的远程 Task

apiVersion: tekton.dev/v1beta1
kind: TaskRun
metadata:
  name: git-task-reference-demo
spec:
  taskRef:
    resolver: git
    params:
      - name: url
        value: https://github.com/tektoncd/catalog.git
      - name: revision
        value: main
      - name: pathInRepo
        value: task/git-clone/0.6/git-clone.yaml
  params:
  - name: sample-task-parameter
    value: test

以下 Task 示例包含一个步骤,该步骤引用了来自 Git 仓库的StepAction定义

apiVersion: tekton.dev/v1
kind: Task
metadata:
  name: git-stepaction-reference-demo
spec:
  steps:
  - name: example-step
    ref:
      resolver: git
      - name: url
        value: https://github.com/openshift-pipelines/tektoncd-catalog.git
      - name: revision
        value: p
      - name: pathInRepo
        value: stepactions/stepaction-git-clone/0.4.1/stepaction-git-clone.yaml
    params:
    - name: sample-stepaction-parameter
      value: test

使用经过身份验证的 Git API 指定远程 Pipeline、Task 或步骤操作

您可以使用 Git 解析器从 Git 仓库指定远程 Pipeline、Task 或StepAction定义。该仓库必须包含一个定义 Pipeline 或 Task 的 YAML 文件。您可以使用支持用户身份验证的经过身份验证的 API 安全地访问仓库。

为经过身份验证的 API 配置 Git 解析器

对于经过身份验证的源代码管理 (SCM) API,您必须设置经过身份验证的 Git 连接的配置。

您可以使用go-scm库支持的 Git 仓库提供程序。并非所有go-scm实现都已通过 Git 解析器测试,但已知以下提供程序有效

  • github.com和 GitHub Enterprise

  • gitlab.com和自托管 Gitlab

  • Gitea

  • BitBucket Server

  • BitBucket Cloud

  • 您可以使用经过身份验证的 SCM API 配置 Git 连接。您可以提供一个安全令牌,使集群上的所有用户都能访问一个仓库。此外,您可以为特定的 Pipeline 或 Task 指定不同的 SCM 提供程序和令牌。

  • 如果您将 Git 解析器配置为使用经过身份验证的 SCM API,您也可以使用匿名 Git 克隆引用来检索 Pipeline 和 Task。

步骤
  1. 要编辑TektonConfig自定义资源,请输入以下命令:

    $ oc edit TektonConfig config
  2. TektonConfig自定义资源中,编辑pipeline.git-resolver-config规范

    apiVersion: operator.tekton.dev/v1alpha1
    kind: TektonConfig
    metadata:
      name: config
    spec:
      pipeline:
        git-resolver-config:
          default-revision: main (1)
          fetch-timeout: 1m (2)
          scm-type: github (3)
          server-url: api.internal-github.com (4)
          api-token-secret-name: github-auth-secret (5)
          api-token-secret-key: github-auth-key (6)
          api-token-secret-namespace: github-auth-namespace (7)
          default-org: tektoncd (8)
    1 如果未指定,则使用默认的 Git 版本。
    2 任何单个 Git 克隆解析可能花费的最大时间,例如1m2s700ms。Red Hat OpenShift Pipelines 还对所有解析请求强制执行 1 分钟的全局最大超时。
    3 SCM 提供程序类型。
    4 与经过身份验证的 SCM API 一起使用的基本 URL。如果您使用的是github.comgitlab.com或 BitBucket Cloud,则不需要此设置。
    5 包含 SCM 提供程序 API 令牌的密钥名称。
    6 令牌密钥中包含令牌的键。
    7 包含令牌密钥的命名空间(如果非default)。
    8 可选:使用经过身份验证的 API 时仓库的默认组织。如果您未在解析器参数中指定组织,则使用此组织。

scm-typeapi-token-secret-nameapi-token-secret-key设置是使用经过身份验证的 SCM API 所必需的。

配置多个 Git 提供程序

您可以配置多个 Git 提供程序,也可以为同一个 Git 提供程序添加多个配置,以便在不同的 Task 运行和 Pipeline 运行中使用。

使用您的唯一标识符键前缀在TektonConfig自定义资源 (CR) 中添加详细信息。

步骤
  1. 通过运行以下命令编辑TektonConfig CR

    $ oc edit TektonConfig config
  2. TektonConfig CR 中,编辑pipeline.git-resolver-config规范

    apiVersion: operator.tekton.dev/v1alpha1
    kind: TektonConfig
    metadata:
      name: config
    spec:
    # ...
      pipeline:
        git-resolver-config:
          # configuration 1 (1)
          fetch-timeout: "1m"
          default-url: "https://github.com/tektoncd/catalog.git"
          default-revision: "main"
          scm-type: "github"
          server-url: ""
          api-token-secret-name: ""
          api-token-secret-key: ""
          api-token-secret-namespace: "default"
          default-org: ""
          # configuration 2 (2)
          test1.fetch-timeout: "5m"
          test1.default-url: ""
          test1.default-revision: "stable"
          test1.scm-type: "github"
          test1.server-url: "api.internal-github.com"
          test1.api-token-secret-name: "test1-secret"
          test1.api-token-secret-key: "token"
          test1.api-token-secret-namespace: "test1"
          test1.default-org: "tektoncd"
          # configuration 3 (3)
          test2.fetch-timeout: "10m"
          test2.default-url: ""
          test2.default-revision: "stable"
          test2.scm-type: "gitlab"
          test2.server-url: "api.internal-gitlab.com"
          test2.api-token-secret-name: "test2-secret"
          test2.api-token-secret-key: "pat"
          test2.api-token-secret-namespace: "test2"
          test2.default-org: "tektoncd-infra"
    # ...
    1 如果未提供configKey键或以default值提供该键,则使用默认配置。
    2 如果configKey键以test1值传递,则使用此配置。
    3 如果configKey键以test2值传递,则使用此配置。

    不支持带有.符号的configKey值。如果您尝试传递包含.符号的configKey值,则您传递该值的TaskRunPipelineRun资源将无法运行。

使用带经过身份验证的 SCM API 的 Git 解析器指定远程 Pipeline、Task 或步骤操作

创建 Pipeline 运行时,您可以使用经过身份验证的 SCM API 指定来自 Git 仓库的远程 Pipeline。创建 Pipeline 或 Task 运行时,您可以指定来自 Git 仓库的远程 Task。在 Task 中创建步骤时,您可以引用来自 Git 仓库的远程StepAction定义。

先决条件
  • 如果您想使用经过身份验证的 SCM API,则必须为 Git 解析器配置经过身份验证的 Git 连接。

步骤
  • 要指定来自 Git 仓库的远程 Pipeline、Task 或StepAction定义,请在pipelineReftaskRefstep.ref规范中使用以下引用格式

    # ...
      resolver: git
      params:
      - name: org
        value: <git_organization_name>
      - name: repo
        value: <git_repository_name>
      - name: revision
        value: <branch_name>
      - name: pathInRepo
        value: <path_in_repository>
    # ...
    表 4. Git 解析器支持的参数
    参数 描述 示例值

    org

    使用经过身份验证的 SCM API 时仓库的组织。

    tektoncd

    repo

    使用经过身份验证的 SCM API 时的仓库名称。

    test-infra

    revision

    仓库中的 Git 版本。您可以指定分支名称、标签名称或提交 SHA 哈希。

    aeb957601cf41c012be462827053a21a420befca
    main
    v0.38.2

    pathInRepo

    仓库中 YAML 文件的路径名称。

    task/golang-build/0.3/golang-build.yaml

    要匿名克隆和获取仓库,请使用url参数。要使用经过身份验证的 SCM API,请使用repo参数。请勿同时指定url参数和repo参数。

    如果管道或任务需要其他参数,请在管道、管道运行或任务运行的规范的params部分中指定这些参数的值。pipelineReftaskRef规范的params部分必须仅包含解析器支持的参数。

示例

以下 Pipeline 运行示例引用了来自 Git 仓库的远程 Pipeline

apiVersion: tekton.dev/v1
kind: PipelineRun
metadata:
  name: git-pipeline-reference-demo
spec:
  pipelineRef:
    resolver: git
    params:
    - name: org
      value: tektoncd
    - name: repo
      value: catalog
    - name: revision
      value: main
    - name: pathInRepo
      value: pipeline/simple/0.1/simple.yaml
  params:
  - name: name
    value: "testPipelineRun"
  - name: sample-pipeline-parameter
    value: test

以下 Pipeline 示例引用了来自 Git 仓库的远程 Task

apiVersion: tekton.dev/v1
kind: Pipeline
metadata:
  name: pipeline-with-git-task-reference-demo
spec:
  tasks:
  - name: "git-task-reference-demo"
    taskRef:
      resolver: git
      params:
      - name: org
        value: tektoncd
      - name: repo
        value: catalog
      - name: revision
        value: main
      - name: pathInRepo
        value: task/git-clone/0.6/git-clone.yaml
    params:
    - name: sample-task-parameter
      value: test

以下 Task 运行示例引用了来自 Git 仓库的远程 Task

apiVersion: tekton.dev/v1
kind: TaskRun
metadata:
  name: git-task-reference-demo
spec:
  taskRef:
    resolver: git
    params:
    - name: org
      value: tektoncd
    - name: repo
      value: catalog
    - name: revision
      value: main
    - name: pathInRepo
      value: task/git-clone/0.6/git-clone.yaml
  params:
  - name: sample-task-parameter
    value: test

以下 Task 示例包含一个步骤,该步骤引用了来自 Git 仓库的StepAction定义

apiVersion: tekton.dev/v1
kind: Task
metadata:
  name: git-stepaction-reference-demo
spec:
  steps:
  - name: example-step
    ref:
      resolver: git
      - name: org
        value: openshift-pipelines
      - name: repo
        value: tektoncd-catalog
      - name: revision
        value: p
      - name: pathInRepo
        value: stepactions/stepaction-git-clone/0.4.1/stepaction-git-clone.yaml
    params:
    - name: sample-stepaction-parameter
      value: test

指定多个 Git 提供程序

您可以通过在创建TaskRunPipelineRun资源时传递唯一的configKey参数来指定多个 Git 提供程序。

如果未传递configKey参数,则使用默认配置。您也可以通过将configKey值设置为default来指定默认配置。

不支持带有.符号的configKey值。如果您尝试传递包含.符号的configKey值,则您传递该值的TaskRunPipelineRun资源将无法运行。

先决条件
  • 通过Tektonconfig自定义资源配置多个 Git 提供程序。有关更多信息,请参阅“配置多个 Git 提供程序”。

步骤
  • 要指定 Git 提供程序,请在pipelineReftaskRef规范中使用以下引用格式

    # ...
      resolver: git
      params:
      # ...
      - name: configKey
        value: <your_unique_key> (1)
    # ...
    1 您的唯一密钥,与一个配置密钥匹配,例如,test1

使用带有已认证 SCM API 的 Git 解析器指定远程 Pipeline 或 Task,覆盖 Git 解析器配置

您可以在特定 Pipeline 运行或 Task 中覆盖初始配置设置,以根据不同的用例自定义行为。您可以使用此方法访问在 TektonConfig 自定义资源 (CR) 中未配置的已认证提供程序。

以下示例 Task 运行引用来自 Git 存储库的远程 Task,该 Task 覆盖了之前的解析器配置

apiVersion: tekton.dev/v1beta1
kind: TaskRun
metadata:
  name: git-task-reference-demo
spec:
  taskRef:
    resolver: git
    params:
    - name: org
      value: tektoncd
    - name: repo
      value: catalog
    - name: revision
      value: main
    - name: pathInRepo
      value: task/git-clone/0.6/git-clone.yaml
    - name: token
      value: my-secret-token
    - name: tokenKey
      value: token
    - name: scmType
      value: github
    - name: serverURL
      value: https://ghe.mycompany.com
表 5. 支持覆盖 Git 解析器的参数
参数 描述 示例值

org

存储库的组织。

tektoncd

repo

存储库名称。

catalog

revision

仓库中的 Git 版本。您可以指定分支名称、标签名称或提交 SHA 哈希。

main

pathInRepo

仓库中 YAML 文件的路径名称。

task/git-clone/0.6/git-clone.yaml

token

用于身份验证的密钥名称。

my-secret-token

tokenKey

token 的密钥名称。

token

scmType

SCM(源代码管理)系统的类型。

github

serverURL

托管存储库的服务器的 URL。

https://ghe.mycompany.com

使用 HTTP 解析器指定远程 Pipeline、Task 或步骤操作

您可以使用 HTTP 解析器从 HTTP 或 HTTPS URL 指定远程 Pipeline、Task 或 StepAction 定义。URL 必须指向定义 Pipeline、Task 或步骤操作的 YAML 文件。

配置 HTTP 解析器

您可以使用 HTTP 解析器从 HTTP 或 HTTPS URL 获取 Pipeline 或 Task。您可以通过编辑 TektonConfig 自定义资源 (CR) 来配置 HTTP 解析器的默认值。

步骤
  1. 通过输入以下命令编辑 TektonConfig CR

    $ oc edit TektonConfig config
  2. TektonConfig CR 中,编辑 pipeline.http-resolver-config 规范

    apiVersion: operator.tekton.dev/v1alpha1
    kind: TektonConfig
    metadata:
      name: config
    spec:
      pipeline:
        http-resolver-config:
          fetch-timeout: "1m" (1)
    1 HTTP 解析器等待服务器响应的最长时间。

使用 HTTP 解析器指定远程 Pipeline、Task 或步骤操作

创建 Pipeline 运行时,您可以从 HTTP 或 HTTPS URL 指定远程 Pipeline。创建 Pipeline 或 Task 运行时,您可以从 HTTP 或 HTTPS URL 指定远程 Task。在 Task 中创建步骤时,您可以从 HTTP 或 HTTPS URL 引用远程 StepAction 定义。

步骤
  • 使用以下格式在 pipelineReftaskRefstep.ref 规范中指定来自 HTTP 或 HTTPS URL 的远程 Pipeline、Task 或 StepAction 定义

    # ...
      resolver: http
      params:
      - name: url
        value: <fully_qualified_http_url>
    # ...
    表 6. HTTP 解析器支持的参数
    参数 描述 示例值

    url

    指向要获取的 Tekton 资源的 HTTP URL。

    https://raw.githubusercontent.com/openshift-pipelines/tektoncd-catalog/p/tasks/task-git-clone/0.4.1/task-git-clone.yaml

示例

以下示例 Pipeline 运行引用来自同一集群的远程 Pipeline

apiVersion: tekton.dev/v1beta1
kind: PipelineRun
metadata:
  name: http-pipeline-reference-demo
spec:
  pipelineRef:
    resolver: http
    params:
    - name: url
      value: https://raw.githubusercontent.com/tektoncd/catalog/main/pipeline/build-push-gke-deploy/0.1/build-push-gke-deploy.yaml
  params:
  - name: sample-pipeline-parameter
    value: test
  - name: username
    value: "pipelines"

以下示例 Pipeline 定义了一个 Task,该 Task 引用来自 HTTPS URL 的远程 Task

apiVersion: tekton.dev/v1beta1
kind: Pipeline
metadata:
  name: pipeline-with-http-task-reference-demo
spec:
  tasks:
  - name: "http-task-demo"
    taskRef:
      resolver: http
      params:
      - name: url
        value: https://raw.githubusercontent.com/openshift-pipelines/tektoncd-catalog/p/tasks/task-git-clone/0.4.1/task-git-clone.yaml
    params:
    - name: sample-task-parameter
      value: test

以下示例 Task 运行引用来自 HTTPS URL 的远程 Task

apiVersion: tekton.dev/v1beta1
kind: TaskRun
metadata:
  name: http-task-reference-demo
spec:
  taskRef:
    resolver: http
    params:
    - name: url
      value: https://raw.githubusercontent.com/openshift-pipelines/tektoncd-catalog/p/tasks/task-git-clone/0.4.1/task-git-clone.yaml
  params:
  - name: sample-task-parameter
    value: test

以下示例 Task 包含一个步骤,该步骤引用来自 HTTPS URL 的 StepAction 定义

apiVersion: tekton.dev/v1
kind: Task
metadata:
  name: http-stepaction-reference-demo
spec:
  steps:
  - name: example-step
    ref:
      resolver: http
      params:
      - name: url
        value: https://raw.githubusercontent.com/openshift-pipelines/tektoncd-catalog/p/stepactions/stepaction-git-clone/0.4.1/stepaction-git-clone.yaml
    params:
    - name: sample-stepaction-parameter
      value: test

指定来自同一集群的 Pipeline、Task 或步骤操作

您可以使用集群解析器来指定在运行 Red Hat OpenShift Pipelines 的 OpenShift Container Platform 集群上的命名空间中定义的 Pipeline、Task 或 StepAction 定义。

特别是,您可以使用集群解析器访问 OpenShift Pipelines 在其安装命名空间(通常是 openshift-pipelines 命名空间)中提供的 Task。

配置集群解析器

您可以更改集群解析器的默认种类和命名空间,或限制集群解析器可以使用命名空间。

步骤
  1. 要编辑TektonConfig自定义资源,请输入以下命令:

    $ oc edit TektonConfig config
  2. TektonConfig 自定义资源中,编辑 pipeline.cluster-resolver-config 规范

    apiVersion: operator.tekton.dev/v1alpha1
    kind: TektonConfig
    metadata:
      name: config
    spec:
      pipeline:
        cluster-resolver-config:
          default-kind: pipeline (1)
          default-namespace: namespace1 (2)
          allowed-namespaces: namespace1, namespace2 (3)
          blocked-namespaces: namespace3, namespace4 (4)
    1 如果参数中未指定,则要获取的默认资源种类。
    2 如果参数中未指定,则获取资源的默认命名空间。
    3 解析器允许访问的命名空间的逗号分隔列表。如果未定义此键,则允许所有命名空间。
    4 解析器被阻止访问的命名空间的可选逗号分隔列表。如果未定义此键,则允许所有命名空间。

使用集群解析器指定来自同一集群的 Pipeline、Task 或步骤操作

创建 Pipeline 运行时,您可以指定存在于同一集群上的 Pipeline。创建 Pipeline 或 Task 运行时,您可以指定存在于同一集群上的 Task。在 Task 中创建步骤时,您可以指定存在于同一集群上的 StepAction 定义。

步骤
  • 要指定来自同一集群的 Pipeline、Task 或 StepAction 定义,请在 pipelineReftaskRefstep.ref 规范中使用以下引用格式

    # ...
      resolver: cluster
      params:
      - name: name
        value: <name>
      - name: namespace
        value: <namespace>
      - name: kind
        value: [pipeline|task|stepaction]
    # ...
    表 7. 集群解析器支持的参数
    参数 描述 示例值

    name

    要获取的资源名称。

    some-pipeline

    namespace

    集群中包含资源的命名空间。

    other-namespace

    kind

    要获取的资源的种类。

    pipeline

    如果 Pipeline 或 Task 需要其他参数,请在params中提供这些参数。

示例

以下示例 Pipeline 运行引用来自同一集群的 Pipeline

apiVersion: tekton.dev/v1
kind: PipelineRun
metadata:
  name: cluster-pipeline-reference-demo
spec:
  pipelineRef:
    resolver: cluster
    params:
    - name: name
      value: some-pipeline
    - name: namespace
      value: test-namespace
    - name: kind
      value: pipeline
  params:
  - name: sample-pipeline-parameter
    value: test

以下示例 Pipeline 引用来自同一集群的 Task

apiVersion: tekton.dev/v1
kind: Pipeline
metadata:
  name: pipeline-with-cluster-task-reference-demo
spec:
  tasks:
  - name: "cluster-task-reference-demo"
    taskRef:
      resolver: cluster
      params:
      - name: name
        value: some-task
      - name: namespace
        value: test-namespace
      - name: kind
        value: task
    params:
    - name: sample-task-parameter
      value: test

以下示例 Task 运行引用来自同一集群的 Task

apiVersion: tekton.dev/v1
kind: TaskRun
metadata:
  name: cluster-task-reference-demo
spec:
  taskRef:
    resolver: cluster
    params:
    - name: name
      value: some-task
    - name: namespace
      value: test-namespace
    - name: kind
      value: task
  params:
  - name: sample-task-parameter
    value: test

以下示例 Task 包含一个步骤,该步骤引用来自同一集群的 StepAction 定义

apiVersion: tekton.dev/v1
kind: Task
metadata:
  name: cluster-stepaction-reference-demo
spec:
  steps:
  - name: example-step
    ref:
      resolver: cluster
      params:
      - name: name
        value: some-step
      - name: namespace
        value: test-namespace
      - name: kind
        value: stepaction
  params:
  - name: sample-stepaction-parameter
    value: test

OpenShift Pipelines 命名空间中提供的 Task

OpenShift Pipelines 安装包含一组标准任务,您可以在管道中使用这些任务。这些任务位于 OpenShift Pipelines 安装命名空间中,通常是openshift-pipelines命名空间。您可以使用集群解析器访问这些任务。

在 1.16 版本之前,OpenShift Pipelines 包含 ClusterTask 功能。1.17 及更高版本不再包含此功能。如果您的 Pipeline 使用 ClusterTask 引用,您可以使用集群解析器使用 OpenShift Pipelines 安装命名空间中可用的 Task 重新创建它们。但是,与以前存在的 ClusterTask 定义相比,这些 Task 进行了某些更改。

您不能在 OpenShift Pipelines 安装命名空间中可用的任何 Task 中指定自定义执行镜像。这些 Task 不支持 BUILDER_IMAGEgitInitImageKN_IMAGE 等参数。如果要使用自定义执行镜像,请创建 Task 的副本并通过编辑副本替换镜像。

buildah

buildah Task 将源代码树构建到容器镜像中,然后将镜像推送到容器注册表。

buildah Task 的示例用法
apiVersion: tekton.dev/v1
kind: Pipeline
metadata:
  name: build-and-deploy
spec:
# ...
  tasks:
# ...
  - name: build-image
    taskRef:
      resolver: cluster
      params:
      - name: kind
        value: task
      - name: name
        value: buildah
      - name: namespace
        value: openshift-pipelines
    params:
    - name: IMAGE
      value: $(params.IMAGE)
    workspaces:
    - name: source
      workspace: shared-workspace
# ...
表 8. buildah Task 支持的参数
参数 描述 类型 默认值

IMAGE

要由 Buildah 构建的完全限定的容器镜像名称。

string

DOCKERFILE

相对于 source 工作区的 Dockerfile(或 Containerfile)的路径。

string

./Dockerfile

CONTEXT

用作上下文的目录的路径。

string

.

STORAGE_DRIVER

设置 Buildah 存储驱动程序以反映当前集群节点设置。

string

vfs

FORMAT

要构建的容器的格式,ocidocker

string

oci

BUILD_EXTRA_ARGS

构建镜像时 build 命令的额外参数。

string

PUSH_EXTRA_ARGS

推送镜像时 push 命令的额外参数。

string

SKIP_PUSH

跳过将镜像推送到容器注册表。

string

false

TLS_VERIFY

TLS 验证标志,通常为 true

string

true

VERBOSE

打开详细日志记录;所有执行的命令都添加到日志中。

string

false

表 9. buildah Task 支持的工作区
工作区 描述

source

容器构建上下文,通常是包含DockerfileContainerfile文件的应用程序源代码。

dockerconfig

一个可选的工作区,用于提供Buildah用来访问容器注册表的.docker/config.json文件。将文件放在工作区的根目录下,命名为config.json.dockerconfigjson

rhel-entitlement

一个可选的工作区,用于提供Buildah用来访问Red Hat Enterprise Linux (RHEL) 订阅的授权密钥。挂载的工作区必须包含entitlement.pementitlement-key.pem文件。

表 10. buildah 任务返回的结果
结果 类型 描述

IMAGE_URL

string

已构建镜像的完全限定名称。

IMAGE_DIGEST

string

已构建镜像的摘要。

buildah ClusterTask 的更改
  • 添加了VERBOSE参数。

  • 移除了BUILDER_IMAGE参数。

git-cli

git-cli任务运行git命令行实用程序。您可以传递完整的Git命令或多个命令来运行,使用GIT_SCRIPT参数。如果命令需要对Git仓库进行身份验证(例如,为了完成推送),则必须提供身份验证凭据。

git-cli任务的示例用法
apiVersion: tekton.dev/v1
kind: Pipeline
metadata:
  name: update-repo
spec:
# ...
  tasks:
# ...
  - name: push-to-repo
    taskRef:
      resolver: cluster
      params:
      - name: kind
        value: task
      - name: name
        value: git-cli
      - name: namespace
        value: openshift-pipelines
    params:
    - name: GIT_SCRIPT
      value: "git push"
    - name: GIT_USER_NAME
      value: "Example Developer"
    - name: GIT_USER_EMAIL
      value: "[email protected]"
    workspaces:
    - name: ssh-directory
      workspace: ssh-workspace (1)
    - name: source
      workspace: shared-workspace
# ...
1 在此示例中,ssh-workspace必须包含.ssh目录的内容,其中包含用于授权到Git仓库的有效密钥。
表 11. git-cli任务支持的参数
参数 描述 类型 默认值

CRT_FILENAME

ssl-ca-directory工作区中的证书颁发机构 (CA) 捆绑包文件名。

string

ca-bundle.crt

HTTP_PROXY

HTTP 代理服务器(非TLS请求)。

string

HTTPS_PROXY

HTTPS 代理服务器(TLS请求)。

string

NO_PROXY

选择不使用代理进行HTTP/HTTPS请求。

string

SUBDIRECTORY

包含git仓库的source工作区的相对路径。

string

USER_HOME

pod中Git用户主目录的绝对路径。

string

/home/git

DELETE_EXISTING

在完成git操作之前,删除source工作区中任何现有内容。

string

true

VERBOSE

记录所有执行的命令。

string

false

SSL_VERIFY

全局http.sslVerify值。除非您信任远程仓库,否则不要使用false

string

true

GIT_USER_NAME

执行Git操作的Git用户名。

string

GIT_USER_EMAIL

执行Git操作的Git用户邮箱。

string

GIT_SCRIPT

要运行的Git脚本。

string

git help

表 12. git-cli任务支持的工作区
工作区 描述

ssh-directory

包含私钥、known_hostsconfig和其他必要文件的.ssh目录。如果您提供此工作区,则任务将使用它来对Git仓库进行身份验证。将此工作区绑定到Secret资源以安全地存储身份验证信息。

basic-auth

包含.gitconfig.git-credentials文件的工作区。如果您提供此工作区,则任务将使用它来对Git仓库进行身份验证。尽可能使用ssh-directory工作区进行身份验证,而不是basic-auth。将此工作区绑定到Secret资源以安全地存储身份验证信息。

ssl-ca-directory

包含CA证书的工作区。如果您提供此工作区,Git将使用这些证书在使用HTTPS与远程仓库交互时验证对等方。

source

包含已获取Git仓库的工作区。

input

一个可选的工作区,包含需要添加到Git仓库的文件。例如,您可以使用$(workspaces.input.path)从脚本访问该工作区。

cp $(workspaces.input.path)/<file_that_i_want> .
git add <file_that_i_want>

表 13. git-cli任务返回的结果
结果 类型 描述

COMMIT

string

克隆的Git仓库中当前分支HEAD处的提交的SHA摘要。

git-cli ClusterTask 的更改
  • 添加了几个新的参数。

  • 移除了BASE_IMAGE参数。

  • 添加了ssl-ca-directory工作区。

  • 更改了USER_HOMEVERBOSE参数的默认值。

  • 结果名称从commit更改为COMMIT

git-clone

git-clone任务使用Git在工作区上初始化和克隆远程仓库。您可以在构建或以其他方式处理此源代码的管道的开始处使用此任务。

git-clone任务的示例用法
apiVersion: tekton.dev/v1
kind: Pipeline
metadata:
  name: build-source
spec:
# ...
  tasks:
  - name: clone-repo
    taskRef:
      resolver: cluster
      params:
      - name: kind
        value: task
      - name: name
        value: git-clone
      - name: namespace
        value: openshift-pipelines
    params:
    - name: URL
      value: "https://github.com/example/repo.git"
    workspaces:
    - name: output
      workspace: shared-workspace
表 14. git-clone任务支持的参数
参数 描述 类型 默认值

CRT_FILENAME

ssl-ca-directory工作区中的证书颁发机构 (CA) 捆绑包文件名。

string

ca-bundle.crt

HTTP_PROXY

HTTP 代理服务器(非TLS请求)。

string

HTTPS_PROXY

HTTPS 代理服务器(TLS请求)。

string

NO_PROXY

选择不使用代理进行HTTP/HTTPS请求。

string

SUBDIRECTORY

任务放置Git仓库的output工作区的相对路径。

string

USER_HOME

pod中Git用户主目录的绝对路径。

string

/home/git

DELETE_EXISTING

在运行Git操作之前,删除默认工作区的内容(如果存在)。

string

true

VERBOSE

记录执行的命令。

string

false

SSL_VERIFY

全局http.sslVerify值。除非您信任远程仓库,否则不要将此参数设置为false

string

true

URL

Git仓库URL。

string

REVISION

要检出的修订版本,例如分支或标签。

string

main

REFSPEC

任务在检出修订版本之前获取的仓库的refspec字符串。

string

SUBMODULES

初始化并获取Git子模块。

string

true

DEPTH

要获取的提交次数,单个提交是“浅克隆”。

string

1

SPARSE_CHECKOUT_DIRECTORIES

用于执行“稀疏检出”的目录模式列表,用逗号分隔。

string

表 15. git-clone任务支持的工作区
工作区 描述

ssh-directory

包含私钥、known_hostsconfig和其他必要文件的.ssh目录。如果您提供此工作区,则任务将使用它来对Git仓库进行身份验证。将此工作区绑定到Secret资源以安全地存储身份验证信息。

basic-auth

包含.gitconfig.git-credentials文件的工作区。如果您提供此工作区,则任务将使用它来对Git仓库进行身份验证。尽可能使用ssh-directory工作区进行身份验证,而不是basic-auth。将此工作区绑定到Secret资源以安全地存储身份验证信息。

ssl-ca-directory

包含CA证书的工作区。如果您提供此工作区,Git将使用这些证书在使用HTTPS与远程仓库交互时验证对等方。

output

包含已获取git仓库的工作区,数据将放置在工作区的根目录或由SUBDIRECTORY参数定义的相对路径上。

表 16. git-clone任务返回的结果
结果 类型 描述

COMMIT

string

克隆的Git仓库中当前分支HEAD处的提交的SHA摘要。

URL

string

已克隆仓库的URL。

COMMITTER_DATE

string

克隆的Git仓库中当前分支HEAD处的提交的纪元时间戳。

git-clone ClusterTask 的更改
  • 所有参数名称都已更改为大写。

  • 所有结果名称都已更改为大写。

  • 移除了gitInitImage参数。

kn

kn任务使用kn命令行实用程序来完成对Knative资源(例如服务、修订版或路由)的操作。

kn任务的示例用法
apiVersion: tekton.dev/v1
kind: PipelineRun
metadata:
 name: kn-run
spec:
 pipelineSpec:
   tasks:
   - name: kn-run
     taskRef:
       resolver: cluster
       params:
       - name: kind
         value: task
       - name: name
         value: kn
       - name: namespace
         value: openshift-pipelines
     params:
     - name: ARGS
       value: [version]
表 17. kn任务支持的参数
参数 描述 类型 默认值

ARGS

kn实用程序的参数。

array

- help

kn ClusterTask 的变更
  • 已移除 KN_IMAGE 参数。

kn-apply

kn-apply 任务将指定镜像部署到 Knative 服务。此任务使用 kn service apply 命令创建或更新指定的 Knative 服务。

kn-apply 任务的使用示例
apiVersion: tekton.dev/v1
kind: PipelineRun
metadata:
 name: kn-apply-run
spec:
 pipelineSpec:
   tasks:
   - name: kn-apply-run
     taskRef:
       resolver: cluster
       params:
       - name: kind
         value: task
       - name: name
         value: kn-apply
       - name: namespace
         value: openshift-pipelines
     params:
     - name: SERVICE
       value: "hello"
     - name: IMAGE
       value: "gcr.io/knative-samples/helloworld-go:latest"
表 18. kn-apply 任务支持的参数
参数 描述 类型 默认值

SERVICE

Knative 服务名称。

string

IMAGE

要部署的镜像的完全限定名称。

string

kn-apply ClusterTask 的变更
  • 已移除 KN_IMAGE 参数。

maven

maven 任务运行 Maven 构建。

maven 任务的使用示例
apiVersion: tekton.dev/v1
kind: Pipeline
metadata:
  name: build-and-deploy
spec:
# ...
  tasks:
# ...
  - name: build-from-source
    taskRef:
      resolver: cluster
      params:
      - name: kind
        value: task
      - name: name
        value: maven
      - name: namespace
        value: openshift-pipelines
    workspaces:
    - name: source
      workspace: shared-workspace
# ...
表 19. maven 任务支持的参数
参数 描述 类型 默认值

GOALS

要运行的 Maven 目标。

array

- package

MAVEN_MIRROR_URL

Maven 镜像仓库 URL。

string

SUBDIRECTORY

任务在source工作区内运行Maven构建的子目录。

string

.

表 20. maven 任务支持的工作区
工作区 描述

source

包含 Maven 项目的工作区。

server_secret

包含连接到 Maven 服务器的凭据(例如用户名和密码)的工作区。

proxy_secret

包含连接到代理服务器的凭据(例如用户名和密码)的工作区。

proxy_configmap

包含代理配置值(例如 proxy_portproxy_hostproxy_protocolproxy_non_proxy_hosts)的工作区。

maven_settings

包含自定义 Maven 设置的工作区。

maven ClusterTask 的变更
  • 参数名称 CONTEXT_DIR 已更改为 SUBDIRECTORY

  • 工作区名称 maven-settings 已更改为 maven_settings

openshift-client

openshift-client 任务使用 oc 命令行界面运行命令。您可以使用此任务来管理 OpenShift Container Platform 集群。

openshift-client 任务的使用示例
apiVersion: tekton.dev/v1
kind: PipelineRun
metadata:
 name: openshift-client-run
spec:
 pipelineSpec:
   tasks:
   - name: openshift-client-run
     taskRef:
       resolver: cluster
       params:
       - name: kind
         value: task
       - name: name
         value: openshift-client
       - name: namespace
         value: openshift-pipelines
     params:
     - name: SCRIPT
       value: "oc version"
表 21. openshift-client 任务支持的参数
参数 描述 类型 默认值

SCRIPT

要运行的 oc CLI 参数。

string

oc help

VERSION

要使用的 OpenShift Container Platform 版本。

string

latest

表 22. openshift-client 任务支持的工作区
工作区 描述

manifest_dir

包含要使用 oc 实用程序应用的清单文件的工作区。

kubeconfig_dir

一个可选的工作区,您可以在其中提供一个包含访问集群凭据的 .kube/config 文件。将此文件放在工作区的根目录下,并将其命名为 kubeconfig

openshift-client ClusterTask 的变更
  • 工作区名称 manifest-dir 已更改为 manifest_dir

  • 工作区名称 kubeconfig-dir 已更改为 kubeconfig_dir

s2i-dotnet

s2i-dotnet 任务使用 Source to Image (S2I) dotnet builder 镜像构建源代码,该镜像可在 OpenShift Container Platform 注册表中获取,名称为 image-registry.openshift-image-registry.svc:5000/openshift/dotnet

s2i-dotnet 任务的使用示例
apiVersion: tekton.dev/v1
kind: Pipeline
metadata:
  name: build-and-deploy
spec:
# ...
  tasks:
# ...
  - name: build-s2i
    taskRef:
      resolver: cluster
      params:
      - name: kind
        value: task
      - name: name
        value: s2i-dotnet
      - name: namespace
        value: openshift-pipelines
    workspaces:
    - name: source
      workspace: shared-workspace
# ...
表 23. s2i-dotnet 任务支持的参数
参数 描述 类型 默认值

IMAGE

S2I 进程构建的容器镜像的完全限定名称。

string

IMAGE_SCRIPTS_URL

包含构建器镜像的默认组装和运行脚本的 URL。

string

image:///usr/libexec/s2i

ENV_VARS

要在构建过程中设置的环境变量值的数组,以 KEY=VALUE 格式列出。

array

CONTEXT

source 工作区内用作上下文的目录的路径。

string

.

STORAGE_DRIVER

设置 Buildah 存储驱动程序以反映当前集群节点设置。

string

vfs

FORMAT

要构建的容器的格式,ocidocker

string

oci

BUILD_EXTRA_ARGS

构建镜像时 build 命令的额外参数。

string

PUSH_EXTRA_ARGS

推送镜像时 push 命令的额外参数。

string

SKIP_PUSH

跳过将镜像推送到容器注册表。

string

false

TLS_VERIFY

TLS 验证标志,通常为 true

string

true

VERBOSE

打开详细日志记录;所有执行的命令都添加到日志中。

string

false

VERSION

镜像流的标签,对应于语言版本。

string

latest

表 24. s2i-dotnet 任务支持的工作区
工作区 描述

source

应用程序源代码,它是 S2I 工作流的构建上下文。

dockerconfig

一个可选的工作区,用于提供Buildah用来访问容器注册表的.docker/config.json文件。将文件放在工作区的根目录下,命名为config.json.dockerconfigjson

表 25. s2i-dotnet 任务返回的结果
结果 类型 描述

IMAGE_URL

string

已构建镜像的完全限定名称。

IMAGE_DIGEST

string

已构建镜像的摘要。

s2i-go

s2i-go 任务使用 S2I Golang builder 镜像构建源代码,该镜像可在 OpenShift Container Platform 注册表中获取,名称为 image-registry.openshift-image-registry.svc:5000/openshift/golang

s2i-go 任务的使用示例
apiVersion: tekton.dev/v1
kind: Pipeline
metadata:
  name: build-and-deploy
spec:
# ...
  tasks:
# ...
  - name: build-s2i
    taskRef:
      resolver: cluster
      params:
      - name: kind
        value: task
      - name: name
        value: s2i-go
      - name: namespace
        value: openshift-pipelines
    workspaces:
    - name: source
      workspace: shared-workspace
# ...
表 26. s2i-go 任务支持的参数
参数 描述 类型 默认值

IMAGE

S2I 进程构建的容器镜像的完全限定名称。

string

IMAGE_SCRIPTS_URL

包含构建器镜像的默认组装和运行脚本的 URL。

string

image:///usr/libexec/s2i

ENV_VARS

要在构建过程中设置的环境变量值的数组,以 KEY=VALUE 格式列出。

array

CONTEXT

source 工作区内用作上下文的目录的路径。

string

.

STORAGE_DRIVER

设置 Buildah 存储驱动程序以反映当前集群节点设置。

string

vfs

FORMAT

要构建的容器的格式,ocidocker

string

oci

BUILD_EXTRA_ARGS

构建镜像时 build 命令的额外参数。

string

PUSH_EXTRA_ARGS

推送镜像时 push 命令的额外参数。

string

SKIP_PUSH

跳过将镜像推送到容器注册表。

string

false

TLS_VERIFY

TLS 验证标志,通常为 true

string

true

VERBOSE

打开详细日志记录;所有执行的命令都添加到日志中。

string

false

VERSION

镜像流的标签,对应于语言版本。

string

latest

表 27. s2i-go 任务支持的工作区
工作区 描述

source

应用程序源代码,它是 S2I 工作流的构建上下文。

dockerconfig

一个可选的工作区,用于提供Buildah用来访问容器注册表的.docker/config.json文件。将文件放在工作区的根目录下,命名为config.json.dockerconfigjson

表 28. s2i-go 任务返回的结果
结果 类型 描述

IMAGE_URL

string

已构建镜像的完全限定名称。

IMAGE_DIGEST

string

已构建镜像的摘要。

s2i-java

s2i-java 任务使用 S2I Java builder 镜像构建源代码,该镜像可在 OpenShift Container Platform 注册表中获取,名称为 image-registry.openshift-image-registry.svc:5000/openshift/java

表 29. s2i-java 任务支持的参数
参数 描述 类型 默认值

IMAGE

S2I 进程构建的容器镜像的完全限定名称。

string

IMAGE_SCRIPTS_URL

包含构建器镜像的默认组装和运行脚本的 URL。

string

image:///usr/libexec/s2i

ENV_VARS

要在构建过程中设置的环境变量值的数组,以 KEY=VALUE 格式列出。

array

CONTEXT

source 工作区内用作上下文的目录的路径。

string

.

STORAGE_DRIVER

设置 Buildah 存储驱动程序以反映当前集群节点设置。

string

vfs

FORMAT

要构建的容器的格式,ocidocker

string

oci

BUILD_EXTRA_ARGS

构建镜像时 build 命令的额外参数。

string

PUSH_EXTRA_ARGS

推送镜像时 push 命令的额外参数。

string

SKIP_PUSH

跳过将镜像推送到容器注册表。

string

false

TLS_VERIFY

TLS 验证标志,通常为 true

string

true

VERBOSE

打开详细日志记录;所有执行的命令都添加到日志中。

string

false

VERSION

镜像流的标签,对应于语言版本。

string

latest

表 30. s2i-java 任务支持的工作区
工作区 描述

source

应用程序源代码,它是 S2I 工作流的构建上下文。

dockerconfig

一个可选的工作区,用于提供Buildah用来访问容器注册表的.docker/config.json文件。将文件放在工作区的根目录下,命名为config.json.dockerconfigjson

表 31. s2i-java 任务返回的结果
结果 类型 描述

IMAGE_URL

string

已构建镜像的完全限定名称。

IMAGE_DIGEST

string

已构建镜像的摘要。

s2i-java ClusterTask 的变更
  • 添加了几个新的参数。

  • 已移除 BUILDER_IMAGEMAVEN_ARGS_APPENDMAVEN_CLEAR_REPOMAVEN_MIRROR_URL 参数。您可以将 MAVEN_ARGS_APPENDMAVEN_CLEAR_REPOMAVEN_MIRROR_URL 值作为环境变量传递。

  • 参数名称 PATH_CONTEXT 已更改为 CONTEXT

  • 参数名称 TLS_VERIFY 已更改为 TLSVERIFY

  • 已添加 IMAGE_URL 结果。

s2i-nodejs

s2i-nodejs 任务使用 S2I NodeJS builder 镜像构建源代码,该镜像可在 OpenShift Container Platform 注册表中获取,名称为 image-registry.openshift-image-registry.svc:5000/openshift/nodejs

s2i-nodejs 任务的使用示例
apiVersion: tekton.dev/v1
kind: Pipeline
metadata:
  name: build-and-deploy
spec:
# ...
  tasks:
# ...
  - name: build-s2i
    taskRef:
      resolver: cluster
      params:
      - name: kind
        value: task
      - name: name
        value: s2i-nodejs
      - name: namespace
        value: openshift-pipelines
    workspaces:
    - name: source
      workspace: shared-workspace
# ...
表 32. s2i-nodejs 任务支持的参数
参数 描述 类型 默认值

IMAGE

S2I 进程构建的容器镜像的完全限定名称。

string

IMAGE_SCRIPTS_URL

包含构建器镜像的默认组装和运行脚本的 URL。

string

image:///usr/libexec/s2i

ENV_VARS

要在构建过程中设置的环境变量值的数组,以 KEY=VALUE 格式列出。

array

CONTEXT

source 工作区内用作上下文的目录的路径。

string

.

STORAGE_DRIVER

设置 Buildah 存储驱动程序以反映当前集群节点设置。

string

vfs

FORMAT

要构建的容器的格式,ocidocker

string

oci

BUILD_EXTRA_ARGS

构建镜像时 build 命令的额外参数。

string

PUSH_EXTRA_ARGS

推送镜像时 push 命令的额外参数。

string

SKIP_PUSH

跳过将镜像推送到容器注册表。

string

false

TLS_VERIFY

TLS 验证标志,通常为 true

string

true

VERBOSE

打开详细日志记录;所有执行的命令都添加到日志中。

string

false

VERSION

镜像流的标签,对应于语言版本。

string

latest

表 33. s2i-nodejs 任务支持的工作区
工作区 描述

source

应用程序源代码,它是 S2I 工作流的构建上下文。

dockerconfig

一个可选的工作区,用于提供Buildah用来访问容器注册表的.docker/config.json文件。将文件放在工作区的根目录下,命名为config.json.dockerconfigjson

表 34. s2i-nodejs 任务返回的结果
结果 类型 描述

IMAGE_URL

string

已构建镜像的完全限定名称。

IMAGE_DIGEST

string

已构建镜像的摘要。

s2i-perl

s2i-perl 任务使用 S2I Perl builder 镜像构建源代码,该镜像可在 OpenShift Container Platform 注册表中获取,名称为 image-registry.openshift-image-registry.svc:5000/openshift/perl

s2i-perl 任务的使用示例
apiVersion: tekton.dev/v1
kind: Pipeline
metadata:
  name: build-and-deploy
spec:
# ...
  tasks:
# ...
  - name: build-s2i
    taskRef:
      resolver: cluster
      params:
      - name: kind
        value: task
      - name: name
        value: s2i-perl
      - name: namespace
        value: openshift-pipelines
    workspaces:
    - name: source
      workspace: shared-workspace
# ...
表 35. s2i-perl 任务支持的参数
参数 描述 类型 默认值

IMAGE

S2I 进程构建的容器镜像的完全限定名称。

string

IMAGE_SCRIPTS_URL

包含构建器镜像的默认组装和运行脚本的 URL。

string

image:///usr/libexec/s2i

ENV_VARS

要在构建过程中设置的环境变量值的数组,以 KEY=VALUE 格式列出。

array

CONTEXT

source 工作区内用作上下文的目录的路径。

string

.

STORAGE_DRIVER

设置 Buildah 存储驱动程序以反映当前集群节点设置。

string

vfs

FORMAT

要构建的容器的格式,ocidocker

string

oci

BUILD_EXTRA_ARGS

构建镜像时 build 命令的额外参数。

string

PUSH_EXTRA_ARGS

推送镜像时 push 命令的额外参数。

string

SKIP_PUSH

跳过将镜像推送到容器注册表。

string

false

TLS_VERIFY

TLS 验证标志,通常为 true

string

true

VERBOSE

打开详细日志记录;所有执行的命令都添加到日志中。

string

false

VERSION

镜像流的标签,对应于语言版本。

string

latest

表 36. s2i-perl 任务支持的工作区
工作区 描述

source

应用程序源代码,它是 S2I 工作流的构建上下文。

dockerconfig

一个可选的工作区,用于提供Buildah用来访问容器注册表的.docker/config.json文件。将文件放在工作区的根目录下,命名为config.json.dockerconfigjson

表 37. s2i-perl 任务返回的结果
结果 类型 描述

IMAGE_URL

string

已构建镜像的完全限定名称。

IMAGE_DIGEST

string

已构建镜像的摘要。

s2i-php

s2i-php 任务使用 S2I PHP builder 镜像构建源代码,该镜像可在 OpenShift Container Platform 注册表中获取,名称为 image-registry.openshift-image-registry.svc:5000/openshift/php

s2i-php 任务的使用示例
apiVersion: tekton.dev/v1
kind: Pipeline
metadata:
  name: build-and-deploy
spec:
# ...
  tasks:
# ...
  - name: build-s2i
    taskRef:
      resolver: cluster
      params:
      - name: kind
        value: task
      - name: name
        value: s2i-php
      - name: namespace
        value: openshift-pipelines
    workspaces:
    - name: source
      workspace: shared-workspace
# ...
表 38. s2i-php 任务支持的参数
参数 描述 类型 默认值

IMAGE

S2I 进程构建的容器镜像的完全限定名称。

string

IMAGE_SCRIPTS_URL

包含构建器镜像的默认组装和运行脚本的 URL。

string

image:///usr/libexec/s2i

ENV_VARS

要在构建过程中设置的环境变量值的数组,以 KEY=VALUE 格式列出。

array

CONTEXT

source 工作区内用作上下文的目录的路径。

string

.

STORAGE_DRIVER

设置 Buildah 存储驱动程序以反映当前集群节点设置。

string

vfs

FORMAT

要构建的容器的格式,ocidocker

string

oci

BUILD_EXTRA_ARGS

构建镜像时 build 命令的额外参数。

string

PUSH_EXTRA_ARGS

推送镜像时 push 命令的额外参数。

string

SKIP_PUSH

跳过将镜像推送到容器注册表。

string

false

TLS_VERIFY

TLS 验证标志,通常为 true

string

true

VERBOSE

打开详细日志记录;所有执行的命令都添加到日志中。

string

false

VERSION

镜像流的标签,对应于语言版本。

string

latest

表 39. s2i-php 任务支持的工作区
工作区 描述

source

应用程序源代码,它是 S2I 工作流的构建上下文。

dockerconfig

一个可选的工作区,用于提供Buildah用来访问容器注册表的.docker/config.json文件。将文件放在工作区的根目录下,命名为config.json.dockerconfigjson

表 40. s2i-php 任务返回的结果
结果 类型 描述

IMAGE_URL

string

已构建镜像的完全限定名称。

IMAGE_DIGEST

string

已构建镜像的摘要。

s2i-python

s2i-python 任务使用 S2I Python builder 镜像构建源代码,该镜像可在 OpenShift Container Platform 注册表中获取,名称为 image-registry.openshift-image-registry.svc:5000/openshift/python

s2i-python 任务的使用示例
apiVersion: tekton.dev/v1
kind: Pipeline
metadata:
  name: build-and-deploy
spec:
# ...
  tasks:
# ...
  - name: build-s2i
    taskRef:
      resolver: cluster
      params:
      - name: kind
        value: task
      - name: name
        value: s2i-python
      - name: namespace
        value: openshift-pipelines
    workspaces:
    - name: source
      workspace: shared-workspace
# ...
表 41. s2i-python 任务支持的参数
参数 描述 类型 默认值

IMAGE

S2I 进程构建的容器镜像的完全限定名称。

string

IMAGE_SCRIPTS_URL

包含构建器镜像的默认组装和运行脚本的 URL。

string

image:///usr/libexec/s2i

ENV_VARS

要在构建过程中设置的环境变量值的数组,以 KEY=VALUE 格式列出。

array

CONTEXT

source 工作区内用作上下文的目录的路径。

string

.

STORAGE_DRIVER

设置 Buildah 存储驱动程序以反映当前集群节点设置。

string

vfs

FORMAT

要构建的容器的格式,ocidocker

string

oci

BUILD_EXTRA_ARGS

构建镜像时 build 命令的额外参数。

string

PUSH_EXTRA_ARGS

推送镜像时 push 命令的额外参数。

string

SKIP_PUSH

跳过将镜像推送到容器注册表。

string

false

TLS_VERIFY

TLS 验证标志,通常为 true

string

true

VERBOSE

打开详细日志记录;所有执行的命令都添加到日志中。

string

false

VERSION

镜像流的标签,对应于语言版本。

string

latest

表 42. s2i-python 任务支持的工作区
工作区 描述

source

应用程序源代码,它是 S2I 工作流的构建上下文。

dockerconfig

一个可选的工作区,用于提供Buildah用来访问容器注册表的.docker/config.json文件。将文件放在工作区的根目录下,命名为config.json.dockerconfigjson

表 43. s2i-python 任务返回的结果
结果 类型 描述

IMAGE_URL

string

已构建镜像的完全限定名称。

IMAGE_DIGEST

string

已构建镜像的摘要。

s2i-ruby

s2i-ruby 任务使用 S2I Ruby builder 镜像构建源代码,该镜像可在 OpenShift Container Platform 注册表中获取,名称为 image-registry.openshift-image-registry.svc:5000/openshift/ruby

s2i-ruby 任务的使用示例
apiVersion: tekton.dev/v1
kind: Pipeline
metadata:
  name: build-and-deploy
spec:
# ...
  tasks:
# ...
  - name: build-s2i
    taskRef:
      resolver: cluster
      params:
      - name: kind
        value: task
      - name: name
        value: s2i-ruby
      - name: namespace
        value: openshift-pipelines
    workspaces:
    - name: source
      workspace: shared-workspace
# ...
表 44. s2i-ruby 任务支持的参数
参数 描述 类型 默认值

IMAGE

S2I 进程构建的容器镜像的完全限定名称。

string

IMAGE_SCRIPTS_URL

包含构建器镜像的默认组装和运行脚本的 URL。

string

image:///usr/libexec/s2i

ENV_VARS

要在构建过程中设置的环境变量值的数组,以 KEY=VALUE 格式列出。

array

CONTEXT

source 工作区内用作上下文的目录的路径。

string

.

STORAGE_DRIVER

设置 Buildah 存储驱动程序以反映当前集群节点设置。

string

vfs

FORMAT

要构建的容器的格式,ocidocker

string

oci

BUILD_EXTRA_ARGS

构建镜像时 build 命令的额外参数。

string

PUSH_EXTRA_ARGS

推送镜像时 push 命令的额外参数。

string

SKIP_PUSH

跳过将镜像推送到容器注册表。

string

false

TLS_VERIFY

TLS 验证标志,通常为 true

string

true

VERBOSE

打开详细日志记录;所有执行的命令都添加到日志中。

string

false

VERSION

镜像流的标签,对应于语言版本。

string

latest

表 45. s2i-ruby 任务支持的工作区
工作区 描述

source

应用程序源代码,它是 S2I 工作流的构建上下文。

dockerconfig

一个可选的工作区,用于提供Buildah用来访问容器注册表的.docker/config.json文件。将文件放在工作区的根目录下,命名为config.json.dockerconfigjson

表 46. s2i-ruby 任务返回的结果
结果 类型 描述

IMAGE_URL

string

已构建镜像的完全限定名称。

IMAGE_DIGEST

string

已构建镜像的摘要。

skopeo-copy

skopeo-copy 任务执行 skopeo copy 命令。

Skopeo 是一个用于处理远程容器镜像注册表的命令行工具,它不需要守护程序或其他基础设施来加载和运行镜像。skopeo copy 命令将镜像从一个远程注册表复制到另一个远程注册表,例如,从内部注册表复制到生产注册表。Skopeo 支持使用您提供的凭据对镜像注册表进行授权。

skopeo-copy 任务的使用示例
apiVersion: tekton.dev/v1
kind: Pipeline
metadata:
  name: build-deploy-image
spec:
# ...
  tasks:
  - name: copy-image
    taskRef:
      resolver: cluster
      params:
      - name: kind
        value: task
      - name: name
        value: skopeo-copy
      - name: namespace
        value: openshift-pipelines
    params:
    - name: SOURCE_IMAGE_URL
      value: "docker://internal.registry/myimage:latest"
    - name: DESTINATION_IMAGE_URL
      value: "docker://production.registry/myimage:v1.0"
    workspaces:
    - name: output
      workspace: shared-workspace
表 47. skopeo-copy 任务支持的参数
参数 描述 类型 默认值

SOURCE_IMAGE_URL

源容器镜像的全限定名,包括标签。

string

DESTINATION_IMAGE_URL

Skopeo 将源镜像复制到的目标镜像的全限定名,包括标签。

string

SRC_TLS_VERIFY

源注册表的 TLS 验证标志,通常为 true

string

true

DEST_TLS_VERIFY

目标注册表的 TLS 验证标志,通常为 true

string

true

VERBOSE

将调试信息输出到日志。

string

false

表 48. skopeo-copy 任务支持的工作区
工作区 描述

images_url

如果要复制多个镜像,请使用此工作区提供镜像 URL。

表 49. skopeo-copy 任务返回的结果
结果 类型 描述

SOURCE_DIGEST

string

源镜像的 SHA256 校验和。

DESTINATION_DIGEST

string

目标镜像的 SHA256 校验和。

skopeo-copy ClusterTask 的更改
  • 所有参数名称都已更改为大写。

  • 添加了VERBOSE参数。

  • 工作区名称已从 images-url 更改为 images_url

  • 添加了 SOURCE_DIGESTDESTINATION_DIGEST 结果。

tkn

tkn 任务使用 tkn 对 Tekton 资源执行操作。

tkn 任务的使用示例
apiVersion: tekton.dev/v1
kind: PipelineRun
metadata:
 name: tkn-run
spec:
 pipelineSpec:
   tasks:
   - name: tkn-run
     taskRef:
       resolver: cluster
       params:
       - name: kind
         value: task
       - name: name
         value: tkn
       - name: namespace
         value: openshift-pipelines
     params:
     - name: ARGS
表 50. tkn 任务支持的参数
参数 描述 类型 默认值

SCRIPT

要执行的 tkn CLI 脚本。

string

tkn $@

ARGS

要运行的 tkn CLI 参数。

array

- --help

表 51. tkn 任务支持的工作区
工作区 描述

kubeconfig_dir

一个可选的工作区,您可以在其中提供一个包含访问集群凭据的 .kube/config 文件。将此文件放在工作区的根目录下,并将其命名为 kubeconfig

tkn ClusterTask 的更改
  • 已删除 TKN_IMAGE 参数。

  • 工作区名称已从 kubeconfig 更改为 kubeconfig_dir

OpenShift Pipelines 提供的步骤操作

OpenShift Pipelines 提供了一个标准的 StepAction 定义,您可以在任务中使用它。使用集群解析器来引用此定义。

git-clone

git-clone 步骤操作使用 Git 在工作区上初始化和克隆远程存储库。您可以使用此步骤操作来定义一个任务,该任务在构建或以其他方式处理此源代码的管道开始时克隆存储库。

git-clone 步骤操作在任务中的使用示例
apiVersion: tekton.dev/v1
kind: Task
metadata:
  name: clone-repo-anon
spec:
# ...
  steps:
  - name: clone-repo-step
    ref:
      resolver: cluster
      params:
      - name: name
        value: git-clone
      - name: namespace
        value: openshift-pipelines
      - name: kind
        value: stepaction
    params:
    - name: URL
      value: $(params.url)
    - name: OUTPUT_PATH
      value: $(workspaces.output.path)
表 52. git-clone 步骤操作支持的参数
参数 描述 类型 默认值

OUTPUT_PATH

获取的 Git 存储库的目录。克隆的仓库数据放置在目录的根目录或由 SUBDIRECTORY 参数定义的相对路径中。

string

SSH_DIRECTORY_PATH

包含私钥、known_hostsconfig 和其他必要文件的 .ssh 目录。如果您提供此目录,则任务将使用它来进行 Git 存储库的身份验证。将提供此目录的工作区绑定到 Secret 资源以安全存储身份验证信息。

string

BASIC_AUTH_PATH

包含 .gitconfig.git-credentials 文件的目录。如果您提供此目录,则任务将使用它来进行 Git 存储库的身份验证。尽可能使用 SSH_DIRECTORY_PATH 目录进行身份验证,而不是 BASIC_AUTH_PATH。将提供此目录的工作区绑定到 Secret 资源以安全存储身份验证信息。

string

SSL_CA_DIRECTORY_PATH

包含CA证书的工作区。如果您提供此工作区,Git将使用这些证书在使用HTTPS与远程仓库交互时验证对等方。

string

CRT_FILENAME

ssl-ca-directory 工作区中的证书颁发机构 (CA) 捆绑包文件名。

string

ca-bundle.crt

HTTP_PROXY

HTTP 代理服务器(非TLS请求)。

string

HTTPS_PROXY

HTTPS 代理服务器(TLS请求)。

string

NO_PROXY

选择不使用代理进行HTTP/HTTPS请求。

string

SUBDIRECTORY

任务放置Git仓库的output工作区的相对路径。

string

USER_HOME

pod中Git用户主目录的绝对路径。

string

/home/git

DELETE_EXISTING

在运行Git操作之前,删除默认工作区的内容(如果存在)。

string

true

VERBOSE

记录执行的命令。

string

false

SSL_VERIFY

全局http.sslVerify值。除非您信任远程仓库,否则不要将此参数设置为false

string

true

URL

Git仓库URL。

string

REVISION

要检出的修订版本,例如分支或标签。

string

main

REFSPEC

任务在检出修订版本之前获取的仓库的refspec字符串。

string

SUBMODULES

初始化并获取Git子模块。

string

true

DEPTH

要获取的提交次数,单个提交是“浅克隆”。

string

1

SPARSE_CHECKOUT_DIRECTORIES

用于执行“稀疏检出”的目录模式列表,用逗号分隔。

string

表 53. git-clone 步骤操作返回的结果
结果 类型 描述

COMMIT

string

克隆的Git仓库中当前分支HEAD处的提交的SHA摘要。

URL

string

已克隆仓库的URL。

COMMITTER_DATE

string

克隆的Git仓库中当前分支HEAD处的提交的纪元时间戳。

关于非版本化和版本化任务和步骤操作

openshift-pipelines 命名空间包含版本化任务和步骤操作以及标准的非版本化任务和步骤操作。例如,安装 Red Hat OpenShift Pipelines Operator v1.16 将创建以下项目:

  • buildah-1-16-0 版本化任务

  • buildah 非版本化任务

  • git-clone-1-16-0 版本化 StepAction 定义

  • git-clone 非版本化 StepAction 定义

非版本化和版本化任务和步骤操作具有相同的元数据、行为和规范,包括 paramsworkspacessteps。但是,当您禁用它们或升级 Operator 时,它们的行为有所不同。

在将非版本化或版本化任务和步骤操作作为生产环境中的标准采用之前,集群管理员可能会考虑它们的优缺点。

表 54. 非版本化和版本化任务和步骤操作的优缺点
优点 缺点

非版本化任务和步骤操作

  • 如果您希望使用最新的更新和错误修复来部署管道,请使用非版本化任务和步骤操作。

  • 升级 Operator 会升级非版本化任务和步骤操作,这比多个版本化任务和步骤操作消耗更少的资源。

  • 如果您部署使用非版本化任务和步骤操作的管道,则在 Operator 升级后,如果自动升级的任务和步骤操作不向后兼容,它们可能会中断。

版本化任务和步骤操作

  • 如果您更喜欢生产环境中稳定的管道,请使用版本化任务和步骤操作。

  • 即使安装了任务或步骤操作的更高版本后,早期版本也会保留在集群中。您可以继续使用早期版本。

  • 如果您继续使用早期版本,您可能会错过最新的功能和关键的安全更新。

  • 不运行的早期版本会消耗集群资源。

  • 升级后,Operator 无法管理早期版本的任务和步骤操作。您可以手动删除早期版本,但无法恢复它们。

非版本化和版本化任务和步骤操作具有不同的命名约定,Red Hat OpenShift Pipelines Operator 对它们的升级方式也不同。

表 55. 非版本化和版本化任务和步骤操作的区别
命名法 升级

非版本化任务和步骤操作

非版本化任务和步骤操作仅包含任务或步骤操作的名称。例如,使用 Operator v1.16 安装的 Buildah 的非版本化任务的名称为 buildah

升级 Operator 时,它会使用最新的更改更新非版本化任务和步骤操作。名称保持不变。

版本化任务和步骤操作

版本化任务和步骤操作包含名称,后跟版本作为后缀。例如,使用 Operator v1.16 安装的 Buildah 的版本化任务的名称为 buildah-1-16-0

升级 Operator 将安装版本化任务和步骤操作的最新版本,并保留早期版本。最新版本对应于已升级的 Operator。例如,安装 Operator 1.17 将安装 git-clone-1-17-0 步骤操作并保留 git-clone-1-16-0 步骤操作。