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
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 | 描述 |
|---|---|
|
|
可用来挂载可通过 |