首页 > 大数据 > 数据分析 > Argo CD 发布 v2.11 候选版本
我们非常高兴地宣布,Argo CD v2.11 候选版本已经面世!此次更新包含了 32 个新功能、40 个错误修复和 49 个文档更新。
像往常一样,请大家测试这个发布候选版本,并向我们反馈你发现的任何错误或问题。这是一个非常好的机会,让你发表意见并帮助我们改进 Argo CD。

Photo by Lora Seis on Unsplash
在历史界面查看同步操作发起人
Argo CD 提供了一个专门的界面,用于展示应用程序同步操作的历史记录,并提供了一个可选的“回滚”功能,用于将集群资源重定向到先前的 Git 哈希值。
这个界面现在增加了一个“发起人”属性,用于显示发起同步操作的人员:

这个新功能对于那些没有启用自动同步选项的团队来说非常有用,他们想要知道是哪个人发起了部署(这在生产环境中非常常见)。
该属性的值来自应用程序资源,我们为其添加了一个新的“initiatedBy”属性,可以接受任何字符串值。
感谢 Robin Lieb(梅赛德斯奔驰)实现了这个功能。
通过 generate-path 注释改进了对单一仓库的支持
可以说,这是此版本中最重要的功能之一,对于那些使用单一仓库的 Argo CD 安装的组织来说,他们将对如何提高性能和用户体验非常感兴趣。
单一仓库模式指的是一个单独的 Git 仓库包含了所有集群的 Argo CD 应用程序。虽然这种模式使得维护和集中管理变得简单,但对于大型的 Argo CD 安装来说也带来了一些挑战。
Argo CD 已经采取了几种机制来避免这种模式下的性能问题。其中一个基本功能是 manifest-generate-paths 注释[1],可以在应用程序上添加,为 Argo CD 提供一些提示,指示该应用程序依赖于哪些清单文件。
在之前的 Argo CD 版本中,这些注释只在 Git Webhook 中生效。当检测到 Git Webhook 时,Argo CD 可以检查 Webhook 中所提到的文件是否属于注释中指定的文件集,并相应地进行操作。
而在 Argo CD v2.11 中,这些注释现在也会在同步操作中生效,而不仅仅是在 Webhook 事件期间。
现在,当 Argo CD 需要生成应用程序的清单时,它会将最新提交与上次缓存的修订进行比较,根据 manifest-generate-paths 注释的内容来进行匹配。如果没有匹配项,Argo CD 将不会执行同步操作。
这是一个改变游戏规则的功能,因为它影响了 Argo CD 处理大型单一仓库的方式。性能的改进应该是显著的,因为 Argo CD 控制器将执行更少的同步操作,特别是对于不受最新提交中任何文件影响的应用程序。
另一方面,用户体验也得到了改善,现在用户可以在 Argo CD 的历史界面中,只看到与所讨论的应用程序相关的提交列表。
我们希望你能广泛测试这个功能,并告诉我们性能的好处和改进,以及你遇到的任何问题。
感谢 Alexy Mantha(GoTo)实现了这个功能。
多源应用程序的优势
创建 Argo CD 应用程序时,使用多个源[2]是长期以来要求最多的功能之一。这个功能允许你将来自不同位置(例如公共 Helm chart 和本地值文件)的信息组合成一个单一的 Argo CD 应用程序。
尽管 Argo CD 2.6 版本已初步支持多个源的定义,但 CLI 和 UI 中仍然假设一个应用程序只有一个源的情况存在。
在 Argo CD 2.11 版本中,多个应用程序源在更多方面得到了支持,包括 Argo CD CLI 的应用程序子命令,如添加源、删除源、创建、编辑、设置、取消设置、差异、清单和历史记录。
这意味着你现在可以使用 Argo CD CLI(除了 CRD 之外)来管理多个源。
特别感谢 Mangaal Angom Meetei 和 Ishita Sequeira(来自红帽)为实现这些功能所做的努力。
允许根据应用程序信息对集群进行分片
如果你采用了 Argo CD 的"中枢-辐射"架构,你可以使用分片来将不同的 Argo CD 应用程序控制器分配到特定的集群中,以便在不同的分片之间分散负载。
在过去,分片算法主要基于集群信息(对它们的 ID 进行哈希)。虽然这种方法在大多数情况下都有效,但在某些情况下,你可能希望更加灵活地配置分片的工作方式。
在新版本的 Argo CD 中,现在支持根据它们所控制的应用程序数量对集群进行分片。这只是在不久的将来,Argo CD 将实现几种不同的分片算法,以实现更灵活的配置。
特别感谢 Andrew Lee(来自 AWS)为实现这个功能所做的努力。
其他值得注意的变化
以下是此版本中的其他新变化:
将在任意命名空间中运行应用程序的功能从测试版提升为稳定版
允许用户在任意命名空间中运行与 Argo 应用程序相关的命令(由红帽的 Mangaal Angom Meetei 完成)
添加自动为 Kubernetes 集群信息加标记的功能(由 Akuity 的 Blake Pettersson 完成)
在同步阶段按照相反顺序修剪资源(由红帽的 Siddhesh Ghadi 完成)
在添加 EKS 集群时,为 argocd-server 指定一个 AWS 配置文件的新选项(由 Circle Fin 的 Isaac Gaskin 完成)
为 argocd CLI 添加-app-namespace 标志(由红帽的 Mangaal Angom Meetei 完成)
添加 maxPodLogsToRender 设置(由 Lukas 完成)
添加用于从 AppProject 添加/删除 sourceNamespaces 的 cli 命令(由红帽的 Raghavi Shirur 完成)
允许将 Webhook 设置与外部密钥引用(由 Ledger 的 Arthur Outhenin Chalandre 完成)
在使用 argo app wait 命令时,等待资源被删除(由 Ericsson 的 Michael Morris 完成)
如何获取新版本?
有关详细信息和安装说明,请查看发布说明[3]和升级说明[4]。请尝试使用候选版本并分享你的反馈。非常感谢 Argo 社区的贡献者和用户对发布的贡献、反馈和测试的帮助!
来自 “ CNCF ”, 原文作者:Kostis Kapelonis ;原文链接:https://mp.weixin.qq.com/s/1apAkX0HrjKGZY42N42UOA,如有侵权,请联系管理员删除。