无法从Kubernetese配置映射中读取int值



我正试图在kubernetese上部署一个springboot应用程序。我已经将所有环境变量存储在配置映射中,并尝试从中读取值。有些属性需要读取int值。

在我们的代码中,它看起来像这样:

application.properties:

TOKEN_RETRY_COUNT=3

正如我们必须从ConfigMap中阅读的那样,我们已经更新了我们的application.properties,如下所述:

更新application.properties:

TOKEN_RETRY_COUNT=${STARGATE_TOKEN_RETRY_LIMIT}

配置映射

配置映射中的值如下所示。我不得不加双引号,因为没有任何引号是不允许的。

"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"

目前,我已经更新了代码,将这个值作为String,然后将其解析为int,但这不是理想的方式。应该有一些标准的方式来采取不同的类型。

如果我们不能在配置映射中处理不同的类型,那么在kubernetese上为Springboot应用程序传递不同的应用程序属性的理想方式是什么?

我不认为这个问题与属性值(3(被指定为字符串("3"(有关。如果您仔细阅读错误消息,您会发现NumberFormatException是由尝试将STARGATE_TOKEN_RETRY_LIMIT(字面上(解析为int引起的。配置映射传递到应用程序/容器的方式可能有问题。

最新更新