And*_*gan 7 git github kubernetes monorepo gitops
首先,这是在 Kubernetes 内运行的单一存储库应用程序的上下文中。
在 GitOps 中,我的理解是一切都是声明性的,并写入配置文件(例如 YAML)中。这允许 git 内完整的更改历史记录。分支代表环境。例如:
问题我记得读过...某处...配置应该位于主存储库之外,在另一个“配置存储库”内。从记忆中,这个想法是应用程序不应该知道特定的配置......只知道如何使用配置?
这是真的?我应该有一个应用程序存储库和一个应用程序配置存储库吗?例如
foo-organisation/bar-application
foo-organisation/bar-application-config
不同环境的配置分支模型位于该存储库中的哪个位置?为什么以及优点是什么?
否则它应该只存在于应用程序存储库的目录中吗?
Mat*_*att 13
除了环境的所有内容都应该在 git 存储库中表示之外,没有真正的硬性规则(例如,停止在 Jenkins 环境变量 Steve 中存储配置!)。配置所在的位置更多的是实现细节。
如果您的应用程序作为单一存储库进行管理,那么为什么不使用相同的设置进行部署呢?通常最好适应现有的发布流程,而不是创建新的东西。
一个问题是应用程序的单个版本通常需要支持多个部署,并且部署配置在应用程序构建和发布后通常会发生变化。因此需要有一个“应用程序”与多个“配置”的关系。无论是通过文件、目录、分支还是存储库来实现。只要它们经过版本控制/发布,它们都可以工作。
另一个发布考虑因素是应用程序构建。对于小型部署更新,您不想构建和发布完整的新应用程序映像。最好只应用配置并重用现有的工件。这通常是单独部署/配置存储库的驱动程序,因此问题完全分开。
安全可以发挥一定作用。您可能在部署配置中拥有所有开发人员都不需要访问的系统信息,或者您甚至不希望有机会将其放入容器映像中。这也推动了单独存储库的使用。
基础设施的规模是另一个因素。如果我管理多个应用程序,通用部署配置将不会存储在单个应用程序存储库中。
归档时间: |
|
查看次数: |
3641 次 |
最近记录: |