通过下面的命令从文件创建 ConfigMap
kubectl create configmap blog-api-appsettings \
--from-file=appsettings.Production.json=/path/appsettings.Production.json
有时创建的 ConfigMap 内容很奇怪,整个文件的内容被放到一个字符串中,换行变成了 n
apiVersion: v1
data:
appsettings.Production.json: "{\n \"ConnectionStrings\": {\n ..."
正常应该是这样的
apiVersion: v1
data:
appsettings.Production.json: |
{
"ConnectionStrings": {
}
}
Stackoverflow 上也有人遇到了同样的问题 kubernetes configmap prints \n instead of a newline ,请问如何解决:
在创建之前先扔进 VSCode 格式化一下,去掉多余的空行试试看。
在 vim 中通过 :g/^$/d
删除所有的空行后问题依旧。
是缩进引起的,用 vim 中通过 gg=G
修正整个 appsettings.Production.json 文件的缩进后就正常了。
@dudu: 今天再次遇到这个问题,用上面的方法没有解决,用 vs code 格式化 json 后解决了
今天在 github 上发现一个更好的解决方法:
kubectl get -o yaml cm [YOUR CONFIGMAP NAME] | sed -E 's/[[:space:]]+\\n/\\n/g' | kubectl apply -f -