如何使用 Fabric8 maven 插件使用环境变量中的值指定 spring.profiles.active 参数?

2024-06-19

我有一个定义 ENVIRONMENT 参数的 K8s 配置映射。

该值使用 src/fabric8/deployment.yml 中的摘录作为环境变量安装在部署 yaml 上:

spec:
  template:
    spec:
      containers:
      - env:
        - name: "ENVIRONMENT"
          valueFrom:
              configMapKeyRef:
                  name: global-configmap
                  key: ENVIRONMENT

我想使用 ENVIRONMENT 环境变量来配置spring.active.profiles财产。

Fabric8 maven 插件是否以某种方式支持它?如果没有,您能建议一些解决方法吗?


首先要注意的一件事是,注入 Pod 的环境变量的名称和 configmap 中使用的密钥不必匹配。所以你可以这样做:

      - env:
        - name: SPRING_PROFILES_ACTIVE
          valueFrom:
              configMapKeyRef:
                  name: global-configmap
                  key: ENVIRONMENT

如果 ENVIRONMENT 是 configmap 中的一个键,称为global-configmap。如果不是,那么您自然想要使用与您正在寻找的值相匹配的任何键(如果可能的话,像 spring.profiles.active 之类的东西可能会更清晰,但从您的描述来看,听起来您有一个名为 global- 的现有配置映射) configmap 的键名为 ENVIRONMENT)。我希望您需要调用环境变量(名称部分)SPRING_PROFILES_ACTIVE,因为这将与属性 spring.profiles.active 匹配松弛绑定 https://github.com/spring-projects/spring-boot/wiki/Relaxed-Binding-2.0.

或者,您确实可以使用fabric8 maven 插件来选择其他选项,您似乎正在使用该插件进行生成。你可以简单地直接设置环境变量 https://maven.fabric8.io/#how-do-i-define-an-environment-variable或者直接在属性文件中设置 spring.profiles.active 值,您可以将其作为配置映射安装 https://maven.fabric8.io/#how-do-i-mount-a-config-file-from-a-configmap.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 Fabric8 maven 插件使用环境变量中的值指定 spring.profiles.active 参数? 的相关文章

随机推荐