在Helm chart values中配置地图数据.yaml文件



我正在尝试使用Helm图表在Minikube中部署我的Spring Boot应用程序。我有一个组态类,我映射所有的@value变量。如果保持我的地图值在application.yamlapplicationConfig.yaml文件,然后

@Value("#{${user.apiKey}}")
private Map<String, String> userApiKeyMap;

工作好。

但是如果我想从values.yaml传递这个映射,那么它不工作。下面是我尝试过的事情和我得到的错误。试1:

user:
apiKey: 
key1: "value1"
key2: "value2"

org.springframework.expression.spel.SpelParseException: Expression [map[key1:value1 key2:value2]] @6: EL1043E: Unexpected token. Expected 'rsquare(])' but was 'colon(:)'

尝试2:

user:
apiKey: |-
key1: "value1"
key2: "value2"
Error: UPGRADE FAILED: YAML parse error on user-service/templates/applicationConfig.yaml: error converting YAML to JSON: yaml: line 29: did not find expected key

尝试3:

user:
apiKey: { key1: "value1",
key2: "value2" }
org.springframework.expression.spel.SpelParseException: Expression [map[key1:value1 key2:value2]] @6: EL1043E: Unexpected token. Expected 'rsquare(])' but was 'colon(:)'

尝试4:

user:
apiKey: '{ "key1": "value1",
"key2": "value2" }'
nested exception is java.lang.IllegalArgumentException: Could not resolve placeholkey2r 'user.apiKey' in value "#{${user.apiKey}}"

尝试5:

user:
apiKey:
- "key1": "value1"
- "key2": "value2"

ERROR 2022-11-09 09:51:01,614 [main] [SpringApplication] Application run failed
org.yaml.snakeyaml.parser.ParserException: while parsing a flow sequence
in 'reader', line 22, column 13:
apiKey: [map[key1:value1 ... 
^
expected ',' or ']', but got [
in 'reader', line 22, column 17:
apiKey: [map[key1:value1 ... 
^

我能够通过在applicationConfig中添加| quote来修复它。yaml文件。

,

user:
apiKey: {{ .Values.user.apiKey | quote }}

最新更新