$ oc edit TektonConfig config
流水线和任务是 CI/CD 过程的可重用块。您可以重用以前开发的或其他人开发的流水线或任务,而无需复制和粘贴它们的定义。这些流水线或任务可以来自多种类型的来源,从集群上的其他命名空间到公共目录。
在流水线运行资源中,您可以从现有来源指定流水线。在流水线资源或任务运行资源中,您可以从现有来源指定任务。
在StepAction
自定义资源 (CR) 中定义的步骤操作是单个步骤在任务中完成的可重用操作。指定步骤时,您可以引用现有来源中的StepAction
定义。
在这些情况下,Red Hat OpenShift Pipelines 中的解析器会在运行时从指定的源检索管道、任务或StepAction
定义。
Red Hat OpenShift Pipelines 的默认安装中提供以下解析器:
从 Artifact Hub 或 Tekton Hub 上提供的 Pipelines Catalog 中检索任务、管道或StepAction
定义。
从 Tekton bundle 中检索任务、管道或StepAction
定义。Tekton bundle 是一个 OCI 镜像,可从任何 OCI 仓库(例如 OpenShift 容器仓库)获取。
从 Git 仓库检索任务、管道或StepAction
定义。您必须指定仓库、分支和路径。
从远程 HTTP 或 HTTPS URL 检索任务、管道或StepAction
定义。您必须指定用于身份验证的 URL。
检索已经在同一 OpenShift Container Platform 集群的特定命名空间中创建的任务、管道或StepAction
定义。
OpenShift Pipelines 安装包含一组标准任务,您可以在管道中使用这些任务。这些任务位于 OpenShift Pipelines 安装命名空间中,通常是openshift-pipelines
命名空间。您可以使用集群解析器访问这些任务。
OpenShift Pipelines 还提供标准的StepAction
定义。您可以使用集群解析器访问此定义。
您可以使用 Hub 解析器指定在公共 Tekton 目录 Artifact Hub 或 Tekton Hub 实例中定义的远程管道、任务或StepAction
定义。
Red Hat OpenShift Pipelines 不支持 Artifact Hub 项目。仅支持 Artifact Hub 的配置。 |
您可以通过配置 Hub 解析器来更改拉取资源的默认 Hub 和默认目录设置。
要编辑TektonConfig
自定义资源,请输入以下命令:
$ oc edit TektonConfig config
在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。 |
如果将 如果将 |
创建管道运行时,您可以指定来自 Artifact Hub 或 Tekton Hub 的远程管道。创建管道或任务运行时,您可以指定来自 Artifact Hub 或 Tekton Hub 的远程任务。在任务中创建步骤时,您可以引用来自 Artifact Hub 或 Tekton Hub 的远程StepAction
定义。
要指定来自 Artifact Hub 或 Tekton Hub 的远程管道、任务或StepAction
定义,请在pipelineRef
、taskRef
或step.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>
# ...
参数 | 描述 | 示例值 |
---|---|---|
|
拉取资源的目录。 |
默认: |
|
拉取资源的目录类型。对于 Artifact Hub 为 |
默认: |
|
|
默认: |
|
要从 Hub 获取的任务或管道的名称。 |
|
|
要从 Hub 获取的任务或管道的版本。必须使用引号 ( |
|
如果管道或任务需要其他参数,请在管道、管道运行或任务运行的规范的params
部分中指定这些参数的值。pipelineRef
或taskRef
规范的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
您可以使用 bundle 解析器从 Tekton bundle 指定远程管道、任务或StepAction
定义。Tekton bundle 是一个 OCI 镜像,可从任何 OCI 仓库(例如 OpenShift 容器仓库)获取。
您可以通过配置 bundle 解析器来更改默认服务帐户名称和从 Tekton bundle 拉取资源的默认类型。
要编辑TektonConfig
自定义资源,请输入以下命令:
$ oc edit TektonConfig config
在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 镜像中的默认层类型。 |
创建管道运行时,您可以指定来自 Tekton bundle 的远程管道。创建管道或任务运行时,您可以指定来自 Tekton bundle 的远程任务。在任务中创建步骤时,您可以引用来自 Tekton bundle 的远程StepAction
定义。
要指定来自 Tekton bundle 的远程管道、任务或StepAction
定义,请在pipelineRef
、taskRef
或step.ref
规范中使用以下引用格式:
# ...
resolver: bundles
params:
- name: bundle
value: <fully_qualified_image_name>
- name: name
value: <resource_name>
- name: kind
value: [pipeline|task]
# ...
参数 | 描述 | 示例值 |
---|---|---|
|
构建注册表凭据时要使用的服务帐户名称。 |
|
|
指向要获取的镜像的 bundle URL。 |
|
|
要从 bundle 中提取的资源名称。 |
|
|
要从 bundle 中提取的资源类型。 |
|
如果管道或任务需要其他参数,请在管道、管道运行或任务运行的规范的params
部分中指定这些参数的值。pipelineRef
或taskRef
规范的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 解析器从 Git 仓库访问远程 Pipeline、Task 或StepAction
定义。该仓库必须包含一个定义 Pipeline 或 Task 的 YAML 文件。对于匿名访问,您无需身份验证凭据即可使用解析器克隆仓库。
如果您想使用匿名 Git 克隆,您可以配置默认 Git 版本、获取超时和默认仓库 URL,以便从 Git 仓库拉取远程 Pipeline 和 Task。
要编辑TektonConfig
自定义资源,请输入以下命令:
$ oc edit TektonConfig config
在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 克隆解析可能花费的最大时间,例如1m 、2s 、700ms 。Red Hat OpenShift Pipelines 还对所有解析请求强制执行 1 分钟的全局最大超时。 |
3 | 如果未指定,则用于匿名克隆的默认 Git 仓库 URL。 |
创建 Pipeline 运行时,您可以使用匿名克隆指定来自 Git 仓库的远程 Pipeline。创建 Pipeline 或 Task 运行时,您可以指定来自 Git 仓库的远程 Task。在 Task 中创建步骤时,您可以引用来自 Git 仓库的远程StepAction
定义。
要指定来自 Git 仓库的远程 Pipeline、Task 或StepAction
定义,请在pipelineRef
、taskRef
或step.ref
规范中使用以下引用格式
# ...
resolver: git
params:
- name: url
value: <git_repository_url>
- name: revision
value: <branch_name>
- name: pathInRepo
value: <path_in_repository>
# ...
参数 | 描述 | 示例值 |
---|---|---|
|
使用匿名克隆时的仓库 URL。 |
|
|
仓库中的 Git 版本。您可以指定分支名称、标签名称或提交 SHA 哈希。 |
|
|
仓库中 YAML 文件的路径名称。 |
|
要匿名克隆和获取仓库,请使用 |
如果 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 解析器从 Git 仓库指定远程 Pipeline、Task 或StepAction
定义。该仓库必须包含一个定义 Pipeline 或 Task 的 YAML 文件。您可以使用支持用户身份验证的经过身份验证的 API 安全地访问仓库。
对于经过身份验证的源代码管理 (SCM) API,您必须设置经过身份验证的 Git 连接的配置。
您可以使用go-scm
库支持的 Git 仓库提供程序。并非所有go-scm
实现都已通过 Git 解析器测试,但已知以下提供程序有效
github.com
和 GitHub Enterprise
gitlab.com
和自托管 Gitlab
Gitea
BitBucket Server
BitBucket Cloud
|
要编辑TektonConfig
自定义资源,请输入以下命令:
$ oc edit TektonConfig config
在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 克隆解析可能花费的最大时间,例如1m 、2s 、700ms 。Red Hat OpenShift Pipelines 还对所有解析请求强制执行 1 分钟的全局最大超时。 |
3 | SCM 提供程序类型。 |
4 | 与经过身份验证的 SCM API 一起使用的基本 URL。如果您使用的是github.com 、gitlab.com 或 BitBucket Cloud,则不需要此设置。 |
5 | 包含 SCM 提供程序 API 令牌的密钥名称。 |
6 | 令牌密钥中包含令牌的键。 |
7 | 包含令牌密钥的命名空间(如果非default )。 |
8 | 可选:使用经过身份验证的 API 时仓库的默认组织。如果您未在解析器参数中指定组织,则使用此组织。 |
|
您可以配置多个 Git 提供程序,也可以为同一个 Git 提供程序添加多个配置,以便在不同的 Task 运行和 Pipeline 运行中使用。
使用您的唯一标识符键前缀在TektonConfig
自定义资源 (CR) 中添加详细信息。
通过运行以下命令编辑TektonConfig
CR
$ oc edit TektonConfig config
在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 值传递,则使用此配置。 |
不支持带有 |
创建 Pipeline 运行时,您可以使用经过身份验证的 SCM API 指定来自 Git 仓库的远程 Pipeline。创建 Pipeline 或 Task 运行时,您可以指定来自 Git 仓库的远程 Task。在 Task 中创建步骤时,您可以引用来自 Git 仓库的远程StepAction
定义。
如果您想使用经过身份验证的 SCM API,则必须为 Git 解析器配置经过身份验证的 Git 连接。
要指定来自 Git 仓库的远程 Pipeline、Task 或StepAction
定义,请在pipelineRef
、taskRef
或step.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>
# ...
参数 | 描述 | 示例值 |
---|---|---|
|
使用经过身份验证的 SCM API 时仓库的组织。 |
|
|
使用经过身份验证的 SCM API 时的仓库名称。 |
|
|
仓库中的 Git 版本。您可以指定分支名称、标签名称或提交 SHA 哈希。 |
|
|
仓库中 YAML 文件的路径名称。 |
|
要匿名克隆和获取仓库,请使用 |
如果管道或任务需要其他参数,请在管道、管道运行或任务运行的规范的params
部分中指定这些参数的值。pipelineRef
或taskRef
规范的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
您可以通过在创建TaskRun
和PipelineRun
资源时传递唯一的configKey
参数来指定多个 Git 提供程序。
如果未传递configKey
参数,则使用默认配置。您也可以通过将configKey
值设置为default
来指定默认配置。
不支持带有 |
通过Tektonconfig
自定义资源配置多个 Git 提供程序。有关更多信息,请参阅“配置多个 Git 提供程序”。
要指定 Git 提供程序,请在pipelineRef
和taskRef
规范中使用以下引用格式
# ...
resolver: git
params:
# ...
- name: configKey
value: <your_unique_key> (1)
# ...
1 | 您的唯一密钥,与一个配置密钥匹配,例如,test1 。 |
您可以在特定 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
参数 | 描述 | 示例值 |
---|---|---|
|
存储库的组织。 |
|
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。 |
|
您可以使用 HTTP 解析器从 HTTP 或 HTTPS URL 指定远程 Pipeline、Task 或 StepAction
定义。URL 必须指向定义 Pipeline、Task 或步骤操作的 YAML 文件。
您可以使用 HTTP 解析器从 HTTP 或 HTTPS URL 获取 Pipeline 或 Task。您可以通过编辑 TektonConfig
自定义资源 (CR) 来配置 HTTP 解析器的默认值。
通过输入以下命令编辑 TektonConfig
CR
$ oc edit TektonConfig config
在 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 解析器等待服务器响应的最长时间。 |
创建 Pipeline 运行时,您可以从 HTTP 或 HTTPS URL 指定远程 Pipeline。创建 Pipeline 或 Task 运行时,您可以从 HTTP 或 HTTPS URL 指定远程 Task。在 Task 中创建步骤时,您可以从 HTTP 或 HTTPS URL 引用远程 StepAction
定义。
使用以下格式在 pipelineRef
、taskRef
或 step.ref
规范中指定来自 HTTP 或 HTTPS URL 的远程 Pipeline、Task 或 StepAction
定义
# ...
resolver: http
params:
- name: url
value: <fully_qualified_http_url>
# ...
参数 | 描述 | 示例值 |
---|---|---|
|
指向要获取的 Tekton 资源的 HTTP URL。 |
|
以下示例 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
您可以使用集群解析器来指定在运行 Red Hat OpenShift Pipelines 的 OpenShift Container Platform 集群上的命名空间中定义的 Pipeline、Task 或 StepAction
定义。
特别是,您可以使用集群解析器访问 OpenShift Pipelines 在其安装命名空间(通常是 openshift-pipelines
命名空间)中提供的 Task。
您可以更改集群解析器的默认种类和命名空间,或限制集群解析器可以使用命名空间。
要编辑TektonConfig
自定义资源,请输入以下命令:
$ oc edit TektonConfig config
在 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 运行时,您可以指定存在于同一集群上的 Pipeline。创建 Pipeline 或 Task 运行时,您可以指定存在于同一集群上的 Task。在 Task 中创建步骤时,您可以指定存在于同一集群上的 StepAction
定义。
要指定来自同一集群的 Pipeline、Task 或 StepAction
定义,请在 pipelineRef
、taskRef
或 step.ref
规范中使用以下引用格式
# ...
resolver: cluster
params:
- name: name
value: <name>
- name: namespace
value: <namespace>
- name: kind
value: [pipeline|task|stepaction]
# ...
参数 | 描述 | 示例值 |
---|---|---|
|
要获取的资源名称。 |
|
|
集群中包含资源的命名空间。 |
|
|
要获取的资源的种类。 |
|
如果 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 安装包含一组标准任务,您可以在管道中使用这些任务。这些任务位于 OpenShift Pipelines 安装命名空间中,通常是openshift-pipelines
命名空间。您可以使用集群解析器访问这些任务。
在 1.16 版本之前,OpenShift Pipelines 包含 ClusterTask
功能。1.17 及更高版本不再包含此功能。如果您的 Pipeline 使用 ClusterTask
引用,您可以使用集群解析器使用 OpenShift Pipelines 安装命名空间中可用的 Task 重新创建它们。但是,与以前存在的 ClusterTask
定义相比,这些 Task 进行了某些更改。
您不能在 OpenShift Pipelines 安装命名空间中可用的任何 Task 中指定自定义执行镜像。这些 Task 不支持 BUILDER_IMAGE
、gitInitImage
或 KN_IMAGE
等参数。如果要使用自定义执行镜像,请创建 Task 的副本并通过编辑副本替换镜像。
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
# ...
参数 | 描述 | 类型 | 默认值 |
---|---|---|---|
|
要由 Buildah 构建的完全限定的容器镜像名称。 |
|
|
|
相对于 |
|
|
|
用作上下文的目录的路径。 |
|
|
|
设置 Buildah 存储驱动程序以反映当前集群节点设置。 |
|
|
|
要构建的容器的格式, |
|
|
|
构建镜像时 |
|
|
|
推送镜像时 |
|
|
|
跳过将镜像推送到容器注册表。 |
|
|
|
TLS 验证标志,通常为 |
|
|
|
打开详细日志记录;所有执行的命令都添加到日志中。 |
|
|
工作区 | 描述 |
---|---|
|
容器构建上下文,通常是包含 |
|
一个可选的工作区,用于提供Buildah用来访问容器注册表的 |
|
一个可选的工作区,用于提供Buildah用来访问Red Hat Enterprise Linux (RHEL) 订阅的授权密钥。挂载的工作区必须包含 |
结果 | 类型 | 描述 |
---|---|---|
|
|
已构建镜像的完全限定名称。 |
|
|
已构建镜像的摘要。 |
buildah
ClusterTask
的更改添加了VERBOSE
参数。
移除了BUILDER_IMAGE
参数。
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仓库的有效密钥。 |
参数 | 描述 | 类型 | 默认值 |
---|---|---|---|
|
|
|
|
|
HTTP 代理服务器(非TLS请求)。 |
|
|
|
HTTPS 代理服务器(TLS请求)。 |
|
|
|
选择不使用代理进行HTTP/HTTPS请求。 |
|
|
|
包含git仓库的 |
|
|
|
pod中Git用户主目录的绝对路径。 |
|
|
|
在完成git操作之前,删除 |
|
|
|
记录所有执行的命令。 |
|
|
|
全局 |
|
|
|
执行Git操作的Git用户名。 |
|
|
|
执行Git操作的Git用户邮箱。 |
|
|
|
要运行的Git脚本。 |
|
|
工作区 | 描述 |
---|---|
|
包含私钥、 |
|
包含 |
|
包含CA证书的工作区。如果您提供此工作区,Git将使用这些证书在使用HTTPS与远程仓库交互时验证对等方。 |
|
包含已获取Git仓库的工作区。 |
|
一个可选的工作区,包含需要添加到Git仓库的文件。例如,您可以使用
|
结果 | 类型 | 描述 |
---|---|---|
|
|
克隆的Git仓库中当前分支HEAD处的提交的SHA摘要。 |
git-cli
ClusterTask
的更改添加了几个新的参数。
移除了BASE_IMAGE
参数。
添加了ssl-ca-directory
工作区。
更改了USER_HOME
和VERBOSE
参数的默认值。
结果名称从commit
更改为COMMIT
。
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
参数 | 描述 | 类型 | 默认值 |
---|---|---|---|
|
|
|
|
|
HTTP 代理服务器(非TLS请求)。 |
|
|
|
HTTPS 代理服务器(TLS请求)。 |
|
|
|
选择不使用代理进行HTTP/HTTPS请求。 |
|
|
|
任务放置Git仓库的 |
|
|
|
pod中Git用户主目录的绝对路径。 |
|
|
|
在运行Git操作之前,删除默认工作区的内容(如果存在)。 |
|
|
|
记录执行的命令。 |
|
|
|
全局 |
|
|
|
Git仓库URL。 |
|
|
|
要检出的修订版本,例如分支或标签。 |
|
|
|
任务在检出修订版本之前获取的仓库的 |
|
|
|
初始化并获取Git子模块。 |
|
|
|
要获取的提交次数,单个提交是“浅克隆”。 |
|
|
|
用于执行“稀疏检出”的目录模式列表,用逗号分隔。 |
|
工作区 | 描述 |
---|---|
|
包含私钥、 |
|
包含 |
|
包含CA证书的工作区。如果您提供此工作区,Git将使用这些证书在使用HTTPS与远程仓库交互时验证对等方。 |
|
包含已获取git仓库的工作区,数据将放置在工作区的根目录或由 |
结果 | 类型 | 描述 |
---|---|---|
|
|
克隆的Git仓库中当前分支HEAD处的提交的SHA摘要。 |
|
|
已克隆仓库的URL。 |
|
|
克隆的Git仓库中当前分支HEAD处的提交的纪元时间戳。 |
git-clone
ClusterTask
的更改所有参数名称都已更改为大写。
所有结果名称都已更改为大写。
移除了gitInitImage
参数。
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]
参数 | 描述 | 类型 | 默认值 |
---|---|---|---|
|
|
|
|
kn
ClusterTask
的变更已移除 KN_IMAGE
参数。
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"
参数 | 描述 | 类型 | 默认值 |
---|---|---|---|
|
Knative 服务名称。 |
|
|
|
要部署的镜像的完全限定名称。 |
|
kn-apply
ClusterTask
的变更已移除 KN_IMAGE
参数。
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
# ...
参数 | 描述 | 类型 | 默认值 |
---|---|---|---|
|
要运行的 Maven 目标。 |
|
|
|
Maven 镜像仓库 URL。 |
|
|
|
任务在 |
|
|
工作区 | 描述 |
---|---|
|
包含 Maven 项目的工作区。 |
|
包含连接到 Maven 服务器的凭据(例如用户名和密码)的工作区。 |
|
包含连接到代理服务器的凭据(例如用户名和密码)的工作区。 |
|
包含代理配置值(例如 |
|
包含自定义 Maven 设置的工作区。 |
maven
ClusterTask
的变更参数名称 CONTEXT_DIR
已更改为 SUBDIRECTORY
。
工作区名称 maven-settings
已更改为 maven_settings
。
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"
参数 | 描述 | 类型 | 默认值 |
---|---|---|---|
|
要运行的 |
|
|
|
要使用的 OpenShift Container Platform 版本。 |
|
|
工作区 | 描述 |
---|---|
|
包含要使用 |
|
一个可选的工作区,您可以在其中提供一个包含访问集群凭据的 |
openshift-client
ClusterTask
的变更工作区名称 manifest-dir
已更改为 manifest_dir
。
工作区名称 kubeconfig-dir
已更改为 kubeconfig_dir
。
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
# ...
参数 | 描述 | 类型 | 默认值 |
---|---|---|---|
|
S2I 进程构建的容器镜像的完全限定名称。 |
|
|
|
包含构建器镜像的默认组装和运行脚本的 URL。 |
|
|
|
要在构建过程中设置的环境变量值的数组,以 |
|
|
|
|
|
|
|
设置 Buildah 存储驱动程序以反映当前集群节点设置。 |
|
|
|
要构建的容器的格式, |
|
|
|
构建镜像时 |
|
|
|
推送镜像时 |
|
|
|
跳过将镜像推送到容器注册表。 |
|
|
|
TLS 验证标志,通常为 |
|
|
|
打开详细日志记录;所有执行的命令都添加到日志中。 |
|
|
|
镜像流的标签,对应于语言版本。 |
|
|
工作区 | 描述 |
---|---|
|
应用程序源代码,它是 S2I 工作流的构建上下文。 |
|
一个可选的工作区,用于提供Buildah用来访问容器注册表的 |
结果 | 类型 | 描述 |
---|---|---|
|
|
已构建镜像的完全限定名称。 |
|
|
已构建镜像的摘要。 |
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
# ...
参数 | 描述 | 类型 | 默认值 |
---|---|---|---|
|
S2I 进程构建的容器镜像的完全限定名称。 |
|
|
|
包含构建器镜像的默认组装和运行脚本的 URL。 |
|
|
|
要在构建过程中设置的环境变量值的数组,以 |
|
|
|
|
|
|
|
设置 Buildah 存储驱动程序以反映当前集群节点设置。 |
|
|
|
要构建的容器的格式, |
|
|
|
构建镜像时 |
|
|
|
推送镜像时 |
|
|
|
跳过将镜像推送到容器注册表。 |
|
|
|
TLS 验证标志,通常为 |
|
|
|
打开详细日志记录;所有执行的命令都添加到日志中。 |
|
|
|
镜像流的标签,对应于语言版本。 |
|
|
工作区 | 描述 |
---|---|
|
应用程序源代码,它是 S2I 工作流的构建上下文。 |
|
一个可选的工作区,用于提供Buildah用来访问容器注册表的 |
结果 | 类型 | 描述 |
---|---|---|
|
|
已构建镜像的完全限定名称。 |
|
|
已构建镜像的摘要。 |
s2i-java
任务使用 S2I Java builder 镜像构建源代码,该镜像可在 OpenShift Container Platform 注册表中获取,名称为 image-registry.openshift-image-registry.svc:5000/openshift/java
。
参数 | 描述 | 类型 | 默认值 |
---|---|---|---|
|
S2I 进程构建的容器镜像的完全限定名称。 |
|
|
|
包含构建器镜像的默认组装和运行脚本的 URL。 |
|
|
|
要在构建过程中设置的环境变量值的数组,以 |
|
|
|
|
|
|
|
设置 Buildah 存储驱动程序以反映当前集群节点设置。 |
|
|
|
要构建的容器的格式, |
|
|
|
构建镜像时 |
|
|
|
推送镜像时 |
|
|
|
跳过将镜像推送到容器注册表。 |
|
|
|
TLS 验证标志,通常为 |
|
|
|
打开详细日志记录;所有执行的命令都添加到日志中。 |
|
|
|
镜像流的标签,对应于语言版本。 |
|
|
工作区 | 描述 |
---|---|
|
应用程序源代码,它是 S2I 工作流的构建上下文。 |
|
一个可选的工作区,用于提供Buildah用来访问容器注册表的 |
结果 | 类型 | 描述 |
---|---|---|
|
|
已构建镜像的完全限定名称。 |
|
|
已构建镜像的摘要。 |
s2i-java
ClusterTask
的变更添加了几个新的参数。
已移除 BUILDER_IMAGE
、MAVEN_ARGS_APPEND
、MAVEN_CLEAR_REPO
和 MAVEN_MIRROR_URL
参数。您可以将 MAVEN_ARGS_APPEND
、MAVEN_CLEAR_REPO
和 MAVEN_MIRROR_URL
值作为环境变量传递。
参数名称 PATH_CONTEXT
已更改为 CONTEXT
。
参数名称 TLS_VERIFY
已更改为 TLSVERIFY
。
已添加 IMAGE_URL
结果。
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
# ...
参数 | 描述 | 类型 | 默认值 |
---|---|---|---|
|
S2I 进程构建的容器镜像的完全限定名称。 |
|
|
|
包含构建器镜像的默认组装和运行脚本的 URL。 |
|
|
|
要在构建过程中设置的环境变量值的数组,以 |
|
|
|
|
|
|
|
设置 Buildah 存储驱动程序以反映当前集群节点设置。 |
|
|
|
要构建的容器的格式, |
|
|
|
构建镜像时 |
|
|
|
推送镜像时 |
|
|
|
跳过将镜像推送到容器注册表。 |
|
|
|
TLS 验证标志,通常为 |
|
|
|
打开详细日志记录;所有执行的命令都添加到日志中。 |
|
|
|
镜像流的标签,对应于语言版本。 |
|
|
工作区 | 描述 |
---|---|
|
应用程序源代码,它是 S2I 工作流的构建上下文。 |
|
一个可选的工作区,用于提供Buildah用来访问容器注册表的 |
结果 | 类型 | 描述 |
---|---|---|
|
|
已构建镜像的完全限定名称。 |
|
|
已构建镜像的摘要。 |
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
# ...
参数 | 描述 | 类型 | 默认值 |
---|---|---|---|
|
S2I 进程构建的容器镜像的完全限定名称。 |
|
|
|
包含构建器镜像的默认组装和运行脚本的 URL。 |
|
|
|
要在构建过程中设置的环境变量值的数组,以 |
|
|
|
|
|
|
|
设置 Buildah 存储驱动程序以反映当前集群节点设置。 |
|
|
|
要构建的容器的格式, |
|
|
|
构建镜像时 |
|
|
|
推送镜像时 |
|
|
|
跳过将镜像推送到容器注册表。 |
|
|
|
TLS 验证标志,通常为 |
|
|
|
打开详细日志记录;所有执行的命令都添加到日志中。 |
|
|
|
镜像流的标签,对应于语言版本。 |
|
|
工作区 | 描述 |
---|---|
|
应用程序源代码,它是 S2I 工作流的构建上下文。 |
|
一个可选的工作区,用于提供Buildah用来访问容器注册表的 |
结果 | 类型 | 描述 |
---|---|---|
|
|
已构建镜像的完全限定名称。 |
|
|
已构建镜像的摘要。 |
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
# ...
参数 | 描述 | 类型 | 默认值 |
---|---|---|---|
|
S2I 进程构建的容器镜像的完全限定名称。 |
|
|
|
包含构建器镜像的默认组装和运行脚本的 URL。 |
|
|
|
要在构建过程中设置的环境变量值的数组,以 |
|
|
|
|
|
|
|
设置 Buildah 存储驱动程序以反映当前集群节点设置。 |
|
|
|
要构建的容器的格式, |
|
|
|
构建镜像时 |
|
|
|
推送镜像时 |
|
|
|
跳过将镜像推送到容器注册表。 |
|
|
|
TLS 验证标志,通常为 |
|
|
|
打开详细日志记录;所有执行的命令都添加到日志中。 |
|
|
|
镜像流的标签,对应于语言版本。 |
|
|
工作区 | 描述 |
---|---|
|
应用程序源代码,它是 S2I 工作流的构建上下文。 |
|
一个可选的工作区,用于提供Buildah用来访问容器注册表的 |
结果 | 类型 | 描述 |
---|---|---|
|
|
已构建镜像的完全限定名称。 |
|
|
已构建镜像的摘要。 |
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
# ...
参数 | 描述 | 类型 | 默认值 |
---|---|---|---|
|
S2I 进程构建的容器镜像的完全限定名称。 |
|
|
|
包含构建器镜像的默认组装和运行脚本的 URL。 |
|
|
|
要在构建过程中设置的环境变量值的数组,以 |
|
|
|
|
|
|
|
设置 Buildah 存储驱动程序以反映当前集群节点设置。 |
|
|
|
要构建的容器的格式, |
|
|
|
构建镜像时 |
|
|
|
推送镜像时 |
|
|
|
跳过将镜像推送到容器注册表。 |
|
|
|
TLS 验证标志,通常为 |
|
|
|
打开详细日志记录;所有执行的命令都添加到日志中。 |
|
|
|
镜像流的标签,对应于语言版本。 |
|
|
工作区 | 描述 |
---|---|
|
应用程序源代码,它是 S2I 工作流的构建上下文。 |
|
一个可选的工作区,用于提供Buildah用来访问容器注册表的 |
结果 | 类型 | 描述 |
---|---|---|
|
|
已构建镜像的完全限定名称。 |
|
|
已构建镜像的摘要。 |
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
# ...
参数 | 描述 | 类型 | 默认值 |
---|---|---|---|
|
S2I 进程构建的容器镜像的完全限定名称。 |
|
|
|
包含构建器镜像的默认组装和运行脚本的 URL。 |
|
|
|
要在构建过程中设置的环境变量值的数组,以 |
|
|
|
|
|
|
|
设置 Buildah 存储驱动程序以反映当前集群节点设置。 |
|
|
|
要构建的容器的格式, |
|
|
|
构建镜像时 |
|
|
|
推送镜像时 |
|
|
|
跳过将镜像推送到容器注册表。 |
|
|
|
TLS 验证标志,通常为 |
|
|
|
打开详细日志记录;所有执行的命令都添加到日志中。 |
|
|
|
镜像流的标签,对应于语言版本。 |
|
|
工作区 | 描述 |
---|---|
|
应用程序源代码,它是 S2I 工作流的构建上下文。 |
|
一个可选的工作区,用于提供Buildah用来访问容器注册表的 |
结果 | 类型 | 描述 |
---|---|---|
|
|
已构建镜像的完全限定名称。 |
|
|
已构建镜像的摘要。 |
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
参数 | 描述 | 类型 | 默认值 |
---|---|---|---|
|
源容器镜像的全限定名,包括标签。 |
|
|
|
Skopeo 将源镜像复制到的目标镜像的全限定名,包括标签。 |
|
|
|
源注册表的 TLS 验证标志,通常为 |
|
|
|
目标注册表的 TLS 验证标志,通常为 |
|
|
|
将调试信息输出到日志。 |
|
|
工作区 | 描述 |
---|---|
|
如果要复制多个镜像,请使用此工作区提供镜像 URL。 |
结果 | 类型 | 描述 |
---|---|---|
|
|
源镜像的 SHA256 校验和。 |
|
|
目标镜像的 SHA256 校验和。 |
skopeo-copy
ClusterTask
的更改所有参数名称都已更改为大写。
添加了VERBOSE
参数。
工作区名称已从 images-url
更改为 images_url
。
添加了 SOURCE_DIGEST
和 DESTINATION_DIGEST
结果。
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
参数 | 描述 | 类型 | 默认值 |
---|---|---|---|
|
要执行的 |
|
|
|
要运行的 |
|
|
工作区 | 描述 |
---|---|
|
一个可选的工作区,您可以在其中提供一个包含访问集群凭据的 |
tkn
ClusterTask
的更改已删除 TKN_IMAGE
参数。
工作区名称已从 kubeconfig
更改为 kubeconfig_dir
。
OpenShift Pipelines 提供了一个标准的 StepAction
定义,您可以在任务中使用它。使用集群解析器来引用此定义。
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)
参数 | 描述 | 类型 | 默认值 |
---|---|---|---|
|
获取的 Git 存储库的目录。克隆的仓库数据放置在目录的根目录或由 |
|
|
|
包含私钥、 |
|
|
|
包含 |
|
|
|
包含CA证书的工作区。如果您提供此工作区,Git将使用这些证书在使用HTTPS与远程仓库交互时验证对等方。 |
|
|
|
|
|
|
|
HTTP 代理服务器(非TLS请求)。 |
|
|
|
HTTPS 代理服务器(TLS请求)。 |
|
|
|
选择不使用代理进行HTTP/HTTPS请求。 |
|
|
|
任务放置Git仓库的 |
|
|
|
pod中Git用户主目录的绝对路径。 |
|
|
|
在运行Git操作之前,删除默认工作区的内容(如果存在)。 |
|
|
|
记录执行的命令。 |
|
|
|
全局 |
|
|
|
Git仓库URL。 |
|
|
|
要检出的修订版本,例如分支或标签。 |
|
|
|
任务在检出修订版本之前获取的仓库的 |
|
|
|
初始化并获取Git子模块。 |
|
|
|
要获取的提交次数,单个提交是“浅克隆”。 |
|
|
|
用于执行“稀疏检出”的目录模式列表,用逗号分隔。 |
|
结果 | 类型 | 描述 |
---|---|---|
|
|
克隆的Git仓库中当前分支HEAD处的提交的SHA摘要。 |
|
|
已克隆仓库的URL。 |
|
|
克隆的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
定义
非版本化和版本化任务和步骤操作具有相同的元数据、行为和规范,包括 params
、workspaces
和 steps
。但是,当您禁用它们或升级 Operator 时,它们的行为有所不同。
在将非版本化或版本化任务和步骤操作作为生产环境中的标准采用之前,集群管理员可能会考虑它们的优缺点。
优点 | 缺点 | |
---|---|---|
非版本化任务和步骤操作 |
|
|
版本化任务和步骤操作 |
|
|
非版本化和版本化任务和步骤操作具有不同的命名约定,Red Hat OpenShift Pipelines Operator 对它们的升级方式也不同。
命名法 | 升级 | |
---|---|---|
非版本化任务和步骤操作 |
非版本化任务和步骤操作仅包含任务或步骤操作的名称。例如,使用 Operator v1.16 安装的 Buildah 的非版本化任务的名称为 |
升级 Operator 时,它会使用最新的更改更新非版本化任务和步骤操作。名称保持不变。 |
版本化任务和步骤操作 |
版本化任务和步骤操作包含名称,后跟版本作为后缀。例如,使用 Operator v1.16 安装的 Buildah 的版本化任务的名称为 |
升级 Operator 将安装版本化任务和步骤操作的最新版本,并保留早期版本。最新版本对应于已升级的 Operator。例如,安装 Operator 1.17 将安装 |