我正在尝试将服务帐户保密 - 一年前我这样做了并且它有效但现在 - 无论我如何处理它,应用程序都看不到它并说有 输入字节数组的结尾字节不正确
- 当创建普通 secret 时,我知道你必须换行,所以
echo -n "secret" | base64
然后将该值保密并应用,但是我的多行文件
cat secret.json
{
"type": "service_account",
"project_id": "smth-smth",
"private_key_id": "blabla"
...
}
无论我如何处理 - 无论是像第一个示例中那样手动放置,还是用
cat secret.json | base64
# or
base64 < secret.json
secret 已创建但应用程序抛出
Constructor threw exception; nested exception is java.lang.IllegalArgumentException: Input byte array has incorrect ending byte at 3104
当我将新密码与服务帐户的最后一个密码进行比较时,不同之处在于输出的样子
工作的是这样的 - 当我尝试解密 base64 时
echo -n "<long string of base64 encrypred sa> | base64 -D
{ "type": "service_account", "project_id": "blabla"... }
所以它在一行中,我尝试解密的新 SA 以文件中的格式输出 - 所以 json 的每个部分在新行中 - 我尝试手动将它们全部放在一行中但没有成功
有人知道吗?如何正确地将多行文件放入 secret (base64)中?
最佳答案
从文件创建 secret 的最简单方法是使用kubectl create secret generic
。
将文件 secret.json
放在文件夹 config
中,然后运行:
kubectl create secret generic my-secret --from-file=config
您将获得一个 secret my-secret
,其中包含一个 key secret.json
包含您的文件(然后您可以将其挂载到 pod 卷)。
关于kubernetes - Kubectl 创建多行 secret ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63246293/