对于我来说,尚不清楚在多个环境下管理应用程序的最佳实践是什么,这些环境共享模板文件,但每个环境具有不同的变量。例如,我们部署开发,登台和生产环境。他们使用相同的头盔模板,但每种环境下我都有不同的变量。
当前文件结构:
helm/
├── templates/
│ ├── _helpers.tpl
│ ├── deploy.yaml
│ └── ingress.yaml
│ └── service.yaml
│ └── managed-certs.yaml
│ └── NOTES.txt
├── Chart.yaml
├── values-production.yaml
├── values-staging.yaml
├── values-develop.yaml
现在,对于每个环境,我都有两个不同的值文件,并将以下内容传递给了掌舵人
helm install . --values=values-production.yaml
但是,我们无法使用上述内容正确管理版本控制。
我找不到任何可靠的文档来说明管理一个应用程序的多个环境的最佳实践。我遇到helmfile
似乎可以解决这个问题,但是他们的文档尚不清楚。管理Kubernetes的生态系统令人困惑,任何帮助都值得赞赏。
答案 0 :(得分:1)
Weave Flux是处理图像和图表版本控制的好方法。它使用基于gitops的方法,通过对代码存储库(用于图表版本控制)或图像存储库(用于应用程序版本控制)的更新来管理所有内容。
编织通量:https://github.com/weaveworks/flux
在Weaveworks网站上进行的陷阱讨论:https://www.weave.works/technologies/gitops/
使用头盔和多种环境的示例实现:https://github.com/stefanprodan/gitops-helm/blob/master/README.md