ConfigMap Kubernetes YAML:值的空间导致错误

时间:2018-10-10 19:27:16

标签: kubernetes yaml

出于某些奇怪和未知的原因,当我使用具有键值对的ConfigMap时(将使用envFrom设置为Pod中的环境变量),我的Pod无法启动。

这是我的YAML的ConfigMap部分:

apiVersion: v1
kind: ConfigMap
metadata:
  name: all-config
data:
  # DB configuration
  dbServer: "host.docker.internal"
  dbPort: "3306"

  # problematic config
  validationQuery: 'Select 1'

如果我注释掉validationQuery键/值对,则窗格开始。如果我将其保留,它将失败。如果我删除空间,它将运行!归结为空格的行为非常奇怪。

关于为什么失败以及用户如何解决这个问题的任何想法?有人可以尝试复制吗?

1 个答案:

答案 0 :(得分:3)

老实说,这是因为您的应用程序不喜欢带有空格的环境变量。我自己尝试了一下,当我装入吊舱/容器时,我看到的环境变量的空间很好,很漂亮。

PodSpec:

...
spec:
  containers:
  - command:
    - /bin/sleep
    - infinity
    env:
    - name: WHATEVER
      valueFrom:
        configMapKeyRef:
          key: myenv
          name: j
...

$ kubectl get cm j -o=yaml
apiVersion: v1
data:
  myenv: Select 1
kind: ConfigMap
metadata:
  creationTimestamp: 2018-10-10T20:44:02Z
  name: j
  namespace: default
  resourceVersion: "11111111"
  selfLink: /api/v1/namespaces/default/configmaps/j
  uid: aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaa

root@mypod-xxxxxxxxxx-xxxxx:/# echo $WHATEVER
Select 1
root@mypod-xxxxxxxxxx-xxxxx:/#