kubernetes秘密在环境变量中有尾随空格

kubernetes秘密在环境变量中有尾随空格,kubernetes,google-kubernetes-engine,docker-secrets,Kubernetes,Google Kubernetes Engine,Docker Secrets,我在运行于GKE的Kubernetes 1.9中创建了一个部署,该部署利用了放入环境变量中的秘密。我使用一个yaml文件将机密上传到GKE中,该文件的机密代码为base64 我在容器中看到的是环境变量在那里,但该值包含尾随空格。下面是如果我设置了一个值为“bar”的环境变量FOO时的情况,其中我在secrets yaml中输入的base64将是“YmFyCg==”: 对于那些从环境变量中读取希望在没有额外空格的情况下编码值的应用程序,例如,POSTGRES\u密码和POSTGRES\u用户,在P

我在运行于GKE的Kubernetes 1.9中创建了一个部署,该部署利用了放入环境变量中的秘密。我使用一个yaml文件将机密上传到GKE中,该文件的机密代码为base64

我在容器中看到的是环境变量在那里,但该值包含尾随空格。下面是如果我设置了一个值为“bar”的环境变量FOO时的情况,其中我在secrets yaml中输入的base64将是“YmFyCg==”:


对于那些从环境变量中读取希望在没有额外空格的情况下编码值的应用程序,例如,
POSTGRES\u密码
POSTGRES\u用户
,在
POSTGRES:9.6
图像中,这给应用程序带来了无尽的困难。环境中的其他变量(包括我的部署yaml中设置的不带机密的变量)不包括尾随空格;只有秘密才有问题

您的回音正在添加换行符。Add-n省略尾随的换行符

您应该更具体一些。OP的意思是,当您使用base64编码时,应该使用echo-n。示例:
echo-n“我的秘密”| base64-w0
$ echo $FOO
bar 
$ echo \"$FOO\"
"bar "
$ echo $FOO | base64
YmFyCg==
$ echo "$FOO" | base64
YmFyIAo=