4.5. 组装 Pipeline
一个 Pipeline 代表一个 CI/CD 流,由要执行的任务定义。它通过 inputs
、outputs
和 runAfter
参数来指定不同的任务间如何进行交互以及它们执行的顺序。它被设计为在多个应用程序和环境中通用且可重复使用。
在本小节中,您将创建一个 Pipeline,从 GitHub 获取应用程序的源代码,然后在 OpenShift Container Platform 上构建和部署应用程序。
Pipeline 为后端应用程序 vote-api
和前端应用程序 vote-ui
执行以下任务:
-
从 Git 存储库
api-repo
和ui-repo
中克隆应用程序的源代码。 -
使用
buildah
ClusterTask 构建容器镜像api-image
和ui-image
。 -
将
api-image
和ui-image
镜像推送到内部镜像 registry。 -
使用
apply-manifests
和update-deployment
任务在 OpenShift Container Platform 上部署新镜像。
流程
复制以下 Pipeline YAML 文件示例内容并保存:
apiVersion: tekton.dev/v1beta1 kind: Pipeline metadata: name: build-and-deploy spec: resources: - name: git-repo type: git - name: image type: image params: - name: deployment-name type: string description: name of the deployment to be patched tasks: - name: build-image taskRef: name: buildah kind: ClusterTask resources: inputs: - name: source resource: git-repo outputs: - name: image resource: image params: - name: TLSVERIFY value: "false" - name: apply-manifests taskRef: name: apply-manifests resources: inputs: - name: source resource: git-repo runAfter: - build-image - name: update-deployment taskRef: name: update-deployment resources: inputs: - name: image resource: image params: - name: deployment value: $(params.deployment-name) runAfter: - apply-manifests
请注意,Pipeline 定义提取了要在 Pipeline 执行过程中使用的 Git 源存储库和镜像 registry 的特定内容。
创建 Pipeline:
$ oc create -f <pipeline-yaml-file-name.yaml>
或者,还可以从 Git 存储库直接执行 YAML 文件:
$ oc create -f https://raw.githubusercontent.com/openshift/pipelines-tutorial/release-tech-preview-1/01_pipeline/04_pipeline.yaml
使用
tkn pipeline list
命令来验证是否在应用程序中添加了 Pipeline:$ tkn pipeline list
检查输出来验证创建了
build-and-deploy
Pipeline:NAME AGE LAST RUN STARTED DURATION STATUS build-and-deploy 1 minute ago --- --- --- ---