发版日志

INFO

发版日志包含了 Alauda DevOps v4.1 兼容性矩阵中多个版本的各个 Operator 的汇总内容。每个 Operator 更详细的发版日志可以在对应的 Operator 文档中心查看。

Alauda DevOps (Next-Gen) - 4.1

兼容性与支持矩阵

下表展示了 Alauda DevOps v4.1 中包含的 Operators 的版本矩阵。

Alauda DevOps 版本Alauda DevOps Pipeline 版本Alauda DevOps Connectors 版本Toolchain 版本
v4.1v4.1, v4.2, v4.3, v4.4v1.1, v1.2, v1.4Alauda Build of Gitlab: v17.11
Alauda Build of Harbor: v2.12
Alauda Build of SonarQube: v2025.1
Alauda Build of Nexus: v3.76

新增与优化功能

Alauda DevOps Pipelines

  • 任务功能增强:新增了包括 kubectlgitPythonPytest 在内的任务类型;提供了标准化的 JavaHelmPython 流水线模板。
  • 允许在 Hub 中注册自定义的 PipelineTask
  • 安全能力升级:集成了 syftcosigntrivy 任务,实现镜像 SBOM 生成、签名验证和漏洞扫描。
  • 配置增强:支持流水线触发模板;EventListener 现支持自定义 securityContextimagePullSecrets 配置。
  • 用户体验优化:流水线编排的端到端体验优化。
  • 优化了 Tekton Community 上游问题。
  • 不同版本的更详细发版日志可在 Alauda DevOps Pipelines 文档中心查看。

Alauda DevOps Connectors

  • 支持在 Kubernetes 中拉取镜像时使用 OCI Connector
  • 新增 Kubernetes Connector,用于集成 Kubernetes 集群并在工作负载/流水线中使用。
  • 支持通过 Maven Connector 和 PyPI Connector 集成 Maven 和 PyPI 注册表。
  • 不同版本的更详细发版日志可在 Alauda DevOps Connectors 文档中心查看。

DevOps Toolchain

本次更新增强了工具链的整体安全性和稳定性,包含以下内容:

  • Alauda Build of Gitlab

  • Alauda Build of Harbor

  • Alauda Build of SonarQube

  • Alauda Build of Nexus

重大变更

  • 本版本的 Alauda DevOps Pipeline 不再支持 ClusterTask 对象。
  • Alauda DevOps ConnectorsOCI ConnectorClass 的 resolver-type 格式发生变化,可能影响使用 OCI connector 的场景。
  • 在升级到 v1.1.0 后,Alauda DevOps Connectors 中由 v1.0.8 创建的 connectors 可能会遇到错误。

修复的问题

  • 在此更新之前,Harbor 部署在 ARM 环境中时,执行镜像扫描会失败并提示扫描错误。此更新修复了该问题,Harbor 现已支持在 ARM 环境中正常进行镜像扫描。
  • 在此更新之前,Harbor 通过环境变量暴露了敏感信息,不符合 Kubernetes 安全基线(STIG ID:V-242415)的要求。此更新修复了该安全问题,环境变量中不再包含敏感信息,从而符合 Kubernetes STIG 的安全合规要求。
  • 在此次更新之前,使用 resolver Task 的流水线运行在检索 Task 时,如果向 tekton-pipelines-webhook 服务的验证请求超时,会间歇性失败,导致流水线失败且不会自动重试。通过此次更新,系统现在可以正确处理 resolver Task 验证过程中的可重试错误,并实现重试逻辑,确保即使在临时网络连接问题时也能可靠地执行流水线。
  • 在此次更新之前,在启用严格 SELinux 限制的 MicroOS 环境中,依赖 Java 工具(如 Maven、SonarQube)的 Tekton 任务会因报错 “Error occurred during initialization of VM - Failed to mark memory page as executable” 而无法启动。通过本次更新,该问题已修复,MicroOS 环境中基于 Java 的 Tekton 任务现在可以正常运行。
  • 在此次更新之前,当用户为 Tekton Hub 配置 tekton-hub-api-ssh-crds Secret 以使用 SSH 密钥克隆私有代码仓库时,配置未能正确应用,即使重启 pod 后也无法成功克隆代码仓库。通过此次更新,tekton-hub-api-ssh-crds Secret 配置能够被正确处理和应用,使 Tekton Hub 能够成功使用 SSH 认证克隆私有代码仓库。
  • 在此次更新之前,使用 resolver Task 的流水线运行在检索 Task 时,如果向 tekton-pipelines-webhook 服务的验证请求超时,会间歇性失败,导致流水线失败且不会自动重试。通过此次更新,系统现在可以正确处理 resolver Task 验证过程中的可重试错误,并实现重试逻辑,确保即使在临时网络连接问题时也能可靠地执行流水线。
  • 在此次更新之前,在启用严格 SELinux 限制的 MicroOS 环境中,依赖 Java 工具(如 Maven、SonarQube)的 Tekton 任务会因报错 “Error occurred during initialization of VM - Failed to mark memory page as executable” 而无法启动。通过本次更新,该问题已修复,MicroOS 环境中基于 Java 的 Tekton 任务现在可以正常运行。
  • 在此更新之前,如果 ACP 打开了 project-ns-prefix 功能开关, 在业务集群ACP 项目下的 NS Pod 中挂载项目级别的Connector会提示权限错误,此次更新之后,修复了该问题。ACP 打开 project-ns-prefix 功能开关的情况下,在业务集群ACP 项目下的 NS Pod 中,可以正常挂载项目级别的Connector。
  • 在此次更新之前,当用户创建多个不同工具(例如 GitLab 和 Harbor)且使用相同名称的实例时,后创建的实例虽然能够创建成功,但在部署阶段会失败。通过本次更新,Operator 会在创建阶段直接拦截重复的名称并返回错误,提示用户修改 release 名称。
  • 在此更新之前,以高可用模式部署 GitLab 时,praefect 组件未配置默认的资源请求(requests)和限制(limits),这可能导致资源争用或不可预测的调度行为。此更新后,praefect 组件已包含默认资源配置:请求值为 500m CPU 和 500Mi 内存,限制值为 2 CPU 和 2Gi 内存。
  • 在此更新之前,operator 因 HPA 资源不断地重新调和 GitLab 实例,导致 CPU 占用过高。随着此更新,operator 能够正常调和 GitLab 实例,从而降低 CPU 消耗。
  • 在此次更新之前,使用 resolver Task 的流水线运行在检索 Task 时,如果向 tekton-pipelines-webhook 服务的验证请求超时,会间歇性失败,导致流水线失败且不会自动重试。通过此次更新,系统现在可以正确处理 resolver Task 验证过程中的可重试错误,并实现重试逻辑,确保即使在临时网络连接问题时也能可靠地执行流水线。
  • 在此更新之前,当tektoncd-operator部署Tekton Results组件时,如果外部PostgreSQL凭据中包含特殊字符(如"/"),部署会失败。在此更新中,即使PostgreSQL凭据包含特殊字符(如"/"),tektoncd-operator也能成功部署Tekton Results组件。
  • 在此更新之前,当您在Alauda Pipeline UI中从执行参数中移除ConfigMap的key时,被移除的key在实际的流水线执行中仍然会被包含,导致UI显示与实际流水线行为不一致。通过此次更新,在UI中移除ConfigMap key的操作现在能够正确应用到实际的流水线执行中,确保界面与运行时行为的一致性。
  • 在此更新之前,部署完 Connectors 组件之后,组件状态正常,在 Pod 中使用 connectors-csi driver 时,会偶发提示 “driver name connectors-csi not found in list of registered csi driver”, 导致 Pod 无法启动。 此次更新之后,修复了该问题。部署完成之后,组件状态正常的情况下,Pod 中可正常使用 connectors-csi driver,不会遇到该偶发问题
  • 在此更新之前,如果 Connectors 组件部署到 非 connectors-system 命名空间下,创建的 OCI Connector 的认证状态会一直处于失败状态。 此次更新之后, 修复了该问题。 OCI Connector 的认证状态不会受到组件部署命名空间的影响,能够准确反馈凭据的有效性。
  • 在此更新之前,在 kubernetes 1.31 之前部署 Connectors 组件后,由于 kubernetes Server-side apply 存在bug(https://github.com/kubernetes/kubernetes/issues/124605), 会不断的更新资源的 resourceVersion,可能导致集群的稳定性下降。此次更新之后,connectors-operator 绕过了该问题,在 kubernetes 1.31 之前版本部署,仅有 resourceVersion 变更时不会触发 reconcile。
  • 在此更新之前,执行 Tekton Pipeline 流水线过程中,用户偶尔会遇到由于初始化容器内存不足 (OOM) 错误导致的随机测试用例失败,容器以退出码 137 终止并导致流水线执行失败。通过此更新,已优化初始化容器的内存分配以防止 OOM 错误,确保在频繁的端到端测试场景中流水线执行的稳定性和可靠性。
  • 在此次更新之前,当用户为 Tekton Hub 配置 tekton-hub-api-ssh-crds Secret 以使用 SSH 密钥克隆私有代码仓库时,配置未能正确应用,即使重启 pod 后也无法成功克隆代码仓库。通过此次更新,tekton-hub-api-ssh-crds Secret 配置能够被正确处理和应用,使 Tekton Hub 能够成功使用 SSH 认证克隆私有代码仓库。
  • 在此更新之前,部署 Tektoncd Operator 后并没有导入 trigger 需要的 clustertriggerbinding 资源,导致 trigger 功能使用不便。通过此次更新,会自动导入该资源,使得 trigger 功能使用更便捷。
  • 在此次更新之前,Tekton Results组件(tekton-results-api、tekton-results-retention-policy-agent、tekton-results-postgres)将密钥存储为环境变量,这违反了Kubernetes STIG安全基线要求V-242415,该要求禁止将密钥存储为环境变量。通过此次更新,这些组件不再通过环境变量挂载密钥,确保符合Kubernetes安全标准。
  • 在此更新之前,如果 Tektoncd Operator 中的 Hub 组件有更新,还需要人工介入才能触发升级。通过此次更新,会自动检测 Hub 组件的更新,并自动触发升级。
  • 在此更新之前,tekton-hub-api 组件在执行git clone操作时每30分钟会产生僵尸进程,由于僵尸进程属于异常情况,容易引起节点故障。通过此次更新,通过更新tektoncd-operator解决了僵尸进程问题,系统现在可以在git操作过程中正常运行而不会产生僵尸进程。
  • 在此更新之前,Tekton Results 保留策略代理组件中的 tekton-results-retention-policy-agent 容器没有配置 CPU 或内存限制,这构成了安全漏洞,因为容器可能消耗无限资源。在此更新中,已为 retention-policy-agent 容器添加了适当的 CPU 和内存限制,确保资源使用得到适当约束,安全漏洞得到解决。
  • 在此更新之前,Tekton Results 组件中的 tekton-results-api 容器没有配置 CPU 或内存限制,这可能导致资源耗尽和安全漏洞。通过此次更新,已为 tekton-results-api 容器添加了适当的 CPU 和内存限制,以确保资源约束并改善安全状况。
  • 在此更新之前,当启用 Tekton Chains 并且在 PipelineRun 和 TaskRun 资源完成后修改了 default-pod-template 配置时,这些资源无法被删除,这是由于默认 webhook(尝试更新 pod 模板)和验证 webhook(阻止对已完成资源的 spec 修改)之间的冲突造成的。通过此更新,默认 webhook 不再尝试修改已完成 PipelineRun 和 TaskRun 资源的 pod 模板,从而允许成功删除这些资源。
  • 在此更新之前,tekton-results-watcher 组件中的 watcher 容器没有配置 CPU 或内存限制,这可能导致 Kubernetes 环境中的资源耗尽和安全漏洞。在此更新中,tekton-results-watcher 容器现在已配置了适当的 CPU 和内存限制,确保更好的资源管理和安全合规性。

已知问题

  • 在启用严格 SELinux 限制的 MicroOS 环境中,依赖 Java 工具(如 Maven 和 SonarQube)的 Tekton 任务无法启动,报错 "Error occurred during initialization of VM - Failed to mark memory page as executable"。该问题由 OpenJDK 的 JVM 解释器与 MicroOS 安全限制不兼容导致。此问题影响 MicroOS 环境中所有基于 Java 的 Tekton 任务,导致关键 CI/CD 工作流无法执行。
  • 如果使用 resolver Task 的流水线在检索 Task 时遇到 webhook 验证超时,流水线可能会间歇性失败且不会自动重试。要解决此问题,需要手动重新启动失败的流水线运行,因为系统当前未对可重试的 webhook 验证错误实现重试逻辑。