【发布时间】:2020-10-09 10:58:11
【问题描述】:
我正在尝试在 kubernetese 上部署一个 springboot 应用程序。我已将所有环境变量存储在配置映射中并尝试从那里读取值。有些属性我们需要读取 int 值。
在我们的代码中,它看起来像这样:
application.properties:
TOKEN_RETRY_COUNT=3
由于我们必须从 ConfigMap 中读取它,我们已经更新了我们的 application.properties,如下所述:
更新 application.properties :
TOKEN_RETRY_COUNT=${STARGATE_TOKEN_RETRY_LIMIT}
配置地图
在 Config Maps 中配置的值是这样的。我必须加上双引号,因为没有引号是不允许的。
"STARGATE_TOKEN_RETRY_LIMIT": "3",
现在,当我在 kubernetese 上部署后尝试读取这些值时,出现以下错误:
对于 STARGATE_TOKEN_RETRY_LIMIT:
Failed to convert value of type 'java.lang.String' to required type 'int'; nested exception is java.lang.NumberFormatException: For input string: "STARGATE_TOKEN_RETRY_LIMIT"
目前,我已更新代码以将此值作为字符串,然后将其解析为 int,但这不是理想的方式。应该有一些标准的方法来获取不同的类型。
如果我们无法在 Config Maps 中处理不同类型,那么在 kubernetese 上为 Springboot 应用程序传递不同应用程序属性的理想方法是什么?
【问题讨论】:
标签: spring-boot kubernetes kubectl configmap