1.18. Red Hat OpenShift Pipelines 技术预览 1.0 发行注记
1.18.1. 新功能
Red Hat OpenShift Pipelines 技术预览(TP)1.0 现在包括在 OpenShift Container Platform 4.4 中。Red Hat OpenShift Pipelines TP 1.0 更新为支持:
- Tekton Pipelines 0.11.3
-
Tekton
tkn
CLI 0.9.0 - Tekton Triggers 0.4.0
- 基于 Tekton Catalog 0.11 的集群任务
除了包括修复和稳定性改进的信息外,以下小节突出介绍了 Red Hat OpenShift Pipelines 1.0 中的新内容。
1.18.1.1. Pipelines
- 支持 v1beta1 API 版本。
- 支持改进的限制范围。在以前的版本中,限制范围仅为任务运行和管道运行指定。现在不需要显式指定限制范围。使用命名空间中的最小限制范围。
- 支持使用任务结果和任务参数在任务间共享数据。
-
现在,管道可以被配置为不覆盖
HOME
环境变量和步骤的工作目录。 -
与任务步骤类似,
sidecar
现在支持脚本模式。 -
现在,您可以在任务运行
podTemplate
资源中指定不同的调度程序名称。 - 支持使用 Star Array Notation 替换变量。
- Tekton 控制器现在可以配置为监控单个命名空间。
- 现在,在管道、任务、集群任务、资源和条件规格中添加了一个新的 description 字段。
- 在 Git pipeline 资源中添加代理参数。
1.18.1.2. Pipelines CLI
-
现在为以下
tkn
资源添加了describe
子命令:EventListener
、Condition
、triggerTemplate
、ClusterTask
和TriggerSBinding
。 -
在以下资源中添加
v1beta1
支持以及v1alpha1
的向后兼容性:ClusterTask
、Task
、Pipeline
、PipelineRun
和TaskRun
。 以下命令现在可以使用
--all-namespaces
标志选项列出所有命名空间的输出结果:tkn task list
、tkn pipeline list
、tkn taskrun list
和tkn pipelinerun list
这些命令的输出也可以通过
--no-headers
选项在没有标头的情况下显示信息。-
现在您可以使用默认参数值启动管道,方法是在
tkn pipelines start
命令中指定--use-param-defaults
标记。 -
现在,在
tkn pipeline start
和tkn task start
命令中增加了对工作区的支持。 -
现在增加了一个新命令
clustertriggerbinding
,它带有以下子命令:describe
、delete
和list
。 -
现在,您可以使用本地或远程
yaml
文件直接启动管道运行。 -
describe
子命令现在显示一个改进的详细输出。现在,除了新的项,如description
、timeout
、param description
和sidecar status
,命令输出还提供了关于一个特定tkn
资源的更详细的信息。 -
现在,如果命名空间中只有一个任务,
tkn task log
命令会直接显示日志。
1.18.1.3. 触发器
-
现在触发器可以同时创建
v1alpha1
和v1beta1
管道资源。 -
支持新的通用表达式语言(CEL)拦截器功能 -
compareSecret
。此功能安全地将字符串与 CEL 表达式中的 secret 进行比较。 - 支持在事件监听器触发器级别进行身份验证和授权。
1.18.2. 已弃用的功能
本发行版本中已弃用了以下内容:
Steps
规格中的环境变量$HOME
,变量workingDir
已被弃用,并可能在以后的发行版本中有所变化。目前,在Step
容器中,HOME
和workingDir
变量会分别被/tekton/home
和/workspace
变量覆盖。在以后的发行版本中,这两个字段将不会被修改,它将被设置为容器镜像和
Task
YAML 中定义的值。在本发行版本中,使用disable-home-env-overwrite
和disable-working-directory-overwrite
标记来禁用覆盖HOME
和workingDir
变量。-
以下命令已弃用,并可能在以后的发行版本中删除:
tkn pipeline create
、tkn task create
。 -
在
tkn resource create
命令中使用-f
标志现已弃用。以后的发行版本中可能会删除它。 -
tkn clustertask create
命令中的-t
标记和--timeout
标记(使用秒格式)现已被弃用。现在只支持持续超时格式,例如1h30s
。这些已弃用的标记可能会在以后的版本中删除。
1.18.3. 已知问题
- 如果您要从 Red Hat OpenShift Pipelines 的旧版本升级,则必须删除您现有的部署,然后再升级到 Red Hat OpenShift Pipelines 版本 1.0。要删除现有的部署,您必须首先删除自定义资源,然后卸载 Red Hat OpenShift Pipelines Operator。如需了解更多详细信息,请参阅卸载 Red Hat OpenShift Pipelines 部分。
-
提交相同的
v1alpha1
任务多次会导致错误。在重新提交一个v1alpha1
任务时,使用oc replace
命令而不是oc apply
。 当一个新用户添加到容器时,
buildah
集群任务无法正常工作。当安装 Operator 时,
buildah
集群任务的--storage-driver
标志没有指定,因此它会被设置为默认值。在某些情况下,这会导致存储驱动程序设置不正确。当添加一个新用户时,错误的 storage-driver 会造成buildah
集群任务失败并带有以下错误:useradd: /etc/passwd.8: lock file already used useradd: cannot lock /etc/passwd; try again later.
作为临时解决方案,在
buildah-task.yaml
文件中手工把--storage-driver
标识的值设置为overlay
:以
cluster-admin
身份登录到集群:$ oc login -u <login> -p <password> https://openshift.example.com:6443
使用
oc edit
命令编辑buildah
集群任务:$ oc edit clustertask buildah
buildah
clustertask YAML 文件的最新版本会在由EDITOR
环境变量指定的编辑器中打开。在
Steps
字段中找到以下command
字段:command: ['buildah', 'bud', '--format=$(params.FORMAT)', '--tls-verify=$(params.TLSVERIFY)', '--layers', '-f', '$(params.DOCKERFILE)', '-t', '$(resources.outputs.image.url)', '$(params.CONTEXT)']
使用以下内容替换
command
字段:command: ['buildah', '--storage-driver=overlay', 'bud', '--format=$(params.FORMAT)', '--tls-verify=$(params.TLSVERIFY)', '--no-cache', '-f', '$(params.DOCKERFILE)', '-t', '$(params.IMAGE)', '$(params.CONTEXT)']
- 保存文件并退出。
另外,您还可以直接在 web 控制台中直接修改
buildah
集群任务 YAML 文件:进入 PipelinesCluster Tasks buildah。从 Actions 菜单中选择 Edit Cluster Task,如前所示替换 command
项。
1.18.4. 修复的问题
-
在以前的版本中,即使镜像构建已在进行中,
DeploymentConfig
任务也会触发新的部署构建。这会导致管道部署失败。在这个版本中,deploy task
命令被oc rollout status
命令替代,它会等待正在进行中的部署完成。 -
现在在管道模板中添加了对
APP_NAME
参数的支持。 -
在以前的版本中,Java S2I 的管道模板无法在 registry 中查找镜像。在这个版本中,使用现有镜像管道资源而不是用户提供的
IMAGE_NAME
参数来查找镜像。 - 所有 OpenShift Pipelines 镜像现在都基于 Red Hat Universal Base Images(UBI)。
-
在以前的版本中,当管道在
tekton-pipelines
以外的命名空间中安装时,tkn version
命令会将管道版本显示为unknown
。在这个版本中,tkn version
命令会在任意命名空间中显示正确的管道版本。 -
tkn version
命令不再支持-c
标志。 - 非管理员用户现在可以列出集群触发器绑定。
-
现在为 CEL 拦截器修复了事件监听程序
CompareSecret
功能。 -
现在,当任务和集群任务的名称相同时,任务和集群任务的
list
、describe
和start
子命令可以正确地显示输出。 - 在以前的版本中,OpenShift Pipelines Operator 修改了特权安全性上下文约束 (SCC),这会在集群升级过程中造成错误。这个错误现已解决。
-
在
tekton-pipelines
命名空间中,现在将所有任务运行和管道运行的超时设置为使用配置映射的default-timeout-minutes
字段。 - 在以前的版本中,Web 控制台中的管道部分没有为非管理员用户显示。这个问题现已解决。