gpt4 book ai didi

argocd - 如何在托管与源代码分开的 list 时创建功能分支?

转载 作者:行者123 更新时间:2023-12-05 02:49:31 27 4
gpt4 key购买 nike

关于 让我感到困惑的部分是将源代码与 list 分开的建议,例如这就是不得不说:

The use of a different Git repository to hold your kubernetes manifests (separate from your application source code), is highly recommended. See best practices for further rationale.

在一个典型的项目中,我会使用 设置测试环境,然后 on_stop action删除每个 PR 的环境。但是,如果我将 list 与源代码分开,则不清楚是什么 应该在看。

为了示例,假设我们有两个存储库:

  • foo 托管应用程序代码
  • bar 托管不同应用的 list

假设:

  1. 我在 foo 分支中创建了一个新分支 feature-001
  2. 每次我们向 feature-001 添加提交时,它都会创建一个新的 图片(foo:$COMMIT_SHA)。

我将如何创建 监视此分支的更改的受控应用程序?

我当然可以使用 CLI 创建应用程序:

argocd app create "foo-$COMMIT_SHA" --repo https://github.com/gajus/bar.git --path bar -p image=foo:$COMMIT_SHA

但是 ArgoCD 怎么知道跟踪这个 feature-001 分支的变化?,即我如何告诉 当从该分支发布新的 Docker 镜像时部署应用程序的新版本?

最佳答案

How would I create a argocd controlled app that watches this branch for changes?

我不确定您为什么不使用 CLI 选项。 CLI 可以创建一个应用程序,包括指向一个 git 修订版(can be a branch)。

例如:

argocd app create "foo-$COMMIT_NAME"
--repo https://github.com/gajus/bar.git
--path bar
--revision $BRANCH_NAME
--parameter image=foo:$COMMIT_SHA
--sync-policy automated

请注意此处设置的自动同步策略。这意味着对修订版的任何更新都会更新分支。

How do I tell argocd to deploy a new version of the app when a new Docker image is published from this branch

上面的回答解释了 ArgoCD 应用程序如何跟踪 git 更改,但是这个问题暗示了更新部署/复制集 list 中的标签的问题。这在很大程度上取决于您如何为主分支执行此操作。有些人会硬编码,其他人将 $COMMIT_SHA 从 repo foo 提交到 repo bar,其他人使用模板语言并注入(inject)变量.

基于您的关注,我假设您遵循从 repo foo 到 repo bar 的提交方法。如果是这种情况,我建议将标记 --upsert 添加到 CLI 命令中,并且每次在分支管道中运行相同的 CLI 命令。

注意:此处添加的奖励选项是为类似 --label branch=${BRANCH_NAME} 添加额外的标志。然后,这可用于定期查找/清理任何分支部署。

关于argocd - 如何在托管与源代码分开的 list 时创建功能分支?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64000953/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com