如何仅为K8S中的DEV命名空间启用quarkus.flyway.clean-at-start



我创建了一个微服务https://quarkus.io/我正在使用扩展Flyway进行迁移。

微服务将部署在K8S集群中的DEV和PROD命名空间上。在DEV名称空间中,我希望在开始时将属性clean设置为true,在PROD名称空间中设置为false。

我的问题是,如何为quarkus.flyway.clean-at-start分配不同的值取决于K8S NAMESPACE。我想,当容器启动时,我必须这样做。

有多种方法可以做到这一点:

  • 为不同的应用程序配置文件创建多个属性文件
  • 为配置文件的属性添加前缀

背景信息:tl;博士请记住,属性始终以固定的顺序读取。首先是通用属性文件,然后是当前活动配置文件的属性文件,如果存在重复设置的属性,则它们将相互覆盖。如果没有提及它们,则采用全局文件(或默认文件(中的一个。

多文件方法:只需添加新文件名,如:application-dev.properties。相关配置文件的所有属性都可以在那里命名。通常你会解决你的请求,比如:

  • application.properties->全局一个,默认为所有
  • application-DEV.properties->DEV的真相来源(覆盖(
  • application-PROD.properties->

前缀:我认为这是关于夸克的常见方法。只需将%DEV.quarkus…作为前缀添加到应该用于特殊配置文件的属性顶部。对你来说,这会让它看起来像:

# Gloablly taken and save fallback
quarkus.flyway.clean-at-start=false
# Taken / Overwriting when DEV profile is used (%PROD. for other profile)
%DEV.quarkus.flyway.clean-at-start=true

最新更新