【问题标题】:Openshift: Configmap not picked up by the applicationOpenshift:应用程序未拾取 Configmap
【发布时间】:2018-11-04 04:24:08
【问题描述】:

我在 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,因为 Env 变量优先。但是,运行应用程序会记录“HelloWorld.SpringProp”而不是“Hellowrold.Poc.ConfigMap.Test”。

如何让我的应用程序引用来自 Configmap 的属性?

【问题讨论】:

    标签: spring-boot openshift fabric8 openshift-env-variables


    【解决方案1】:

    只有在将 ConfigMap 挂载为文件并且应用程序可以检测到文件的更改并重新读取它时,ConfigMap 更改才会自动反映在容器中。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-11-30
      • 1970-01-01
      • 1970-01-01
      • 2021-05-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多