应用之间的ArgoCD同步波

问题描述

我们有一个ArgoCD项目。在这个项目中,我们有多个应用程序(分别称为A,B和C),它们通过Kafka集群相互传递消息。为此,需要创建主题。

App A负责管理Kafka集群(除其他事项外)。在应用程序A中,我们有一个PreSync挂钩,用于在更新其他资源(应用程序B和C依赖于此)之前创建和配置主题的工作。

这意味着我们需要在其他应用之前同步应用A,以确保顺利推出。为了尝试解决此问题,我们将应用程序A添加到SyncWave -1中,其他应用程序添加到默认0

kind: Application
metadata:
  name: "A"
  annotations:
    argocd.argoproj.io/sync-wave: "-1"

我们最初的假设(也许是愚蠢的)是同步协调在项目中应用了 ,但是,似乎只在应用程序中应用了

因此,发生的情况是,应用程序A中的资源等待PreSync钩子按预期提供主题,但是应用程序B和C不等待应用程序A同步。

是否可以控制项目中应用之间的同步顺序/依赖性?

我已经提到过“应用程序间”模式,其中有一个应用程序可以部署所有其他应用程序。这样做是否可以让我们利用SyncWave来确保应用A在尝试同步应用B和C之前能够完全解析?如果没有,还有其他方法吗?

解决方法

我们有一个应用程序(引导应用程序),这就是我们协调应用程序之间的同步波的方式。我没有运气,但是还向每个应用程序的清单中添加了同步波。从文档看来,清单是按Kind(例如,首先是名称空间)应用的,然后按名称的字母顺序(不区分大小写)应用。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...