我想问,在下面的场景中,为我的应用程序传递Config文件的首选方法或最佳方式是什么。
我的应用程序是在NodeJS上开发的,我有一个名为"config.json“的JSON文件,它包含应用程序的所有配置参数,即AD、SMTP、DB等等。
{
"slackIncomingHook": [
{"HookUrl": "<<HookUrl>>"}
],
"wikiPage": {
"url": "<<url>>",
"timeFrame" : "week"
},
"database": {
"dbName": "DBNAME",
"dbHostName": "mongodb://username:password@<<IP Address>>:27017/"
}
}现在,我想使用Kubernetes来部署这个项目,我希望在运行时将这些信息传递给它,或者在使用configMaps构建集群时以某种方式合并。
此项目的DockerFile包括复制两个独立/依赖的项目、设置ENV、NPM安装和公开端口。
PS -码头形象被推到我的私人仓库。
专家建议将不胜感激。
发布于 2018-10-13 02:41:12
你可以创建一个ConfigMap,也可以创建一个秘密。
apiVersion: v1
kind: ConfigMap
metadata:
name: test-config
namespace: default
data:
AppConfig.json: |-
{
"slackIncomingHook": [
{"HookUrl": "<<HookUrl>>"}
],
"wikiPage": {
"url": "<<url>>",
"timeFrame" : "week"
},
"database": {
"dbName": "DBNAME",
"dbHostName": "mongodb://username:password@<<IP Address>>:27017/"
}
}您也可以创建秘密,因为它们是base64编码的
apiVersion: v1
kind: Secret
metadata:
name: test-secret
namespace: default
type: Opaque
data:
AppConfig.json: |-
BASE_64_ENCODED_JSON在部署中,将机密/配置添加到卷节点,并将卷挂载和mountPath设置为config.json路径。
volumeMounts:
- name: test-secretm
mountPath: PATH_OF_YOUR_CONFIG_JSON
volumes:
- name: test-secretm
secret:
secretName: test-secrethttps://stackoverflow.com/questions/52786405
复制相似问题