Kubernete/OpenShift:配置Map包含的键不是有效的环境变量名/xxx.yml不是有效变量

vsdwdz23  于 2022-09-20  发布在  Kubernetes
关注(0)|答案(2)|浏览(113)

Kubernete/OpenShift 3是否支持这一点?我在data:之后使用了一个YAML文件,从OpenShift得到错误:

Config map app-config contains keys that are not valid environment variable names. Only config map keys with valid names will be added as environment variables.

以及:

奇怪的是,它说operatorconfig.yml不是一个有效变量,但它不是一个变量,而是一个文件。

以前是operator-config.yml,但现在移除-后仍然不起作用。

其定义如下:

- apiVersion: v1
    kind: ConfigMap
    metadata:
      name: app-config
    data:
      appconfig.yml: |
        swarm:
          resource-adapters:
            resource-adapters:
              activemq-rar:
                config-properties:
                  ServerUrl:
                    value: {{ some_url }}
                  UserName:
                    value: {{ some_user }}
        anothercomponent:
          url: {{ some_url }}
      operatorconfig.yml: {{ APP_OPERATOR_CONFIG | to_nice_yaml(width=99999) | trim | to_yaml(width=99999) }}

appconfig.ymloperatorconfig.yml都不起作用,它们的属性值都不被服务识别。

我注意到,如果是属性文件,或者没有文件扩展名的属性文件,它会在官方页面中工作。这是否意味着不支持YAML??https://docs.openshift.com/container-platform/3.11/dev_guide/configmaps.html

33qvvth1

33qvvth11#

配置Mapapp-config包含的密钥不是有效的环境变量名称

上述错误表示用于Pod内容器的ConfigMap作为环境变量加载。这是使用的环境变量密钥名称的问题。带“.”的变量。不支持环境变量ex:test.var、Operatorfig.yml和appfig.yml的命名约定

pgvzfuti

pgvzfuti2#

最后我发现,在以前版本的应用程序中,我们使用mount Volume加载YAML文件内容,然后应用程序从卷中读取YAML文件,而不是将配置Map中的YAML内容作为环境变量加载;似乎不支持这样做。但是要装载到卷,您需要一个配置Map。这就是为什么它在开始时是这样做的;拥有配置Map并不意味着您需要将其作为环境变量加载。

我的结论是,在“data:”之后指定的文件只能是属性文件;即,每一行都使用“key=Value”格式;而YAML不是。

因此,我使用QUARKUS_CONFIG_LOCATIONS环境变量指向挂载卷YAML文件,它很有效。

相关问题