我正在将Grafana项目用于我的仪表板。我必须做2个Grafana部署,并且要稍作更改,例如标题,图像等。由于这个原因,以前我有2个存储库。现在,我创建了2个配置文件,它们是json并包含对它的更改。因此,现在我正在阅读此json,以获取替换标题,图像和内容的正确值。这是由我在Grafana中编写的自定义服务完成的。
我的2个配置文件名称如下;
grafana.productA.config.json
grafana.productB.config.json
我正在Gitlab中使用CI / CD进行部署。我要做的是选择正确的配置文件并将其重命名为grafana.prod.config.json并将此文件与Grafana构建捆绑在一起。谁能给我一个关于如何实现这一目标的想法?
许多PaaS更喜欢通过环境变量进行配置,因为它很容易直接,并且所有语言都开箱即用地支持它们。在Go中,您可以简单地调用os.Getenv()
来获取环境变量的值。
os.Getenv()
或DEV
之类的环境以及一些参数通常是通过环境变量提供给应用程序的,因此通常不需要配置文件。如果存在广泛的配置,则其本身(如果不是太大)也可以位于环境变量中,例如以base64编码的形式。
如果无法将配置文件放入环境变量中,则将其名称放入一个环境变量中,例如PROD
用于开发/ CI,并在生产服务器中设置CONFIG_FILE=grafana.productA.config.json
。因此,您的应用可以加载适当的配置文件。
如果配置包含敏感信息(例如密码或私钥),则将它们“外包”到环境变量中,这些变量在您的每个环境中(例如dev,CI,prod)当然可能会有所不同。