6.3. Red Hat OpenShift Pipelines 技术预览 1.1 发行注记
6.3.1. 新功能
Red Hat OpenShift Pipelines 技术预览(TP)1.1 现在包括在 OpenShift Container Platform 4.6 中。Red Hat OpenShift Pipelines TP 1.1 更新为支持:
- Tekton Pipelines 0.14.3
-
Tekton
tkn
CLI 0.11.0 - Tekton Triggers 0.6.1
- 基于 Tekton Catalog 0.14 的 ClusterTasks
除了包括修复和稳定性改进的信息外,以下突出介绍了 OpenShift Pipelines 1.1 中的新内容。
6.3.1.1. Pipelines
- 现在可以使用 Workspaces 而不是 PipelineResources。建议您在 OpenShift Pipelines 中使用 Workspaces 而不是 PipelineResources,因为 PipelineResources 很难调试,范围有限,且不容易重复使用。如需有关 Workspaces 的更多信息,请参阅了解 OpenShift Pipelines。
添加了对 VolumeClaimTemplates 的工作空间支持:
- PipelineRun 和 TaskRun 的 VolumeClaimTemplate 现在可以添加为 Workspaces 的卷源。然后,tekton-controller 使用模板创建一个 PersistentVolumeClaim(PVC),该模板被视为 Pipeline 中所有 TaskRuns 的 PVC。因此,您不需要在每次绑定多个任务的工作空间时都定义 PVC 配置。
- 当 VolumeClaimTemplate 用作卷源时,支持使用变量替换来查找 PersistentVolumeClaim 的名称。
支持改进的审核:
-
PipelineRun.Status
字段现在包含 Pipeline 中每个 TaskRun 的状态,以及用于实例化 PipelineRun 监控 PipelineRun 的 Pipeline 规格。 -
Pipeline 结果已添加到 pipeline 规格和
PipelineRun
状态中。 -
TaskRun.Status
字段现在包含用于实例化TaskRun
的具体任务规格。
-
- 支持为 Conditions 应用默认参数。
-
现在,通过引用 ClusterTask 创建的 TaskRun 会添加
tekton.dev/clusterTask
标签,而不是tekton.dev/task
标签。 -
kubeconfigwriter
现在在资源结构中添加了ClientKeyData
和ClientCertificateData
配置,以便使用 kubeconfig-creator 任务替换 pipeline 资源类型集群。 -
现在,
feature-flags
和config-defaults
ConfigMap 的名称可以自定义。 - 现在,在 TaskRun 使用的 PodTemplate 中支持 HostNetwork。
- 现在,可以使用 Affinity Assistant 支持 TaskRuns 中共享工作空间卷的节点关联性。默认情况下,这在 OpenShift Pipelines 上被禁用。
-
PodTemplate 已更新,使用
imagePullSecrets
指定在启动一个 pod 时,容器运行时用来拉取容器镜像的 secret。 - 如果控制器无法更新 TaskRun,则支持从 TaskRun 控制器发出警告事件。
- 在所有资源中添加了标准或者推荐的 k8s 标签,以标识属于应用程序或组件的资源。
- 现在,Entrypoint 进程被通知有信号,然后这些信号会使用一个 Entrypoint 进程的专用 PID 组来传播这些信号。
-
现在,PodTemplate 可以在运行时使用
TaskRunSpecs
在任务一级设置。 支持放出 Kubernetes 事件:
-
控制器现在会为其他 TaskRun 生命周期事件放出事件 -
taskrun started
和taskrun running
。 - PipelineRun 控制器现在会在 Pipeline 每次启动时放出一个事件。
-
控制器现在会为其他 TaskRun 生命周期事件放出事件 -
- 除了默认的 Kubernetes 事件外,现在还提供对 TaskRuns 的 CloudEvents 的支持。可将控制器配置为发送任何 TaskRun 事件(如创建、启动和失败)作为云事件。
-
支持使用
$context.<task|taskRun|pipeline|pipeline|pipelineRun>.name
变量来在 PipelineRuns 和 TaskRuns 中引用正确名称。 - 现在提供了 PipelineRun 参数的验证,以确保 PipelineRun 提供了 Pipeline 所需的所有参数。这也允许 PipelineRuns 在所需参数之外提供额外的参数。
-
现在,您可以使用 Pipeline YAML 文件中的
finally
字段指定 Pipeline 中的任务,这些任务会在管道退出前始终执行。 -
git-clone
ClusterTask 现在可用。
6.3.1.2. Pipelines CLI
-
tkn dlistener describe
命令现在可以支持内嵌的 Trigger 绑定。 - 支持在使用不正确的子命令时推荐子命令并给出建议。
-
现在,如果 Pipeline 中只有一个任务存在,
tkn task describe
命令会自动选择该任务。 -
现在您可以使用默认参数值启动 Task,方法是在
tkn task start
命令中指定--use-param-defaults
标记。 -
现在,您可以使用
tkn pipeline start
或tkn task start
命令的--workspace
选项为 PipelineRuns 或 TaskRuns 指定 volumeClaimTemplate。 -
tkn pipelinerun logs
命令现在会显示finally
部分中列出的最终任务的日志。 -
现在,为
tkn task start
命令提供了交互式模式支持,并为以下 tkn 资源提供describe
子命令:pipeline
、pipelinerun
、task
、taskrun
、clustertask
和pipelineresource
。 -
tkn version
命令现在显示集群中安装的 Triggers 版本。 -
tkn pipeline describe
命令现在显示为 Pipeline 中使用的任务指定的参数值和超时。 -
添加了对
tkn pipelinerun describe
和tkn taskrun describe
命令的--last
选项的支持,以分别描述最新的 PipelineRun 或 TaskRun。 -
tkn pipeline describe
命令现在显示 Pipeline 中适用于任务的条件。 -
现在,您可以在
tkn resource list
命令中使用--no-headers
和--all-namespaces
标记。
6.3.1.3. 触发器
现在以下通用表达式语言(CEL)功能可用:
-
parseURL
用来解析和提取一个 URL 的部分内容 -
parseJSON
用来解析嵌入在deployment
webhook 中的payload
字段中的字符串中的 JSON 值类型
-
- 添加了来自 Bitbucket 的 webhook 的新拦截器。
-
现在,在使用
kubectl get
列出时,EventListeners 会显示Address URL
和Available status
作为额外的项。 -
TriggerTemplate 参数现在使用
$(tt.params.<paramName>)
语法而不是$(params.<paramName>)
来减少 TriggerTemplate 和 ResourceTemplates params 之间的混淆。 -
现在,您可以在 EventListener CRD 中添加
tolerations(容限)
,以确保 EventListeners 的部署使用相同的配置,即使所有节点都因为安全或管理问题而产生污点也是如此。 -
现在,您可以在
URL/live
中为 EventListener Deployment 添加就绪探测(Readiness Probe)。 - 支持在 EventListener Triggers 中嵌入 TriggerBinding 规格。
-
触发器资源现在附带推荐的
app.kubernetes.io
标签注解。