Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将JSON字符串作为值嵌入Kubernetes秘密中_Json_Kubernetes_Kubernetes Secrets - Fatal编程技术网

如何将JSON字符串作为值嵌入Kubernetes秘密中

如何将JSON字符串作为值嵌入Kubernetes秘密中,json,kubernetes,kubernetes-secrets,Json,Kubernetes,Kubernetes Secrets,部分业务流程使用envsubt使用所需的值更新YAML模板文件 envsubst < "${SECRET_TEMPLATE}" | kubectl apply -f - 这将导致YAML如下所示(为简洁起见进行了修剪): 这显然在Kube的一些早期版本中有效,我想说是1.8。无论如何,我们正在运行1.15,现在kubectl将其解释为一种映射类型,并抱怨: error: error validating "STDIN": error validating data: Validation

部分业务流程使用envsubt使用所需的值更新YAML模板文件

envsubst < "${SECRET_TEMPLATE}" | kubectl apply -f -
这将导致YAML如下所示(为简洁起见进行了修剪):

这显然在Kube的一些早期版本中有效,我想说是1.8。无论如何,我们正在运行1.15,现在kubectl将其解释为一种映射类型,并抱怨:

error: error validating "STDIN": error validating data: ValidationError(Secret.data.config): invalid type for io.k8s.api.core.v1.Secret.data: got "map", expected "string"; if you choose to ignore these errors, turn validation off with --validate=false
现在这样做有什么诀窍吗。我玩过引用和各种地方,转义引用,以及所有的爵士乐和纳达音乐

*更新1*

使用stringData仍会导致相同的错误:

apiVersion: v1
kind: Secret
metadata:
  name: monsoon-storage-reporting-config
type: Opaque
stringData:
  config: {"database": "foo"}

我必须对值进行base64编码

$ echo {"database": "foo"} | base64
e2RhdGFiYXNlOiBmb299Cg==
然后在
数据:
字段中使用base64编码值

apiVersion: v1
kind: Secret
metadata:
  name: reporting-config
type: Opaque
data:
  config: e2RhdGFiYXNlOiBmb299Cg==
请注意:

在Darwin/macOS上使用base64实用程序时,用户应避免使用-b选项拆分长行。相反,Linux用户应该在base64命令中添加选项-w0,如果-w选项不可用,则应添加管道base64 | tr-d'\n'


您可以按如下方式使用stringData。请注意stringData后面的管道:

apiVersion: v1
kind: Secret
metadata:
  name: monsoon-storage-reporting-config
type: Opaque
stringData: |
  config: {"database": "foo"}

请让我知道用户
Jonas
提供的答案是否对您有所帮助。我无法在文档中提供有关此方法的任何信息。你能提供一些消息来源吗?
$ echo {"database": "foo"} | base64
e2RhdGFiYXNlOiBmb299Cg==
apiVersion: v1
kind: Secret
metadata:
  name: reporting-config
type: Opaque
data:
  config: e2RhdGFiYXNlOiBmb299Cg==
apiVersion: v1
kind: Secret
metadata:
  name: monsoon-storage-reporting-config
type: Opaque
stringData: |
  config: {"database": "foo"}