首页 新闻 会员 周边 捐助

K8s 通过文件创建 ConfigMap 的问题

0
悬赏园豆:100 [已解决问题] 解决于 2020-02-11 20:06

通过下面的命令从文件创建 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 ,请问如何解决:

k8s
dudu的主页 dudu | 高人七级 | 园豆:30948
提问于:2020-02-11 19:36
< >
分享
最佳答案
0

在创建之前先扔进 VSCode 格式化一下,去掉多余的空行试试看。

收获园豆:100
沈星繁 | 小虾三级 |园豆:1096 | 2020-02-11 19:53

在 vim 中通过 :g/^$/d 删除所有的空行后问题依旧。

dudu | 园豆:30948 (高人七级) | 2020-02-11 20:02

是缩进引起的,用 vim 中通过 gg=G 修正整个 appsettings.Production.json 文件的缩进后就正常了。

dudu | 园豆:30948 (高人七级) | 2020-02-11 20:06

@dudu: 今天再次遇到这个问题,用上面的方法没有解决,用 vs code 格式化 json 后解决了

dudu | 园豆:30948 (高人七级) | 2021-07-24 15:19

今天在 github 上发现一个更好的解决方法

kubectl get -o yaml cm [YOUR CONFIGMAP NAME] | sed -E 's/[[:space:]]+\\n/\\n/g' | kubectl apply -f -
dudu | 园豆:30948 (高人七级) | 2022-05-26 10:13
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册