Skip to content

v1.8 至 2.0

Redis 升级至 v6.2.1

捆绑的 Redis 版本已升级至 v6.2.1。

Redis 本身应该可以在不停机的情况下进行升级,因为 Argo CD 并没有将其用作持久存储。 不过,如果您在生产中运行 Argo CD 并有多个用户,建议您在非高峰时段进行升级,以避免出现用户可见的故障。

环境变量扩展

Argo CD 支持在配置管理工具参数中使用 环境变量。 扩展逻辑已得到改进,现在可将缺失的环境变量扩展为空字符串。

Docker 镜像已迁移到以 Ubuntu 为基础被引用

官方 Docker 镜像已迁移到使用 ubuntu:20.10 而不是 debian:10-slim 作为基础镜像。 虽然这应该不会影响用户体验,但如果您使用自定义构建的镜像和/或在自定义构建的镜像中包含第三方工具,则可能会受到影响。

在部署到生产环境之前,请确保您的自定义工具在升级到 v2.0 后仍能正常工作。

容器注册表切换到 quay.io,Docker Hub 版本库日落

由于 Docker Hub 新的速率限制和保留政策,Argo 项目决定改用 quay.io 注册表作为其子项目发布的所有镜像的新家。

从 Argo CD 2.0 版本开始,安装配置清单会从 quay.io 拉取容器镜像,我们也会宣布下线现有的 Docker Hub 资源库。 对于 2.0 版本,这意味着,我们仍会向这两个注册中心推送,但 Argo CD 2.1 发布后,我们将停止向 Docker Hub 推送镜像。

请确保您的集群可以从 quay.io registry 中拉取。 如果您无法及时这样做,可以手动将安装中的容器镜像 slugs 更改为 Docker Hub,作为安装 Argo CD 2.0 的一种变通方法。 不过,这种变通方法在 2.1 中将不再可行。

Dex 工具从 argocd-util 迁移到 argocd-dex

dex 命令 rundexgendexcfg 已从 argocd-util 迁移到 argocd-dex. 这意味着您需要更新 argocd-dex-server 部署的命令,在 init 容器中安装 argocd-dex 二进制文件而不是 argocd-util 并从 argocd-dex 而不是 argocd-util 运行 dex 命令:

initContainers:
- command:
  - cp
  - -n
  - /usr/local/bin/argocd
  - /shared/argocd-dex
containers:
- command:
  - /shared/argocd-dex
  - rundex

请注意,从 v2.0 开始 argocd 二进制文件的行为发生了变化。 它将包含所有 argocd 二进制文件,如 argocd-dexargocd-serverargocd-repo-serverargocd-application-controllerargocd-utilargocd。 二进制文件将根据其名称改变行为。

为应用程序同步将重试参数类型从字符串更新为持续时间

应用程序同步命令提供了某些重试选项,允许用户对同步重试进行参数化设置。 其中两个参数,"重试-退出-持续时间 "和 "重试-退出-最大持续时间 "被声明为 "字符串 "类型,而不是 "持续时间 "类型。 这允许用户为这些 flag 提供不含时间单位(秒、分、小时......)或任何随机字符串的值,但自从我们从 "字符串 "迁移到 "持续时间 "后,用户现在必须提供单位(有效持续时间)。

EXAMPLE: 
argocd app sync <app-name> --retry-backoff-duration=10 -> invalid
argocd app sync <app-name> --retry-backoff-duration=10s -> valid

切换到 Golang 1.16

用户需要注意的是,Go 1.15 引入了在执行 TLS 连接时根据证书的 "CommonName "属性验证服务器名称的功能。

如果您的版本库服务器使用了不兼容的证书,与这些服务器的连接可能会中断。 您必须签发正确的证书才能解除这种情况。

将 CRD 从 apiextensions/v1beta1 移植到 apiextensions/v1

我们的 CRD("Application "和 "AppProject")已从废弃的 "apiextensions/v1beta1 "移至 "apiextensions/v1 "API 组。

这并不影响 CRD 本身的版本。

我们预计用户无需更改 "Application "和 "AppProject "的现有 CR,也不需要对此更改采取其他行动,本说明只是为了完整起见。

Helm v3 现在是渲染图表时的默认设置

在本次发布中,我们将 Helm v3 作为通过 Argo CD 渲染任何 Helm 图表的默认版本。 我们还禁用了 Helm 根据 Chart.yaml 中的 "apiVersion "字段自动检测版本的功能,因此无论 Chart 的 "apiVersion "字段是什么,图表都将使用 Helm v3 渲染。

这可能会导致以前使用 Helm v2 渲染的应用程序出现轻微的不同步情况(例如 Helm 添加的某个 Annotations 发生变化)。 您可以通过同步应用程序来解决这个问题。

如果您现有的图表需要使用 Helm v2 渲染,您需要明确配置应用程序使用 Helm v2 渲染图表,如此处所述。

另外,请注意 Helm v2 现在已被 Argo CD 视为弃用,因为它将不再从上游 Helm 项目接收任何更新。 我们仍将在接下来的两个发布版本中提供 Helm v2 二进制版本,但在宽限期过后,它将被移除。

我们鼓励用户升级任何仍需要 Helm v2 的图表,以便与 Helm v3 兼容。

kustomize 版本更新至 v3.9.4

Argo CD 现在默认使用 kustomize v3.9.4。 请确保您的配置清单能在此 Kustomize 版本下正确呈现。

如果您需要向后兼容以前的 kustomize 版本,请考虑设置一个自定义的 kustomize 版本,并将您的应用程序配置为使用该版本渲染。