kubernetes - 应用程序之间的 ArgoCD 同步波

标签 kubernetes microservices argocd gitops

我们有一个 ArgoCD 项目。在这个项目中,我们有多个应用程序(我们称它们为 A、B 和 C),它们通过 Kafka 集群相互传递消息。为此,需要创建主题。
App A 负责管理 Kafka 集群(除其他外)。我们在应用程序 A 中有一个 PreSync Hook ,用于在更新应用程序 B 和 C 所依赖的其他资源之前创建和配置主题。
这意味着我们需要应用 A 在其他应用之前同步以确保顺利推出。为了尝试解决这个问题,我们将应用程序 A 添加到 SyncWave -1 , 其他人默认 0

kind: Application
metadata:
  name: "A"
  annotations:
    argocd.argoproj.io/sync-wave: "-1"
我们最初的假设(也许是愚蠢的)是同步协调应用 项目内 ,不过好像只适用于在应用程序内 .
所以发生的情况是应用 A 中的资源等待 PreSync Hook 按预期供应主题,但应用 B 和 C 不等待应用 A 同步。
有没有办法控制项目内应用程序之间同步的顺序/依赖关系?
我已经看到提到“应用程序的应用程序”模式,其中您有一个应用程序可以部署所有其他应用程序。这样做是否允许我们利用 SyncWave 来确保应用 A 在尝试同步应用 B 和 C 之前完全解析?如果没有,还有其他方法吗?

最佳答案

我们有一个应用程序的应用程序(引导应用程序),这就是我们在应用程序之间编排同步波的方式。我没有运气但是也向每个应用程序的 list 中添加了同步波。从文档看来, list 是按种类应用的(例如,首先是 namespace ),然后按名称的字母顺序(不区分大小写)。

关于kubernetes - 应用程序之间的 ArgoCD 同步波,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63806794/

相关文章:

kubernetes - 致命: unable to access 'https://gitlab-ci-token:[MASKED]@gitlab.mydomain.com/xxx.git/' : SSL certificate problem: unable to get issuer certificate

authentication - 吉普斯特 : Proper architecture to authenticate using an existing database

kubernetes - 如何将Argo工作流程与Argo CD结合?

kubernetes - Argo CD安装问题

kubernetes - 在 argocd 中的不同部署中使用相同的规范

docker - 如何使用 secret 中的 ssh key 将私有(private) git 存储库克隆到 kubernetes pod 中?

nginx - Nginx入口 Controller 如何在Kubernetes上工作?

kubernetes - 将多个用户连接到同一个 kubernetes pod

authentication - 微服务——如何解决安全和用户认证?

java - Spring @RequestMapping 重定向到带有附加信息的相同路径