Spring boot Openshift:应用程序未拾取Configmap

Spring boot Openshift:应用程序未拾取Configmap,spring-boot,openshift,fabric8,openshift-env-variables,Spring Boot,Openshift,Fabric8,Openshift Env Variables,我在openshift中部署了一个springboot应用程序,其application.properties具有 greeting.constant = HelloWorld.SpringProp 我还定义了fabric8/configmap.yml apiVersion: v1 kind: ConfigMap metadata: name: sampleappconfig data: greeting.constant: Hellowrold.Poc.ConfigMap.Tes

我在openshift中部署了一个springboot应用程序,其application.properties具有

greeting.constant = HelloWorld.SpringProp
我还定义了fabric8/configmap.yml

apiVersion: v1
kind: ConfigMap
metadata:
  name: sampleappconfig
data:  
  greeting.constant: Hellowrold.Poc.ConfigMap.Test
和fabric8/deployment.yml

spec:
  template:
    spec:
      containers:
      - name: sampleappcontainer
        env:
        - name: greeting.constant
          valueFrom:
            configMapKeyRef:
              name: sampleappconfig
              key: greeting.constant
        envFrom:
        - configMapRef:
            name: sampleappconfig
        resources:
          requests:
            cpu: "0.2"
#           memory: 256Mi
          limits:
            cpu: "1.0"
#           memory: 256Mi
在使用fabric8部署应用程序时,它会在Openshift中创建Configmap,我还会在Openshift webconsole中的应用程序的“环境”选项卡中看到“greeting.constant”

问题是,我希望应用程序拾取Configmap中给定的值,而不是Spring application.properties,因为环境变量具有优先性。但是,运行应用程序会记录“HelloWorld.SpringProp”而不是“Hellowrold.Poc.ConfigMap.Test”


如何使我的应用程序引用Configmap中的属性?

如果将Configmap作为文件装载,并且应用程序可以检测到对文件的更改并重新读取,则Configmap更改只会自动反映在容器中


如果使用ConfigMap填充环境变量,则有必要为要更新的环境变量触发新部署。无法通过更改ConfigMap实时更新应用程序看到的环境变量值。

如果将ConfigMap作为文件装载,并且应用程序可以检测到文件的更改并重新读取,则ConfigMap更改仅会自动反映在容器中

如果使用ConfigMap填充环境变量,则有必要为要更新的环境变量触发新部署。无法通过更改ConfigMap来实时更新应用程序看到的环境变量的值