3.8. OpenShift Pipelines 命名空间中提供的社区任务


默认情况下,OpenShift Pipelines 安装包含一组可以在管道中使用的社区任务。这些任务位于 OpenShift Pipelines 安装命名空间中,通常是 openshift-pipelines 命名空间。

argocd-task-sync-and-wait

argocd-task-sync-and-wait 社区任务部署 Argo CD 应用程序并等待它处于健康状态。

要做到这一点,它需要以下配置:* 在 argocd-env-configmap 配置映射中配置的 Argo CD 服务器地址。* 在 argocd-env-secret secret 中配置的身份验证信息。

带有地址信息的配置映射示例

apiVersion: v1
kind: ConfigMap
metadata:
  name: argocd-env-configmap
data:
  ARGOCD_SERVER: https://argocd.example.com
# ...

使用身份验证信息的 secret 示例

apiVersion: v1
kind: Secret
metadata:
  name: argocd-env-secret
data:
  # Option 1
  ARGOCD_USERNAME: example_username 1
  ARGOCD_PASSWORD: example_password
  # Option 2
  ARGOCD_AUTH_TOKEN: exmaple_token

1
配置用户名和密码或身份验证令牌。

使用 argocd-task-sync-and-wait 社区任务的示例

apiVersion: tekton.dev/v1
kind: Pipeline
metadata:
  name: argocd-task-sync-and-wait
spec:
  tasks:
    - name: argocd-task-sync-and-wait
      params:
        - name: application-name
          value: example_app_name
        - name: revision
          value: HEAD
        - name: flags
          value: '--'
        - name: argocd-version
          value: v2.2.2
      taskRef:
        kind: Task
        name: argocd-task-sync-and-wait

表 3.52. argocd-task-sync-and-wait 社区任务支持的参数
参数描述默认值

application-name

要部署的应用程序的名称。

 

revision

要部署的修订。

HEAD

标记

 

--

argocd-version

Argo CD 的版本。

v2.2.2

helm-upgrade-from-repo

helm-upgrade-from-repo 社区任务根据给定的 Helm 仓库和 chart 在 OpenShift Container Platform 集群中安装或升级 Helm chart。

helm-upgrade-from-repo 社区任务的用法示例

apiVersion: tekton.dev/v1
kind: Pipeline
metadata:
  name: helm-upgrade-from-repo
spec:
  tasks:
    - name: helm-upgrade-from-repo
      params:
        - name: helm_repo
          value: example_helm_repository
        - name: chart_name
          value: example_chart_name
        - name: release_version
          value: v1.0.0
        - name: release_name
          value: helm-release
        - name: release_namespace
          value: ''
        - name: overwrite_values
          value: ''
        - name: helm_image
          value: 'docker.io/lachlanevenson/k8s-helm@sha256:5c792f29950b388de24e7448d378881f68b3df73a7b30769a6aa861061fd08ae'
      taskRef:
        kind: Task
        name: helm-upgrade-from-repo

表 3.53. helm-upgrade-from-repo 社区任务支持的参数
参数描述默认值

helm_repo

Helm 仓库。

 

chart_name

要部署的 Helm Chart 名称。

 

release_version

Helm 发行版本使用语义版本。

v1.0.0

release_name

Helm 发行版本名称。

helm-release

release_namespace

Helm 发行版本命名空间。

""

overwrite_values

要覆盖的配置参数,以逗号分开。例如: autoscaling.enabled=true,replicas=1

""

helm_image

要使用的 Helm 镜像。

docker.io/lachlanevenson/k8s-helm@sha256:5c792f29950b388de24e7448d378881f68b3df73a7b30769a6aa861061fd08ae

helm-upgrade-from-source

helm-upgrade-from-source 社区任务根据给定的 chart 和源工作区在 OpenShift Container Platform 集群中安装和升级 Helm chart。

helm-upgrade-from-source 社区任务的用法示例

apiVersion: tekton.dev/v1
kind: Pipeline
metadata:
  name: helm-upgrade-from-source
spec:
  tasks:
    - name: helm-upgrade-from-source
      params:
        - name: charts_dir
          value: example_directory_path
        - name: release_version
          value: v1.0.0
        - name: release_name
          value: helm-release
        - name: release_namespace
          value: ''
        - name: overwrite_values
          value: ''
        - name: values_file
          value: values.yaml
        - name: helm_image
          value: 'docker.io/lachlanevenson/k8s-helm@sha256:5c792f29950b388de24e7448d378881f68b3df73a7b30769a6aa861061fd08ae'
        - name: upgrade_extra_params
          value: ''
      taskRef:
        kind: Task
        name: helm-upgrade-from-source
      workspaces:
        - name: source
          workspace: shared-workspace
  #...

表 3.54. helm-upgrade-from-source 社区任务支持的参数
参数描述默认值

charts_dir

包含 Helm Chart 的源工作区中的目录。

 

release_version

Helm 发行版本使用语义版本。

v1.0.0

release_name

Helm 发行版本名称。

helm-release

release_namespace

Helm 发行版本命名空间。

""

overwrite_values

要覆盖的配置参数,以逗号分开。例如: autoscaling.enabled=true,replicas=1

""

values_file

包含 Helm 的配置参数的文件。

values.yaml

helm_image

要使用的 Helm 镜像。

docker.io/lachlanevenson/k8s-helm@sha256:5c792f29950b388de24e7448d378881f68b3df73a7b30769a6aa861061fd08ae

upgrade_extra_params

为 Helm upgrade 命令传递的额外参数。

""

表 3.55. helm-upgrade-from-source 社区任务支持的工作区
Workspace描述

source

包含 Helm Chart 的工作区。

jib-maven

jib-maven 社区任务通过使用 Maven 项目的 Jib 工具将 Java、Kotlin、Groovy 和 Scala 源构建到容器镜像中。

jib-maven 社区任务的使用示例

apiVersion: tekton.dev/v1
kind: Pipeline
metadata:
  name: jib-maven
spec:
  tasks:
    - name: jib-maven
      params:
        - name: IMAGE
          value: example_image
        - name: MAVEN_IMAGE
          value: 'registry.redhat.io/ubi9/openjdk-17@sha256:78613bdf887530100efb6ddf92d2a17f6176542740ed83e509cdc19ee7c072d6'
        - name: DIRECTORY
          value: .
        - name: CACHE
          value: empty-dir-volume
        - name: INSECUREREGISTRY
          value: 'false'
        - name: CACERTFILE
          value: service-ca.crt
      taskRef:
        kind: Task
        name: jib-maven
      workspaces:
        - name: source
          workspace: shared-workspace
  #...

表 3.56. jib-maven 社区任务支持的参数
参数描述默认值

IMAGE

要构建的镜像的名称。

 

MAVEN_IMAGE

Maven 基础镜像。

registry.redhat.io/ubi9/openjdk-17@sha256:78613bdf887530100efb6ddf92d2a17f6176542740ed83e509cdc19ee7c072d6

目录

包含 app 的目录,相对于源存储库 root。

.

CACHE

用于缓存 Maven 工件和基础镜像层的卷名称。

empty-dir-volume

INSECUREREGISTRY

允许不安全的 registry。

false

CACERTFILE

不安全 registry 服务的证书颁发机构(CA)捆绑包文件名。

service-ca.crt

表 3.57. jib-maven 社区任务支持的工作区
Workspace描述

source

包含 Maven 项目的工作区。

sslcertdir

包含 SSL 证书的可选工作区。

表 3.58. jib-maven 任务返回的结果
结果类型描述

IMAGE_DIGEST

string

构建的镜像摘要。

jib-maven 社区集群任务的更改

  • IMAGEMAVEN_IMAGE 参数的默认值已更改。

kubeconfig-creator

kubeconfig-creator community 任务创建一个 kubeconfig 文件,管道中的其他任务可用于访问不同的集群。

kubeconfig-creator 社区任务的用法示例

apiVersion: tekton.dev/v1
kind: Pipeline
metadata:
  name: kubeconfig-creator
spec:
  tasks:
    - name: kubeconfig-creator
      params:
        - name: name
          value: example_cluster
        - name: url
          value: https://cluster.example.com
        - name: username
          value: example_username
        - name: password
          value: example_password
        - name: cadata
          value: ''
        - name: clientKeyData
          value: ''
        - name: clientCertificateData
          value: ''
        - name: namespace
          value: ''
        - name: token
          value: ''
        - name: insecure
          value: 'false'
      taskRef:
        kind: Task
        name: kubeconfig-creator
      workspaces:
        - name: output
          workspace: shared-workspace
  #...

表 3.59. kubeconfig-creator 社区任务支持的参数
参数描述默认值

名称

用于访问的集群的名称。

 

url

用于访问的集群的地址。

 

username

集群基本身份验证的用户名。

 

password

集群基本身份验证的密码。

""

cadata

PEM 编码的证书颁发机构(CA)证书。

""

clientKeyData

TLS 的客户端密钥文件中的 PEM 编码数据。

""

clientCertificateData

TLS 的客户端认证文件中的 PEM 编码数据。

""

namespace

在未指定请求时使用的默认命名空间。

""

token

用于集群身份验证的 bearer 令牌。

""

insecure

在不验证 TLS 证书的情况下,指定是否应该被访问服务器。

false

表 3.60. kubeconfig-creator 社区任务支持的工作区
Workspace描述

output

kubeconfig-creator 任务存储 kubeconfig 文件的工作区。

pull-request

您可以使用 pull-request 社区任务通过抽象接口与源控制管理(SCM)系统交互。

此社区任务可用于公共 SCM 实例和自托管或企业 GitHub 或 GitLab 实例。

在下载模式中,此任务使用现有拉取请求的状态填充 pr 工作区,包括 .MANIFEST 文件。

在上传模式中,此任务将 pr 工作区的内容(包括 .MANIFEST 文件的内容)与拉取请求的内容进行比较,如果内容不同,请更新拉取请求以匹配 pr 工作区。

pull-request 社区任务的用法示例

apiVersion: tekton.dev/v1
kind: Pipeline
metadata:
  name: pull-request
spec:
spec:
  tasks:
    - name: pull-request
      params:
        - name: mode
          value: upload
        - name: url
          value: https://github.com/example/pull/xxxxx
        - name: provider
          value: github
        - name: secret-key-ref
          value: example_secret
        - name: insecure-skip-tls-verify
          value: 'false'
      taskRef:
        kind: Task
        name: pull-request
      workspaces:
        - name: pr
          workspace: shared-workspace
  #...

表 3.61. pull-request 社区任务支持的参数
参数描述默认值

模式

如果设置为 download,则获取 url 上拉取请求的状态。如果设置为 upload,则更新 url 中的拉取请求。

 

url

拉取请求的 URL。

 

provider

SCM 系统的类型。支持的值是 githubgitlab

 

secret-key-ref

Opaque 类型的 Secret 对象的名称,其中包含带有 base64 编码 SCM 令牌的密钥。

 

insecure-skip-tls-verify

如果设置为 true,则禁用证书验证。

false

表 3.62. pull-request 社区任务支持的工作区
Workspace描述

PR

包含拉取请求状态的工作区。

trigger-jenkins-job

您可以使用 trigger-jenkins-job 社区任务来使用 curl 请求触发 Jenkins 任务。

trigger-jenkins-job 社区任务的用法示例

apiVersion: tekton.dev/v1
kind: Pipeline
metadata:
  name: trigger-jenkins-job
spec:
  tasks:
    - name: trigger-jenkins-job
      params:
        - name: JENKINS_HOST_URL
          value: example_host_URL
        - name: JOB_NAME
          value: example_job_name
        - name: JENKINS_SECRETS
          value: jenkins-credentials
        - name: JOB_PARAMS
          value:
            - example_param
      taskRef:
        kind: Task
        name: trigger-jenkins-job
      workspaces:
        - name: source
          workspace: shared-workspace
  # ...

表 3.63. trigger-jenkins-job 社区任务支持的参数
参数描述默认值

JENKINS_HOST_URL

运行 Jenkins 的服务器 URL。

 

JOB_NAME

需要触发的 Jenkins 任务。

 

JENKINS_SECRETS

包含凭证的 Jenkins secret。

jenkins-credentials

JOB_PARAMS

作为 curl 请求的一部分附加的额外参数。

""

表 3.64. trigger-jenkins-job 社区任务支持的工作区
Workspace描述

source

可用来挂载可通过 curl 请求发送到 Jenkins 任务的文件的工作区。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.