首页 > 解决方案 > Cloud Foundry cf push 命令中是否有办法让 manifest.yml 包含多个“配置文件”?

问题描述

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

我们正在使用 Jenkins 管道在 Pivotal Cloud Foundry 环境中部署我们的应用程序,最终使用“CF push”命令调用脚本。

我们正在使用两个不同manifest.yml的文件进行检查(但如果参数相同,则不喜欢重复性)。我们也在研究使用--var-file两个不同的 vars 文件。我们担心向后兼容性,以及添加这么多文件的努力(我们有很多 MS)。

我们想要一个manifest.yml看起来像这样的:

applications:
- name: myAppName
  services:
  - discovery
  - config-server
profile:
  dev:
    memory: 1024M
    instances: 1
  prod:
    memory: 4096M
    instances: 4

假设我们需要将参数传递profile=devcf push命令就可以了。

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

标签: manifestcloud-foundry

解决方案


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

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

希望有帮助!


推荐阅读