【问题标题】:Multi profile config map is not properly injected to container多配置文件配置映射未正确注入容器
【发布时间】:2019-11-14 19:59:38
【问题描述】:

k8s 新手。

我的配置图看起来像

apiVersion: v1
kind: ConfigMap
metadata:
    name: example-configmap-overriding-new-01
data:
    application.properties: |
        globalkey = global key value
        TeamName = Team Name value  
        #Some other key value pairs         
    application-qa.properties: |
        globalkey = global key qa value
        TeamName = Team Name qa value
        #Some other key value pairs
    application-prod.properties: |
        globalkey = global key prod value
        Company = company prod value
        #Some other key value pairs

在我的 Spring Boot 应用程序中尝试使用此配置映射时,应用程序没有从配置映射中获取值。 它说,

Injection of autowired dependencies failed; nested exception is java.lang.IllegalArgumentException: 
Could not resolve placeholder 'globalkey' in value "${globalkey}"

发布了这个问题HERE

不幸的是,看到 configmap 将环境变量注入到容器中。共享日志以供参考。

application.properties=globalkey = global key value
TeamName = Team Name value
Purpose = Purpose value
RootFile = Root file value
Company = company value
Place = Place value
Country = Country value

application-prod.properties=globalkey = global key prod value
Company = company prod value
Place = Place prod value
Country = Country prod value

application-qa.properties=globalkey = global key qa value
TeamName = Team Name qa value
Purpose = Purpose qa value
RootFile = Root file qa value

#Some other key values pairs injected by k8s

我相信,从日志中,“application.properties=globalkey = global key value”,没有见过这样的键值对。

怀疑,注入 configmap 时出了点问题。有没有语法错误?

PS:- 我也试过下面的语法。

apiVersion: v1
kind: ConfigMap
metadata:
    name: example-configmap-overriding-new-01
data:
    application.properties: |-
        globalkey = global key value                    
    application-qa.properties: |-
        globalkey = global key qa value

我在 windows 10 pro 机器上使用 minikube 进行本地开发。

有人可以在这里分享见解吗?

PS:我在问为什么 env 变量显示为“application.properties=globalkey = global key value”,并且我还链接了问题的来源。在旧问题中,我问“无法从 configmap 读取”。在新问题中,我问“多配置文件配置映射未正确注入容器”

【问题讨论】:

标签: spring-boot kubernetes minikube application.properties configmap


【解决方案1】:

您的ConfigMap 存在一些语法错误。请试试这个:

apiVersion: v1
kind: ConfigMap
metadata:
  name: example-configmap-overriding-new-01
  namespace: <insert_namespace_here>
data:
  application.properties: |
    globalkey=global-key-value
    TeamName=Team-Name-value  
    #Some other key value pairs         
  application-qa.properties: |
    globalkey=global-key-qa-value
    TeamName=Team-Name-qa-value
    #Some other key value pairs
  application-prod.properties: |
    globalkey=global-key-prod-value
    Company=company-prod-value
    #Some other key value pairs

如果您不确定自己的配置,请参阅documentation。 有很多例子。

如果有帮助,请告诉我。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-18
    • 1970-01-01
    相关资源
    最近更新 更多