Kubernetes:如何在configMap中设置布尔类型变量

18

我希望在configMap(或secret)中设置一个布尔变量:

apiVersion: v1
kind: ConfigMap
metadata:
  name: env-config
  namespace: mlo-stage
data:
  webpack_dev_server: false

但是当我应用它时,我会收到以下错误:

The request is invalid: patch: Invalid value: "map[data:map[webpack_dev_server:false] metadata:map[annotations:map[kubectl.kubernetes.io/last-applied-configuration:{ blah blah blah}]]]": unrecognized type: string

我曾尝试将值更改为Off/No/False,但都遇到了同样的问题。

数据映射中键的值似乎只能是字符串。我曾尝试将值更改为"false",YAML文件没问题,但变量变成了字符串而不是布尔值。

如果我想传递一个布尔值作为值,该怎么办?

2个回答

37

ConfigMap中的值必须是键值字符串或文件。

更改为:

data:
  webpack_dev_server: false

收件人:

data:
  webpack_dev_server: "false"

关于你的问题:

如果我想传递一个布尔值作为参数,应该怎么做?

您可以在应用程序中处理此问题,将值从 string 转换为 bool


3
谢谢@Jonas的回答,这证实了只能将字符串作为值传递给configMap。 - Ken Tsoi

1
将以下代码修改为这样:
data:
  webpack_dev_server: false

data:
  webpack_dev_server: "\"false\""

以下提到的错误也可以通过同样的方式快速解决。

创建 "test.yaml" 时出错:无法将版本为 "v1" 的 ConfigMap 处理为 ConfigMap:json:无法将数字取消编组为类型为字符串的 ConfigMap.data 的 Go 结构字段。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接