manifest - 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=dev
给cf push
命令就可以了。
在 DEV 环境中,将部署 1 个 1024M 内存的实例;而在 PROD 环境中,将部署 4 个 4096M 内存的实例。
解决方案
我建议您重新考虑在清单中使用变量。您可以使用--var-file
,但如果您想避免出现这些文件,您可以只传递多个--var=<name>=<val>
参数。
或者只是拥有dev.yml
和prod.yml
文件,然后您可以在两者之间进行选择。有一点重复,但文件很小,所以应该没什么大不了的。cf push -f dev.yml
cf push -f prod.yml
希望有帮助!
推荐阅读
- apache-spark - 每当我们尝试使用 kerberos 身份验证调用 spark 代码时,我们都会收到错误消息,因为 root 用户无效?
- javascript - 使用类似于 onSelect() 的 onChange() 将选择值打印到控制台
- laravel - Laravel 7 - 电子邮件验证但没有“验证您的电子邮件地址”页面
- javascript - 如何使用 mongoose 和 node.js 将 mongodb 时间戳转换为 dd-mm-yyyy 格式?
- r - 如何在 R 中使用 grid.show.viewport() 函数?
- javascript - 使用 firebase auth 注册用户会引发错误,但仍能正确注册
- python - Pandas groupby 计数和填充无计数为 0
- mysql - 插入新元素时如何向下推 ID
- apache-kafka - Kafka docker 撰写外部连接
- android - 如何更快地从 Firebase 中检索数据