搜索

第 3 章 使用解析器指定远程管道和任务

download PDF

管道和任务是 CI/CD 进程的可重复使用的块。您可以重复使用之前开发的管道或任务,或者由其他人开发的任务,而无需复制并粘贴其定义。这些管道或任务可从集群中的其他命名空间中的几种源到公共目录提供。

在管道运行资源中,您可以从现有源指定管道。在管道资源或任务运行资源中,您可以从现有源指定任务。

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

以下解析器包括在 Red Hat OpenShift Pipelines 的默认 installaton 中:

hub 解析器
从 Artifact Hub 或 Tekton Hub 上的 Pipelines Catalog 检索任务或管道。
捆绑包解析器
从 Tekton 捆绑包检索任务或管道,该捆绑包是可从任何 OCI 存储库(如 OpenShift 容器存储库)提供的 OCI 镜像。
集群解析器
检索已在特定命名空间中在同一 OpenShift Container Platform 集群中创建的任务或管道。
Git 解析器
从 Git 存储库检索任务或管道绑定。您必须指定存储库、分支和路径。

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

3.1. 从 Tekton 目录指定远程管道或任务

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

重要

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

3.1.1. 配置 hub 解析器

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

流程

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

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

    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 是 Tekton Hub。
    6
    使用的 Tekton Hub API,如果 default-type 选项被设置为 tekton
    7
    可选:如果 default-type 选项被设置为 artifact,则使用 Artifact Hub API。
    重要

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

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

3.1.2. 使用 hub 解析器指定远程管道或任务

在创建管道运行时,您可以指定来自 Artifact Hub 或 Tekton Hub 的远程管道。在创建管道或任务运行时,您可以从 Artifact Hub 或 Tekton Hub 指定远程任务。

流程

  • 要指定来自 Artifact Hub 或 Tekton Hub 的远程管道或任务,请在 pipelineReftaskRef spec 中使用以下引用格式:

    # ...
      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>
    # ...
    表 3.1. hub 解析器支持的参数
    参数描述示例值

    catalog

    用于拉取资源的目录。

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

    type

    用于拉取资源的目录类型。artifact(Artifact Hub)或 tekton(Tekton Hub)。

    默认: 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-cluster-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: cluster-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
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.