首先,这是在 Kubernetes 内部运行的单一存储库应用程序的上下文中。
在 GitOps 中,我的理解是一切都是声明性的,并且写在 YAML 等配置文件中。这允许在 git 中完整的更改历史。分支代表环境。例如:
- BRANCH develop 可以是已部署的 QA 或登台环境
- BRANCH 功能/foo-bar 可能是用于评估的已部署功能分支
- TAG v1.2.0 可能是在生产中运行的最新版本这对我来说很有意义,任何和所有分支都可以部署为应用程序的运行版本。
问题我记得读过……某处……配置应该存在于主存储库之外,在另一个“配置存储库”中。从记忆的想法是一个应用程序不应该知道一个特定的配置......只知道如何使用一个配置?
这是真的?我应该有一个应用程序仓库和一个应用程序配置仓库吗?例如
- 应用程序回购:
foo-organisation/bar-application
- 配置回购:
foo-organisation/bar-application-config
不同环境的 config 分支模型位于该存储库中的哪个位置?为什么以及有什么优势?
否则它应该只存在于应用程序存储库的目录中吗?