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.yml
和operatorconfig.yml
都不起作用,它们的属性值都不被服务识别。
我注意到,如果是属性文件,或者没有文件扩展名的属性文件,它会在官方页面中工作。这是否意味着不支持YAML??https://docs.openshift.com/container-platform/3.11/dev_guide/configmaps.html
2条答案
按热度按时间33qvvth11#
配置Mapapp-config包含的密钥不是有效的环境变量名称
上述错误表示用于Pod内容器的ConfigMap作为环境变量加载。这是使用的环境变量密钥名称的问题。带“.”的变量。不支持环境变量ex:test.var、Operatorfig.yml和appfig.yml的命名约定
pgvzfuti2#
最后我发现,在以前版本的应用程序中,我们使用mount Volume加载YAML文件内容,然后应用程序从卷中读取YAML文件,而不是将配置Map中的YAML内容作为环境变量加载;似乎不支持这样做。但是要装载到卷,您需要一个配置Map。这就是为什么它在开始时是这样做的;拥有配置Map并不意味着您需要将其作为环境变量加载。
我的结论是,在“data:”之后指定的文件只能是属性文件;即,每一行都使用“key=Value”格式;而YAML不是。
因此,我使用
QUARKUS_CONFIG_LOCATIONS
环境变量指向挂载卷YAML文件,它很有效。