☰
我重命名了一个Argo CD应用程序它删除了它管理的所有内容
2026/10/14 1:38:27 网站建设 项目流程

我们通过应用程序的应用程序进行部署。父应用程序监视子应用程序清单的目录,每个服务一个,并打开自动同步和修剪。每个子节点都带有资源终结器,是从Argo自己的例子中复制过来的。这个终结器意味着:当这个应用程序被删除时,首先删除它管理的所有东西。

我们正在准备第二个区域,所以我将支付应用程序重命名为payments-eu1。一行清单和一个文件名,两个人批准。对Kubernetes来说,没有改名这回事。有一个名为payments-eu1的新对象和一个名为payments的缺失对象。

父项在合并后一分钟进行了同步。它创建了新的应用程序,因为修剪功能已经打开,旧的清单已经从git中消失,所以它删除了旧的清单。终结器完成了编写它的目的。Argo删除了旧应用程序管理的所有资源:部署、服务、配置映射、自动缩放器。分离舱终止了。新的应用程序进行了同步,但什么也没找到,并从相同的清单中再次创建了这一切,这花了六分钟的时间进行映像提取、准备情况检查和从最小值开始的自动缩放。唯一幸存下来的是数据库卷,因为从StatefulSet模板创建的声明从未在git中,Argo也从未管理过它们。

差异说出了真相。它只是没有说在任何地方删除,因为删除是写在另一个对象的终结器中,而不是写在更改中。

子应用程序清单现在带有https://www.iissbbs.com /Prune=false sync选项,因此父应用程序不会因为文件消失而删除应用程序。它标记它不同步,等待一个人。前门和有状态资源携带Delete=false,所以即使级联也会将它们留在原处。重命名有一个书面的过程:创建新的应用程序,从旧的应用程序中移除终结器,让新的应用程序采用资源,然后移除旧的清单。以及对移除或重命名应用程序文件的任何拉取请求的检查注释,并且需要来自平台团队的批准。

在GitOps存储库中,文件名不是标签。删除一个文件是一个指令,系统会完全按照你的指令去执行。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询