多配置文件配置映射未正确注入容器

时间:2019-07-04 06:27:34

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

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应用程序中使用此配置映射时,应用程序未从configmap中获取值。 它说,

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

发布了问题HERE

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

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 =全局键值”

怀疑,注入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

我正在使用minikube在Windows 10专业版计算机中进行本地开发。

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

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

1 个答案:

答案 0 :(得分:0)

您的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。 有很多例子。

请告诉我是否有帮助。