让我对gitops感到困惑的部分是建议将源代码与清单分开,例如,这就是argocd不得不说的:
强烈建议使用不同的 Git 存储库来保存您的 kubernetes 清单(与您的应用程序源代码分开)。有关更多理由,请参阅最佳实践。
在一个典型的项目中,我会使用gitlab来设置一个测试环境,然后为每个 PR 删除环境on_stop
。但是,如果我将清单与源代码分开,则不清楚argocd应该监视什么。
为了举例,假设我们有两个存储库:
foo
托管应用程序代码bar
托管不同应用程序的清单
认为:
- 我在分支
feature-001
中创建了一个新foo
分支。 - 每次我们向
feature-001
它添加提交时,都会创建一个新的docker镜像 (foo:$COMMIT_SHA
)。
我将如何创建一个argocd控制的应用程序来监视这个分支的变化?
我当然可以使用 CLI 创建应用程序:
argocd app create "foo-$COMMIT_SHA" --repo https://github.com/gajus/bar.git --path bar -p image=foo:$COMMIT_SHA
但是 ArgoCD 怎么知道跟踪这个分支的变化?,即当一个新的 Docker 镜像从这个分支发布时,feature-001
我如何告诉argocd部署一个新版本的应用程序?