有没有办法在云铸造 cf push 命令中拥有一个带有多个"profiles"的 manifest.yml?



我们在内存、实例等方面,对生产和非生产环境有不同的设置(部署参数(。

我们正在 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 命令就可以了。

在 DEV 环境中,将部署 1 个内存为

1024M 的实例;而在 PROD 环境中,将部署 4 个内存为 4096M 的实例。

我建议您重新考虑在清单中使用变量。您可以使用 --var-file ,但如果您想避免存在这些文件,您可以只传入多个 --var=<name>=<val> 参数。

或者只有dev.ymlprod.yml文件,然后您可以cf push -f dev.ymlcf push -f prod.yml并在两者之间进行选择。有一点重复,但文件很小,所以应该没什么大不了的。

希望对您有所帮助!

我不

认为,尝试使用 CF CLI 命令实现所有事情是正确的方法

我只需编写一个 bash 脚本并以我想要的任何方式按顺序执行 cf-push 即可实现这一点。

最新更新