1.3. OpenShift Pipeline 概念详情


本指南提供了对管道(Pipeline)概念的详细论述。

1.3.1. 任务(Task)

任务(Task) 是 Pipeline 的构建块,它由带有一定顺序的执行步骤组成。任务(Task)可以重复使用,并可用于多个 Pipelines。

步骤(Step)是一系列实现特定目标的命令,如构建镜像。每个任务都作为 pod 运行,每个步骤都在同一个 pod 内自己的容器中运行。由于步骤在同一个 pod 中运行,所以它们可以访问同一卷来缓存文件、ConfigMap 和 Secret。

以下示例显示了 apply-manifests 任务。

apiVersion: tekton.dev/v1beta1 1
kind: Task 2
metadata:
  name: apply-manifests 3
spec: 4
  params:
  - default: k8s
    description: The directory in source that contains yaml manifests
    name: manifest_dir
    type: string
  steps:
  - args:
    - |-
      echo Applying manifests in $(inputs.params.manifest_dir) directory
      oc apply -f $(inputs.params.manifest_dir)
      echo -----------------------------------
    command:
    - /bin/bash
    - -c
    image: quay.io/openshift/origin-cli:latest
    name: apply
    workingDir: /workspace/source
  workspaces:
  - name: source
1
任务 API 版本 v1beta1
2
指定 Kubernetes 对象的类型。在此例中,Task
3
此任务的唯一名称。
4
列出任务中的参数和步骤,以及任务使用的工作区(workspace)。

此任务启动 pod,并在这个 pod 中使用 maven:3.6.0-jdk-8-slim 镜像运行一个容器,来运行指定的命令。它接收了一个名为 workspace-git 的输入目录,其中包含应用程序的源代码。

该任务仅声明了 Git 存储库的占位符,并没有指定要使用哪个 Git 存储库。这将允许此任务被重复用于多个管道和目的。

警告

Red Hat OpenShift Pipelines 1.3 及更早版本的技术预览 (TP) 允许用户在验证安全上下文约束 (SCC) 的情况下创建任务。因此,任何经过身份验证的用户都可以使用通过特权 SCC 运行的容器来创建一个任务。

为了避免在生产环境中出现此类安全问题,请不要使用 TP 中的 Pipelines 版本。反之,请考虑将 Operator 升级到通用版本,如 Pipelines 1.4 或更高版本。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.