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
参数 | 描述 | 默认值 |
---|---|---|
| 要部署的应用程序的名称。 | |
| 要部署的修订。 |
|
|
| |
| Argo CD 的版本。 |
|
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
参数 | 描述 | 默认值 |
---|---|---|
| Helm 仓库。 | |
| 要部署的 Helm Chart 名称。 | |
| Helm 发行版本使用语义版本。 |
|
| Helm 发行版本名称。 |
|
| Helm 发行版本命名空间。 |
|
|
要覆盖的配置参数,以逗号分开。例如: |
|
| 要使用的 Helm 镜像。 |
|
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 #...
参数 | 描述 | 默认值 |
---|---|---|
| 包含 Helm Chart 的源工作区中的目录。 | |
| Helm 发行版本使用语义版本。 |
|
| Helm 发行版本名称。 |
|
| Helm 发行版本命名空间。 |
|
|
要覆盖的配置参数,以逗号分开。例如: |
|
| 包含 Helm 的配置参数的文件。 |
|
| 要使用的 Helm 镜像。 |
|
| 为 Helm upgrade 命令传递的额外参数。 |
|
Workspace | 描述 |
---|---|
| 包含 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 #...
参数 | 描述 | 默认值 |
---|---|---|
| 要构建的镜像的名称。 | |
| Maven 基础镜像。 |
|
| 包含 app 的目录,相对于源存储库 root。 |
|
| 用于缓存 Maven 工件和基础镜像层的卷名称。 |
|
| 允许不安全的 registry。 |
|
| 不安全 registry 服务的证书颁发机构(CA)捆绑包文件名。 |
|
Workspace | 描述 |
---|---|
| 包含 Maven 项目的工作区。 |
| 包含 SSL 证书的可选工作区。 |
结果 | 类型 | 描述 |
---|---|---|
|
| 构建的镜像摘要。 |
从 jib-maven
社区集群任务的更改
-
IMAGE
和MAVEN_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 #...
参数 | 描述 | 默认值 |
---|---|---|
| 用于访问的集群的名称。 | |
| 用于访问的集群的地址。 | |
| 集群基本身份验证的用户名。 | |
| 集群基本身份验证的密码。 |
|
| PEM 编码的证书颁发机构(CA)证书。 |
|
| TLS 的客户端密钥文件中的 PEM 编码数据。 |
|
| TLS 的客户端认证文件中的 PEM 编码数据。 |
|
| 在未指定请求时使用的默认命名空间。 |
|
| 用于集群身份验证的 bearer 令牌。 |
|
| 在不验证 TLS 证书的情况下,指定是否应该被访问服务器。 |
|
Workspace | 描述 |
---|---|
|
|
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 #...
参数 | 描述 | 默认值 |
---|---|---|
|
如果设置为 | |
| 拉取请求的 URL。 | |
|
SCM 系统的类型。支持的值是 | |
|
| |
|
如果设置为 |
|
Workspace | 描述 |
---|---|
| 包含拉取请求状态的工作区。 |
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 # ...
参数 | 描述 | 默认值 |
---|---|---|
| 运行 Jenkins 的服务器 URL。 | |
| 需要触发的 Jenkins 任务。 | |
| 包含凭证的 Jenkins secret。 |
|
|
作为 |
|
Workspace | 描述 |
---|---|
|
可用来挂载可通过 |