当前位置: 首页 > 知识库问答 >
问题:

覆盖应用程序.yaml 属性的Spring启动应用程序使用 k8s 部署/配置映射

金子平
2023-03-14

我有一个spring boot应用程序,它有一个应用程序YAML文件(src/main/resources/)。

app:
  props:
    -
      key1: value
      key2: value
    - 
      key3: value
      key4: value
    -
      key5: value
      key6: value

我想覆盖部署的env部分(k8s)中的整个< code>props列表。在Kubernetes有什么办法吗?

共有2个答案

慕容烨
2023-03-14

根据本SO,假设应用程序部署在带有Pod的Kubernetes上,您可以通过将环境变量直接分配给Deployment本身或使用ConfigMap将其注入容器中。在本教程中,您将了解有关此过程的详细信息和步骤。

添加支持链接:

以下是文档:

  1. 通过环境变量向容器公开Pod信息
  2. 配置Pod以使用ConfigMap
  3. Spring Boot具有外部配置
勾岳
2023-03-14

Spring将自动允许您通过环境变量覆盖属性。

因此,如果您想更改key3,那么您所需要做的就是创建一个名为:APP_PROPS_1_key3的环境变量,您可以覆盖该值。这可以通过K8完成。

更多信息:https://stackoverflow.com/a/58186093/5563263

 类似资料:
  • 我正在使用springfox swagger 2.8.0。我想根据我的需求定制我的Swagger文档和API版本路径。能够使用应用程序修改版本路径。属性,并且它正在正常运行: 斯普林福克斯。文档大摇大摆路径=/v2/可用性服务 http://localhost:8080/context-path/v2/availability-service 但是想要我的留档URL如下,如何使用applicati

  • 我想开发一个API,使非程序员能够设置电子邮件属性,例如端口或主机。我发现我可以使用Spring Boot注释@ConfigurationProperties在类中加载属性。 我可以使用getPort检索属性,并使用setPort进行设置。 但是,使用此方法可以计算应用程序中的实际值。使用setPort或setHost时,属性文件不会更改。因此,当我重新启动应用程序时,更改会丢失。是否有办法实际更

  • 我想覆盖应用程序中定义的属性。属性通过cmd与应用程序中现有的其他属性。属性,但仅允许提供预定义值。 我需要的是通过应用程序中已经存在的命令行传递调度的参数。属性,它将更改在调度中定义的默认值。 我的问题是,当我从cmd执行jar文件时,它正在获取构建时存在于中的值。它没有覆盖现有值值。我想根据用户需要覆盖值。 Spring代码 应用属性 在cmd中

  • 我想在重新启动时通过外部配置文件覆盖Spring Boot应用程序中的几个配置。 我正在使用的内容:java-jar-dspring.profiles.active=${ENV}my-application.jar 这将在应用程序启动期间加载特定于配置文件的应用程序属性。让我们假设我有一个问题,我需要更改我的应用程序中的配置,我不想重新构建我的应用程序与更改的属性,我想要实现的是,我提供一个外部属

  • Compile Sdk Version: 指定Android的编译版本. 对应build.gradle文件中的参数是: compileSdkVersion 23 Build Tools Version: 指定构建工具的版本. 对应build.gradle文件中的参数是: buildToolsVersion "23.0.2" SDK编译版本和构建工具的版本都是我们已经下载到本地的,如果本地没有就

  • 我正在开发一个spring boot应用程序 我想用外部文件(例如)重写中的某些属性。 我尝试了几种方法: 中的“我的应用程序.属性”中的 我使用对其进行了测试。第一个方法只添加了属性,但没有重写它们。