Skip to content

v2.5 至 2.6

已知问题

2.6.6 之前已损坏的 project 过滤器

Argo CD 2.4.0 引入了一个突破性的 API 更改,将 "项目 "过滤器更名为 "项目"。

对应用程序接口客户的影响

类似的问题也适用于通过 REST API 与 Argo CD API 服务器通信的其他 API 客户端。 如果客户端使用 "项目 "字段来过滤项目,则过滤器将不会被引用。 项目过滤器失效可能会产生有害后果,例如,如果您依赖它来列出要删除的应用程序

对 CLI 客户的影响

v2.4.0 以上版本的 CLI 客户端依靠客户端过滤,不受此错误的影响。

如何解决问题

升级到 Argo CD >=2.4.27、>=2.5.15 或 >=2.6.6。此版本的 Argo CD 将同时接受 projectprojects 作为有效过滤器。

2.6.5 中的矩阵嵌套 git 文件生成器已损坏

Argo CD 2.6.5 在矩阵嵌套的 git 文件生成器中引入了一个错误。 该错误仅适用于 git 文件生成器是嵌套在矩阵下的第二个生成器的情况。 例如:

apiVersion: argoproj.io/v1alpha1
kind: ApplicationSet
metadata:
  name: guestbook
spec:
  generators:
  - matrix:
      generators:
        - clusters: {}
        - git:
            repoURL: https://git.example.com/org/repo.git
            revision: HEAD
            files:
              - path: "defaults/*.yaml"
  template:
    # ...

嵌套的 git 文件生成器将不生成参数,从而导致矩阵生成器也不生成参数。 这将导致 ApplicationSet 不生成应用程序。如果 ApplicationSet 控制器配置了删除应用程序的功能,它将删除 ApplicationSet 以前创建的所有应用程序。

要避免此问题,请直接升级到 >=2.5.15 或 >= 2.6.6。

ApplicationSets:Sprig semver 函数中的 ^ 行为变化

Argo CD 2.5 引入了ApplicationSets 中的 Go 模板。Go 模板可以访问 Sprig 函数库。

Argo CD 2.6 将 Sprig 升级到 v3。该升级包括将 Masterminds/semver 升级到 v3。

Masterminds/semver v3 更改了语义版本约束中 ^ 前缀的行为。如果您使用的 Go 模板 ApplicationSet 包含对 Sprig 的 semver 函数 的引用,并且使用了 ^ 前缀,请阅读 Masterminds/semver 更新日志 以了解您的 ApplicationSet 的行为可能会发生哪些变化。

暂停作业的应用程序现在标记为 "暂停",而不是 "进行中"。

在 Argo CD v2.6 以前,管理暂停作业的应用程序会被标记为 "进行中"。 这让许多人感到困惑或意想不到。 从 v2.6 开始,Argo CD 会将此类应用程序标记为 "暂停"。

如果您的进程依赖于以前的行为(例如,带有 argocd 应用程序等待调用的 CI 作业),请在升级到 v2.6 之前更新这些进程。

API 服务器现在默认要求令牌包含 aud claim

Argo CD v2.6 现在要求用于验证 API 服务器的令牌中必须包含 aud claim。 这是一项安全改进,因为它可以防止令牌被引用到非 API 服务器。

如果您依赖的 OIDC Provider 不提供 aud claim,您可以在 Argo CD OIDC 配置中将 skipAudienceCheckWhenTokenHasNoAudience flag 设为 true,从而禁用此要求。(示例请参阅 OIDC 配置文档)。

移除 argocd-cm 插件支持的时间推迟到 2.7 版

对 argocd-cm 插件的支持之前计划在 2.6 版推出。 当时,不能用名称指定 sidecar 插件。 Argo CD v2.6 版引入了对用名称指定 sidecar 插件的支持。

取消对 argocd-cm 插件的支持已推迟到 2.7 版,以便为需要通过名称指定插件的用户提供过渡时间。

旧 CLI 版本的 argocd 应用程序创建 在应用程序接口版本 >=2.6.7 时失败

从 Argo CD 2.6.7 开始,如果应用程序不存在,API 会对应用程序的 GET 请求返回 PermissionDenied 而不是 NotFound

Argo CD CLI 从版本 2.5.0-rc1 开始到版本 2.5.16 和 2.6.7 之前的版本会在 argocd app create 中的 POST 请求之前执行 GET 请求。 该命令无法优雅地处理 PermissionDenied 响应,因此将无法创建/更新应用程序。

要解决问题,请将 CLI 升级到至少 2.5.16 或 2.6.7。

早于 2.5.0-rc1 的 CLI 不受影响。