我们在内存、实例等方面,对生产和非生产环境有不同的设置(部署参数(。
我们正在 Pivotal Cloud Foundry 环境中使用 Jenkins 管道部署我们的应用程序,最终使用"CF push"命令调用脚本。
我们正在使用两个不同的manifest.yml
文件进行检查(但如果参数相同,则不喜欢重复性(。我们还在研究使用带有两个不同 vars 文件的 --var-file
。我们担心向后兼容性,以及添加如此多文件的努力(我们有很多 MS(。
我们想要一个如下所示的manifest.yml
:
applications:
- name: myAppName
services:
- discovery
- config-server
profile:
dev:
memory: 1024M
instances: 1
prod:
memory: 4096M
instances: 4
假设我们需要将参数profile=dev
传递给 cf push
命令就可以了。
1024M 的实例;而在 PROD 环境中,将部署 4 个内存为 4096M 的实例。
我建议您重新考虑在清单中使用变量。您可以使用 --var-file
,但如果您想避免存在这些文件,您可以只传入多个 --var=<name>=<val>
参数。
或者只有dev.yml
和prod.yml
文件,然后您可以cf push -f dev.yml
或cf push -f prod.yml
并在两者之间进行选择。有一点重复,但文件很小,所以应该没什么大不了的。
希望对您有所帮助!
认为,尝试使用 CF CLI 命令实现所有事情是正确的方法
我只需编写一个 bash 脚本并以我想要的任何方式按顺序执行 cf-push 即可实现这一点。