我的应用程序中有一个配置json文件。这是单个json文件,其中包含我的nodejs应用程序所需的所有配置。我与许多数据库有很多连接。我什至有分叉的阶段和生产。我不想为每个变量创建秘密。我想将我的完整JSON作为秘密转储。这样我就可以直接从那里拿起它并在我的应用程序中使用。 无论如何我能实现吗?我认为这是一个普遍的问题。
答案 0 :(得分:0)
简单的解决方案是将整个配置文件放在秘密stringData
下。像这样的东西:
apiVersion: v1
kind: Secret
metadata:
name: mysecret
type: Opaque
stringData:
config.json: |
<your config goes here>
现在,您可以将秘密mount放到pod上,您就可以读取此配置文件。
虽然这项工作有效,但可能很难与GitOps解决方案配合使用,该解决方案通常需要您对整个秘密内容进行加密。使用Kamus,您可以使用以下格式创建具有加密值的模板化配置文件:
apiVersion: v1
kind: ConfigMap
metadata:
name: encrypted-secrets-cm
data:
key: 4AD7lM6lc4dGvE3oF+5w8g==:WrcckiNNOAlMhuWHaM0kTw== //encrypted
template.ejs: |
<%- secrets["key"] %>
hello
然后使用init container创建具有解密值的配置文件。带有加密项的值可以安全地提交给git。
答案 1 :(得分:0)
您可以使用以下命令:
kubectl -n <namespace> create cm secret --from-file=APPLICATION_CONFIG=./<your-config>
将其安装到特定路径,您可以从这些路径读取配置。