helm-wrapper
helm-wrapper copied to clipboard
values 传yaml文本 invalid character 'x' after object key:value pair"
版本最新的
传值的 values 如下
获取方式
values="`curl -s -X GET $url --header 'Content-Type: application/json' | jq ".data"`"
env:\n ASPNETCORE_ENVIRONMENT: Staging\n PayOrderAppSetting__RunEnvironment: Test\nglobal:\n cattle:\n clusterId: c-9lmh5\n clusterName: k8s-online\n rkePathPrefix: \"\"\n rkeWindowsPathPrefix: \"\"\n systemDefaultRegistry: \"\"\n url: https://rancher.xxxx.com\n systemDefaultRegistry: \"\"\nimage:\n pullPolicy: Always\n tag: final-0.0.2\ningress:\n hosts:\n - host: www.xxx.cn\n paths:\n - path: /gateway/xxx\n pathType: ImplementationSpecific\nreplicaCount: 1\n
更新
res=`curl -s -X PUT $url --header 'Content-Type: application/json' -d "{ \"set\": [\"image.tag=$version\"], \"repo\": \"$Chart_Repo\", \"values\": \"$values\" }"`
echo "response : $res"
code=`echo $res | jq ".code"`
exit $code
在更新时会出现
{"code":1,"error":"invalid character 'e' after object key:value pair"}
在 Postman 中执行 正常
查看源码了解到 是 Gin 在 c.ShouldBindJSON抛出异常
最终原因确定是 values值 在 curl 中转义造成的
当前需要满足以下条件
- values 是变量
- 使用curl做请求
是否考虑使用 values 做base64编码在进行发送呢
谢谢!!!
@lic0914 base64 确实是个好办法