我当然检查了helm.sh,但乍一看整个设置看起来有点复杂(helm-client& tiller-server).在我看来,在大多数情况下,只要拥有一个helm-client就可以逃脱.
这就是我目前所做的
假设我有一个由3个服务组成的项目即. postgres,express,nginx.
我创建了一个名为product-release的目录,如下所示:
product-release/
.git/
k8s/
postgres/
Deployment.yaml
Service.yaml
Secret.mustache.yaml # Needs to be rendered by the dev before use
express/
Deployment.yaml
Service.yaml
nginx/
Deployment.yaml
Service.yaml
updates/
0.1__0.2/
Job.yaml # postgres schema migration
update.sh # k8s API server scritps to patch/replace existing k8s objects, and runs the state change job
通常的git东西现在可以申请.每次我进行更改时,我都会对spec文件进行更改,测试它们,编写更新脚本以帮助从最新版本移动到当前版本,然后提交并标记它.
问题:
>到目前为止,这对我有用,但这是“正确的方法”吗?
>为什么helm有舵柄服务器?在客户端进行模板化不是更简单吗?当然,如果你想将部署的活动与应用程序的知识(如秘密)分开,那么模板必须在服务器上发生,但为什么呢?
最佳答案 似乎
https://redspread.com/(开源)解决了这个特殊问题,但在生产准备就绪之前需要更多的开发 – 至少从我的团队快速浏览一下.
我现在坚持将yaml文件与已部署的应用程序一起保存在git中.