1.2. Red Hat OpenShift Pipelines 1.19 发行注记
在这个版本中,Red Hat OpenShift Pipelines 正式发行(GA) 1.19 包括在 OpenShift Container Platform 4.15 及更新的版本中。
1.2.1. 新功能 复制链接链接已复制到粘贴板!
除了包括修复和稳定性改进的信息外,以下小节突出介绍了 Red Hat OpenShift Pipelines 1.19 中的新内容:
1.2.1.1. Pipelines 复制链接链接已复制到粘贴板!
在这个版本中,您可以在
EventListener资源中指定自定义securityContext设置。当您启用自定义securityContext时,用户定义的值会覆盖默认配置。否则,会自动应用默认的securityContext设置。EventListener资源中的securityContext配置示例apiVersion: triggers.tekton.dev/v1beta1 kind: EventListener metadata: name: listener-securitycontext spec: serviceAccountName: pipeline resources: kubernetesResource: spec: template: spec: securityContext: runAsNonRoot: true containers: - resources: requests: memory: "64Mi" cpu: "250m" limits: memory: "128Mi" cpu: "500m" securityContext: readOnlyRootFilesystem: true triggers: - name: foo-trig bindings: - ref: pipeline-binding - ref: message-binding template: ref: pipeline-template # ...
1.2.1.2. Tekton Results 复制链接链接已复制到粘贴板!
在这个版本中,您可以使用
TektonConfig自定义资源(CR)为 Tekton Results 配置自定义数据库凭证。这消除了依赖使用默认用户名和密码的默认 PostgreSQL secret 的需求。为 Tekton Results 添加自定义数据库凭证示例
apiVersion: operator.tekton.dev/v1alpha1 kind: TektonResult metadata: name: result spec: db_secret_name: # optional: custom database secret name db_secret_user_key: # optional db_secret_password_key: # optional ...-
在这个版本中,Tekton Results API 支持响应字段过滤或部分响应来减少有效负载大小并改进网络效率。您可以指定要包含在 API 响应中的哪些字段,通过防止检索整个对象来提高
List操作,从而优化响应延迟和 I/O 性能。 在这个版本中,您可以在
bundle.resolver.backoff下的config-resolver-bundle配置映射中为 OCI 捆绑包查找配置重试计时,如初始重试延迟、backoff 因素和最大重试持续时间。这有助于通过防止积极重试行为来减少忙碌 registry 上的负载。配置重试时间的示例
apiVersion: v1 kind: ConfigMap metadata: name: bundleresolver-config namespace: tekton-pipelines-resolvers labels: app.kubernetes.io/component: resolvers app.kubernetes.io/instance: default app.kubernetes.io/part-of: tekton-pipelines data: # The initial duration for a backoff. backoff-duration: "500ms" # The factor by which the sleep duration increases every step backoff-factor: "2.5" # A random amount of additional sleep between 0 and duration * jitter. backoff-jitter: "0.1" # The number of backoffs to attempt. backoff-steps: "3" # The maxumum backoff duration. If reached, remaining steps are zeroed. backoff-cap: "10s" # The default layer kind in the bundle image. default-kind: "task"在这个版本中,Git 解析器可以使用个人访问令牌通过 GitHub 或 GitLab 进行身份验证,避免与匿名
git cloneAPI 使用关联的速率限制。要启用此功能,请在 git resolver 参数规格中添加gitToken:字段。Tekton 在解析过程中自动将令牌注入 HTTP 标头,以减少远程解析过程中与配额相关的错误的风险。配置
gitToken:字段的示例apiVersion: tekton.dev/v1beta1 kind: PipelineRun metadata: name: git-clone-demo-pr spec: pipelineRef: resolver: git params: - name: url value: https://github.com/tektoncd/catalog.git - name: revision value: main - name: pathInRepo value: pipeline/simple/0.1/simple.yaml - name: gitToken value: "secret-with-token" - name: gitTokenKey (optional, defaults to "token") value: "token" params: - name: name value: Ranni在这个版本中,Tekton Results 中的 SQL 的默认日志级别被设置为
warn。您可以通过在 Tekton Results 部署中指定SQL_LOG_LEVEL环境变量来覆盖此设置。启用
SQL_LOG_LEVEL环境变量的示例apiVersion: operator.tekton.dev/v1alpha1 kind: TektonConfig metadata: name: config options: deployments: tekton-results-api: spec: template: spec: containers: - name: api env: - name: SQL_LOG_LEVEL value: debug # ...-
在这个版本中,Tekton Results 监视器会在删除终结器前重试协调,直到达到
storedDeadline持续时间为止。这可减少缺少TaskRun或PipelineRun存储的风险。 在这个版本中,Tekton Results 用户可以从 OpenShift Logging 转发的 Splunk 检索日志。要启用此功能,请在 Tekton Results API 部署中设置以下环境变量:
- SPLUNK\_SEARCH\_TOKEN, LOGGING\_PLUGIN\_QUERY\_PARAMS
LOGGING\_PLUGIN\_API\_URL
OpenShift Logging 检索转发的日志的示例
apiVersion: operator.tekton.dev/v1alpha1 kind: TektonConfig metadata: name: config options: deployments: tekton-results-api: spec: template: spec: containers: - name: api env:注意-
LOGGING\_PLUGIN\_API\_URL变量必须使用 Splunk 端点和端口号进行配置。
-
在这个版本中,Tekton Results watcher 使用
StatefulSetordinals 提高高可用性和工作负载分布作为领导选举机制的替代选择。为 Tekton Results 监视器启用
StatefulSet或dinals 示例apiVersion: operator.tekton.dev/v1alpha1 kind: TektonConfig metadata: name: config spec: # ... result: performance: disable-ha: false buckets: 4 replicas: 4 statefulset-ordinals: true # ...重要对高可用性使用
StatefulSet或dinals 只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围。
1.2.1.3. Pipelines 作为代码(Pipelines as Code) 复制链接链接已复制到粘贴板!
-
在这个版本中,当未授权的 bot 用户尝试触发
PipelineRun时,Pipelines as Code 不再会在 GitHub 拉取请求上创建一个Pending状态。现在,不生成阻止状态检查,而是静默禁止此类请求。 -
在这个版本中,一个新的
pipelines_as_code_git_provider_api_request_count指标跟踪由 Pipelines as Code 到 Git 供应商(如 GitHub、GitLab 和 Gitea)进行的 API 调用数量。指标还帮助监控每个 Git 提供程序、命名空间、事件类型和存储库的 API 速率限制使用量。 -
在这个版本中,
RepositoryCR 中的 URL 会在创建过程中验证,以确保它们被正确格式化并使用有效的方案,如 http 或 https。此功能增强有助于防止配置错误和运行时错误。 -
在这个版本中,
PipelineRun状态注释会在 Bitbucket 数据中心和 Bitbucket 云上正确显示,而不是在拉取请求 UI 中显示原始字符串。
1.2.1.4. Operator 复制链接链接已复制到粘贴板!
在这个版本中,您可以通过将
TektonConfig自定义资源(CR)中的generateSigningSecret字段设置为true来生成cosign密钥对。Red Hat OpenShift Pipelines Operator 生成cosign.key 密钥对、cosign.key私钥和cosign.pub公钥。启用
cosign密钥对的示例apiVersion: operator.tekton.dev/v1 kind: TektonConfig metadata: name: config spec: chain: disabled: false generateSigningSecret: true # ...-
在这个版本中,
/ok-to-test内存功能会被默认禁用。这种预防措施有助于降低测试环境中恶意代码执行的风险。 - 在这个版本中,可以从远程管道定义中扩展动态变量。此功能增强改进了管道组成功能。
-
在这个版本中,远程解析功能中包含的 Git 解析器使用原生 git 二进制文件,而不是 pure Go
go-git库。这个更改减少了内存消耗并提高克隆性能,特别是对于大型存储库。此增强使用 shallow-clone 标志(如深入的 1)来减少资源使用量。不需要更改管道清单。 -
在这个版本中,Red Hat OpenShift Pipelines 中的
onError字段支持 Tekton 参数替换。在以前的版本中,onError字段只接受字面值stopAndFail并继续。您可以使用$(params.strategy)替换令牌在运行时动态决定失败处理行为。这允许单个 Pipeline 定义根据参数、上下文或结果调整其onError策略。 -
在这个版本中,
StepAction定义从 alpha 更新至 stable,现在默认启用。早期版本中使用的enable-step-actions标志不再使用,并将在以后的发行版本中删除。 - 在这个版本中,Pipeline 调度程序可以正确地评估 fan-out/fan-in 模式的结果引用。在以前的版本中,当列表任务依赖于结果 refs 时,此类管道可能会失败。
-
在这个版本中,
TektonConfigCR 中的remember-ok-to-test值默认设置为false,以减少在测试环境中运行不可信代码的风险。
1.2.1.5. Tekton Cache 复制链接链接已复制到粘贴板!
-
在这个版本中,
StepAction功能中的参数命名约定是统一的,以实现一致性。现在,cache-fetch和cache-upload步骤操作的级级与git-clone的方法一致。 -
在这个版本中,
tekton-caches工具除现有的 OCI registry 支持外,tekton-caches 工具也可以推送到 Google Cloud Storage (GCS)存储桶并检索。要启用此功能,请将缓存后端设置为gs://bucket/pathURI。 -
在这个版本中,您可以将缓存存档存储在任何 S3 兼容存储桶中,包括内部解决方案,如 MinIO 或云供应商,如 AWS。要使用这个功能,请指定 URL,如
s3://my-bucket/cache作为缓存后端。 -
在这个版本中,缓存存档使用
Gzip压缩,然后再上传。这降低了对象存储成本并加快数据传输,特别是对于Go模块等大型缓存。 -
在这个版本中,恢复的缓存默认为
0777权限,确保可执行脚本和其他权限敏感的文件可以正常工作。在以前的版本中,恢复的文件默认为0600权限,这可能会阻止脚本按预期运行。 - 在这个版本中,使用 Workload Identity Federation (WIF)在 Google Kubernetes Engine (GKE)上运行,不再需要将密钥文件嵌入到任务中。现在,您可以挂载投射卷令牌,消除了对长期凭证的需求并提高安全性。
-
在这个版本中,GCS 和 S3 后端的代码路径使用
gocloud.dev库统一。此抽象简化了额外的存储提供程序的支持,如 Azure Blob 存储或本地文件系统。 -
在这个版本中,
fetch命令进行了改进,以便在新工作区中不存在目标文件夹时自动创建它。在以前的版本中,在这种情况下,命令会失败,需要您手动创建目录。 在这个版本中,registry 身份验证不再仅限于
/tekton/home/.docker/config.json默认路径。现在,您可以使用Task资源中的dockerConfig参数挂载任何 Docker 配置文件并指定其位置。但是,DOCKER_CONFIG的自定义位置必须包含有效的config.json文件。在任务中启用
dockerConfig参数的示例apiVersion: tekton.dev/v1 kind: Task metadata: name: build-task spec: workspaces: - name: source - name: cred params: - name: cachePatterns default: $(params.cachePatterns) steps: - name: cache-fetch ref: resolver: cluster params: - name: name value: cache-fetch - name: namespace value: openshift-pipelines - name: kind value: stepaction params: - name: PATTERNS value: $(params.cachePatterns) - name: SOURCE value: oci://$(params.registry)/cache-go:{{hash}} - name: CACHE_PATH value: $(workspaces.source.path)/cache - name: WORKING_DIR value: $(workspaces.source.path)/repo - name: DOCKER_CONFIG value: $(workspaces.cred.path)/ - name: cache-upload ref: resolver: cluster params: - name: name value: cache-upload - name: namespace value: openshift-pipelines - name: kind value: stepaction params: - name: PATTERNS value: $(params.cachePatterns) - name: TARGET value: oci://$(params.registry)/cache-go:{{hash}} - name: CACHE_PATH value: $(workspaces.source.path)/cache - name: WORKING_DIR value: $(workspaces.source.path)/repo - name: DOCKER_CONFIG value: $(workspaces.cred.path)/ ... # ...
1.2.1.6. Tekton Chains 复制链接链接已复制到粘贴板!
在这个版本中,Tekton Chains 控制器使用
StatefulSetordinals 来改进高可用性和工作负载分布,作为领导选举机制的替代选择。为
Chains控制器启用 StatefulSet ordinals 示例apiVersion: operator.tekton.dev/v1alpha1 kind: TektonChains metadata: name: chain spec: chain: performance: disable-ha: false buckets: 4 replicas: 4 statefulset-ordinals: true重要对高可用性使用
StatefulSet或dinals 只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围。
1.2.1.7. Pipelines 作为代码(Pipelines as Code) 复制链接链接已复制到粘贴板!
-
在这个版本中,Pipelines as Code 引入了
pipelines_as_code_git_provider_api_request_count指标。此指标跟踪 Pipelines as Code 发出的 API 请求数到 Git 供应商,以响应事件。 在这个版本中,
TektonConfig自定义资源支持两个新字段,为在 Pipelines 全局中运行的管道启用cancel-in-progress功能:-
enable-cancel-in-progress-on-pull-requests enable-cancel-in-progress-on-push当设置为
true时,这些字段会在有新提交时自动取消由拉取请求或推送事件触发的任何 in-progress 管道运行。默认情况下,这两个字段都设为 false。注意如果
PipelineRun资源包含pipelinesascode.tekton.dev/cancel-in-progress注解,它会覆盖对应的TektonConfig设置。使用
TektonConfigCR 启用 auto-cancel 在拉取请求和推送事件时启用apiVersion: operator.tekton.dev/v1alpha1 kind: TektonConfig metadata: name: config # ... platforms: openshift: pipelinesAsCode: # ... settings: # ... enable-cancel-in-progress-on-pull-requests: "false" enable-cancel-in-progress-on-push: "false" # ...
-
在这个版本中,Pipelines as Code 支持
git_tag动态变量。此变量在标签推送事件期间使用,并反映 Git 标签的值。例如,如果标签v1.0推送到RepositoryCR,则git_tag变量包含值v1.0。git_tag 配置示例
--- apiVersion: tekton.dev/v1 kind: PipelineRun metadata: name: pull-pr-3 annotations: pipelinesascode.tekton.dev/on-event: ["push"] pipelinesascode.tekton.dev/on-target-branch: ["refs/tags/*"] spec: params: - name: tag value: "{{ git_tag }}" pipelineSpec: tasks: # ... tasks: ... taskSpec: steps: ... script: |在这个版本中,
TektonConfigCR 包含skip-push-event-for-pr-commits字段。启用后,如果提交 SHA 包含在 open pull 请求中,Pipelines as Code 不会触发管道运行用于推送事件。这可防止为同一提交运行重复的管道。默认情况下,此字段设置为true。TektonConfig中的skip-push-event-for-pr-commits配置示例apiVersion: operator.tekton.dev/v1alpha1 kind: TektonConfig metadata: name: config # ... platforms: openshift: pipelinesAsCode: additionalPACControllers: <controllerName>: enable: true configMapName: secretName: settings: enable: true # ... settings: # ... hub-url: https://api.hub.tekton.dev/v1 skip-push-event-for-pr-commits: "true" remote-tasks: "true" secret-auto-create: "true" # ...-
在这个版本中,OpenAPI 模式被集成到 Repository CR 的 Pipelines as Code 中。此模式为 Repository CR 编写启用 IDE 自动完成功能,并通过
oc explain命令允许存储库解释。 -
在这个版本中,当您在存储库中设置
on-cel-expression、on-event或on-target-branch注解时,on-cel-expression注解会具有优先权。本例中忽略on-event和on-target-branch注解。若要提醒用户,将生成一个警告日志和 Kubernetes 事件来指示此行为。
1.2.1.8. 基于事件的 Pruner 复制链接链接已复制到粘贴板!
Pruner 组件只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。
有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围。
在这个版本中,Prun
er组件在 Red Hat OpenShift Pipelines 中自动清理PipelineRun和TaskRun资源。它支持以下功能:-
基于时间的修剪(TTL)。此功能在指定持续时间后自动删除已完成的
PipelineRun和TaskRun资源。这通过ttlSecondsAfterFinished设置进行控制。 基于历史记录的修剪。这个功能保留有限数量的成功和失败的运行。它通过以下参数进行配置:
-
successfulHistoryLimit -
failedHistoryLimit -
historyLimit
-
灵活的配置级别。有两个可配置的级别:
-
全球.这个选项适用于所有命名空间,但前缀为
kube-和openshift-除外。 命名空间。这个选项适用于特定命名空间中的所有资源
注意在这个发行版本中,只有
Global和Namespace配置可用。
-
全球.这个选项适用于所有命名空间,但前缀为
-
基于时间的修剪(TTL)。此功能在指定持续时间后自动删除已完成的
在这个版本中,您可以通过将
spec.tektonpruner.disabled设置为true或false,在TektonConfigCR 中禁用或启用基于事件的修剪器。TektonConfigCR 尚不支持细粒度配置,且必须通过配置映射进行管理。注意在启用基于事件的修剪器之前,必须禁用基于作业的现有修剪器。
1.2.2. 可能会造成问题的更改 复制链接链接已复制到粘贴板!
-
在这个版本中,
hub clustertask命令已从 CLI 中删除,因为 Tekton Hub 上不再提供ClusterTask功能。 -
在这个版本中,删除了
ClusterTask对象的支持。因此,tkn clustertask和tkn task create命令不再可用。 -
在这个版本中,opc
results list命令被opc results results list命令替代。 -
在这个版本中,
disable-affinity-assistant标志会从 Red Hat OpenShift Pipelines Operator 中删除。此标志在 Red Hat OpenShift Pipelines v1.13 中已弃用,且在 Red Hat OpenShift Pipelines v1.19 中没有任何影响。在'TektonConfig 自定义资源(CR)中仍可使用 disable-affinity-assistant 标志来向后兼容,但它不会影响 Red Hat OpenShift Pipelines Operator 的行为。要保持相同的行为,请将coschedule功能标记设置为disabled。
1.2.3. 已知问题 复制链接链接已复制到粘贴板!
-
目前,基于事件的修剪器不会严格验证
tekton-pruner-default-spec配置映射的内容。如果提供了无效的配置键或不正确的字段名称的值,则忽略配置。因此,pruner 可能会回退到默认行为,或跳过修剪。
1.2.4. 修复的问题 复制链接链接已复制到粘贴板!
-
在此次更新之前,
s2i-java任务失败并显示错误消息/usr/libexec/s2i/assemble: No such file or directory。这个错误的原因是脚本路径引用不正确。在这个版本中,s2i-java任务的默认脚本路径被修改为/usr/local/s2i。其他 S2I 任务,如 Go 或 .NET 的任务,继续使用/usr/libexec/s2i/assemble脚本路径。 -
在此次更新之前,
PipelineRun中的 YAML 语法错误仅在日志和 Kubernetes 事件中报告,从而导致它们难以检测和故障排除。在这个版本中,当PipelineRunYAML 验证错误发生时,Pipelines as Code 注释会在拉取请求中直接评论。这提高了错误可见性,并简化了 GitHub、GitLab 和 Gitea 供应商上的故障排除。 在此次更新之前,在 GitLab 集成中,Pipelines as Code 会在每个
PipelineRun的开始和结尾的合并请求中发布注释。当触发多个 pipelineruns 时,此行为会导致在合并请求中出现过量注释。在这个版本中,您可以通过在Repository自定义资源(CR)中将disable_all设置为true来禁用所有 GitLab 注释。启用 Repository CR 示例
--- apiVersion: "pipelinesascode.tekton.dev/v1alpha1" kind: Repository metadata: name: test-pac spec: # other fields settings: gitlab: comment_strategy: "disable_all"- 在此次更新之前,从 Amazon Web Services (AWS) S3 存储桶检索的日志会以随机顺序显示,从而导致调试和故障排除。在这个版本中,AWS S3 的日志会被正确排序,改进了可读性和整体调试体验。
-
在此次更新之前,Pipelines as Code 需要
RepositoryCR 中定义的所有自定义参数,使其包含预定义的值。在这个版本中,可以在RepositoryCR 中指定默认值的情况下定义自定义参数。这个更改可让通过 Webhook 有效负载提供值并保持向后兼容性。 -
在此次更新之前,当使用
github-pushClusterTriggerBinding时,git-clone命令可能会因为HTTP 403错误而失败。出现这个问题的原因是$(body.repository.url)参数指向 GitHub API URL,而不是有效的 Git 克隆 URL。在这个版本中,新的git-repo-clone-url参数使用$(body.repository.html_url)来确保克隆使用正确的存储库 URL。 -
在此次更新之前,
buildah任务无法处理构建参数,其中包含与集群解析器一起使用的空格。此问题会影响用户从已弃用的ClusterTask自定义资源(CR)中迁移。在这个版本中,buildah任务中的BUILD_ARGS参数可以正确地支持空格的参数,例如EXAMPLE="abc def",恢复与之前功能的兼容性。 -
在此次更新之前,OpenShift Container Platform Web 控制台中的 PipelineRun 详情页面无法正确加载,从而导致用户查看管道运行详情。在这个版本中,web 控制台可以正确地显示
PipelineRun信息。 -
在此次更新之前,因为升级到 PatternFly 6 并删除已弃用的
co-class,所以控制台插件会过期。这会导致 OpenShift Container Platform Web 控制台的 Pipelines 部分中的对齐和影响问题。在这个版本中,控制台插件会更新,以使用适当的 PatternFly 等效类,确保与当前的 OpenShift Container Platform Web 控制台设计标准保持一致和视觉集成 - 在此次更新之前,OpenShift Pipelines 控制台插件因为 OpenShift Pipelines 1.18 中的默认 Tekton Results TLS secret 创建问题而失败。这会导致控制台无法访问,使管道详情无法查看。在这个版本中,OpenShift Pipelines 1.18 中跳过默认的 Tekton Results TLS secret 创建,从而解决了这个问题。
-
在此次更新之前,OpenShift Container Platform Web 控制台中的
PipelineRun链接错误地指向已弃用的v1beta1Red Hat OpenShift Pipelines API 而不是当前的v1API。在这个版本中,链接指向适当的v1API。 -
在此次更新之前,Red Hat OpenShift Pipelines 和 Tekton Results 会错误地显示之前
PipelineRun资源中共享相同名称的TaskRun资源。这会导致与当前执行关联的TaskRun资源混淆。在这个版本中,Tekton Results 可以正确地隔离,仅显示与当前PipelineRun资源关联的TaskRun资源,从而防止存档和活跃的执行数据混合。 - 在此次更新之前,因为 GitOps 注释被错误地关联了管道运行,所以端到端(E2E)测试不稳定。此行为会导致在 CI/CD 管道中出现间歇性测试失败并减少可靠性。在这个版本中,GitOps 注释不再与取消的管道运行混合,从而导致稳定和可预测的 E2E 测试。
-
在此次更新之前,
tekton-cachestarit工具在压缩缓存的目录时不会保留文件权限。因此,可执行文件和脚本有时会在解包后停止工作。这会导致问题,特别是当不同用户或 SELinux 强制基础镜像使用工件时。在这个版本中,在缓存和文件在所有用户环境中都可以正确保留文件权限。 -
在此次更新之前,当
TaskRun因为ImagePullBackOff错误而失败时,PipelineRun日志片断会在 OpenShift Container Platform web 控制台的 Pipelines 部分的 Pipelines 部分切换后显示不明确的信息,如 "pods not found"。在这个版本中,错误包括明确的错误消息,如TaskRunImagePullFailed或无法拉取镜像,以改进故障排除体验。 -
在此次更新之前,OpenShift Container Platform Web 控制台中的 Red Hat OpenShift Pipelines Start 接口中的某些元素(如
deployment-name,Hr,Min, 和Sec)始终以英语显示,无论用户的区域设置是什么。在这个版本中,所有接口元素都完全本地化,现在会根据用户的所选区域显示。 -
在此次更新之前,Tekton 修剪器作业会在基于 Helm 的安装过程中遇到
ImagePullBackOff错误,因为镜像标签中缺少SHA256 摘要。在这个版本中,镜像标签包含所需的SHA256 摘要,且不再发生错误。 -
在此次更新之前,在从 Bitbucket 数据中心推送事件时,Pipelines as Code 控制器可能会崩溃,并带有
index out of range错误。当事件有效负载中的更改数组为空时,会发生此行为。在这个版本中,Pipelines as Code 可以安全地处理空更改数组,从而防止控制器崩溃。 -
在此次更新之前,为拉取请求添加标签会意外地触发
PipelineRun。在这个版本中,这个问题已解决。 -
在此次更新之前,关闭拉取请求会取消持续的
PipelineRun,即使未设置cancel-in-progress注解。在这个版本中,仅在配置cancel-in-progress注解时,管道运行仅在拉取请求 closure 上取消。 - 在此次更新之前,Pipelines 中的 GitLab 集成会出现 API 调用失败,从而导致 API URL 不正确。在这个版本中,通过引入 URL 验证来解决这个问题,这可以防止此类错误配置并确保成功 API 通信。
-
在此次更新之前,Pipelines as Code 不会取消使用
generateName字段创建的PipelineRun,即使设置了cancel-in-progress注解。在这个版本中,Pipelines as Code 可以正确地取消包含generateName字段的 in-progressPipelineRun。 -
在此次更新之前,当在 GitLab 中配置被验证时,Pipelines as Code 从 Git 仓库检索不正确的
PipelineRun模板。在这个版本中,Pipelines as Code 可以正确地识别并检索 GitLab 验证设置中的预期模板。 -
在此次更新之前,如果您在推送提交注释中使用
/ok-to-testGitOps 命令,它会触发管道运行。在这个版本中,/ok-to-test命令不会在拉取请求外使用时触发管道运行。 -
在此次更新之前,当 Artifact Hub 解析器引用
StepAction定义时,TaskRun和PipelineRun资源会失败,并带有kind param must be task 或 pipeline错误。这是因为StepAction定义没有识别为有效的资源类型。在这个版本中,Artifact Hub 解析器支持StepAction引用,允许用户在其任务和管道中包含远程步骤操作。 -
在此次更新之前,
PipelineRun会失败,并显示错误为 volumeMount 创建 subPath 目录,即使 OpenShift Container Platform 最终会恢复并创建所需的 pod。这会导致不必要的PipelineRun失败且用户体验不佳,通常需要手动重启。在这个版本中,PipelineRun实现一个宽限期和重试机制,用于subPath目录创建错误。这允许 OpenShift Container Platform 时间自动解决问题,从而减少错误故障并改进可靠性。 -
在此次更新之前,Tekton Results API 服务器会在为不存在的
TaskRun或PipelineRun进行日志查询时遇到错误。在这个版本中,这个问题已被解决。 -
在此次更新之前,用户必须将 CLI 嵌套在单独的
Task资源中,才能备份或恢复构建缓存。在这个版本中,StepAction定义支持fetch和upload,因此您可以使用任何Task或Pipeline中的单个步骤处理缓存操作。 -
在此次更新之前,因为 TLS 错误,将缓存推送到带有自签名证书的 registry 会失败。在这个版本中,CLI 和
Task资源支持 new-insecure标志,它可启用这些推送,并更轻松地用于 air-gapped 开发集群和本地 registry。 - 在此次更新之前,在 GitLab 中,当 Pipelines as Code (如更新 MR 描述或修改 reviewers)中发生非代码更改时,为 Merge Requests (MR)运行的管道运行会自动重新触发。这个行为会导致不必要的管道执行。在这个版本中,这个问题已被解决,管道运行只由新提交触发。
-
在此次更新之前,在 Pipelines as Code 中,在拉取请求合并事件时不会触发带有
on-path-change注解的 pushPipelineRun,即使合并的拉取请求修改了指定路径。在这个版本中,通过拉取请求合并引入相关路径更改时,这个问题可以通过确保正确触发管道。 -
在此次更新之前,Pipelines as Code 会尝试解析和验证
.tekton 目录中的每个YAML 文件,从而导致不相关或无效的非Tekton 资源出现假错误。在这个版本中,Pipelines as Code 只验证明确定义的 Tekton 资源,从而减少拉取请求反馈并改进 CI 验证的准确性。 - 在此次更新之前,使用非域限定终结器名称,从而导致 Pipelines 中的警告作为 Kubernetes API 中的代码监视器。现在,使用与 Kubernetes 约定一致的域限定程序名称解决了这个问题。
- 在此次更新之前,当验证带有无效或过期令牌的 GitHub Webhook secret 时,Pipelines as Code 控制器会意外终止。在这个版本中,这个问题已被解决。控制器会记录清晰的错误消息,并继续运行,确保 Webhook 功能和控制器可用性不会中断。