我有一个定义环境参数的K8s配置图。
使用src / fabric8 / deployment.yml中的摘录将该值作为环境变量安装在部署yaml上:
spec:
template:
spec:
containers:
- env:
- name: "ENVIRONMENT"
valueFrom:
configMapKeyRef:
name: global-configmap
key: ENVIRONMENT
我想使用该ENVIRONMENT env变量来配置spring.active.profiles
属性。
fabric8 maven插件是否以某种方式支持它?如果没有,您可以建议一些解决方法吗?
答案 0 :(得分:1)
首先要注意的是,注入Pod的环境变量的名称与configmap中使用的密钥不必匹配。因此,您可以这样做:
- env:
- name: SPRING_PROFILES_ACTIVE
valueFrom:
configMapKeyRef:
name: global-configmap
key: ENVIRONMENT
如果ENVIRONMENT是配置映射中名为global-configmap
的键。如果不是,那么自然就想使用与您要查找的值相匹配的键(如果可能的话,例如spring.profiles.active可能会更清楚,但从您的描述中听起来,您似乎已经拥有一个名为global- configmap,其键名为ENVIRONMENT)。我希望您需要调用环境变量(名称部分)SPRING_PROFILES_ACTIVE,因为这将与relaxed binding的spring.profiles.active属性匹配。
或者,fabric8 maven插件确实有其他选项,看来您正在使用该选项进行生成。您可以简单地set an environment variable directly或直接在属性文件which you could mount as a configmap中设置spring.profiles.active值。