如何在ArgoCD App of Apps模式中强制应用同步顺序?
ArgoCD App of Apps模式下管理应用同步顺序的简便方法
针对你需要强制同步顺序的场景(先同步strimzi/minio-operator,再同步对应CR的应用),有两种简便的原生方案可以实现:
1. 应用依赖配置(App Dependencies)
直接在依赖方的应用CR中声明前置依赖,ArgoCD会自动等待依赖应用同步完成后再同步当前应用。
比如在包含Kafka CR的应用模板中添加依赖配置:
apiVersion: argoproj.io/v1alpha1 kind: Application metadata: name: kafka-cr-app spec: # 其他配置... syncPolicy: automated: {} dependencies: - name: strimzi namespace: argocd kind: Application
同理,在包含Minio CR的应用模板中添加:
dependencies: - name: minio-operator namespace: argocd kind: Application
2. 同步波(Sync Waves)
如果所有应用都通过同一个App of Apps清单部署,可以给不同应用设置syncWave注解,数值越小的应用越先被同步。
比如给strimzi和minio-operator应用添加注解:
metadata: name: strimzi annotations: argocd.argoproj.io/sync-wave: "0" --- metadata: name: minio-operator annotations: argocd.argoproj.io/sync-wave: "0"
给对应CR的应用设置更高的数值:
metadata: name: kafka-cr-app annotations: argocd.argoproj.io/sync-wave: "1" --- metadata: name: minio-cr-app annotations: argocd.argoproj.io/sync-wave: "1"
注意事项
- 应用依赖适合跨层级或需要严格依赖校验的场景,ArgoCD会检查依赖应用的健康状态;
- 同步波适合同一App of Apps下的同级应用排序,仅控制同步触发顺序,不校验依赖应用的健康状态;
- 确保你的ArgoCD版本支持上述功能(v2.0+已全面支持)。
内容的提问来源于stack exchange,提问作者Fabrice Jammes
相关产品推荐
相关产品推荐

