微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

应用之间的ArgoCD同步波

如何解决应用之间的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(例如,首先是名称空间)应用的,然后按名称的字母顺序(不区分大小写)应用。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?