java - 在 Java spring application.properties 中将 k8s 机密读取为 env 变量
问题描述
我必须在 JAVA SpringBoot 应用程序中传递环境变量。
我已经创建了 k8s 的秘密。我在 k8s 部署 YAML 中将它们作为环境变量 USER_NAME 和 USER_PWD 传递。
但是如何在 application.properties 文件中读取这些环境变量。我试过 ${USER_NAME} 但它不起作用。
前任。来自 application.properties 文件。
spring.datasource.username=${USER_NAME}
解决方案
您的部署 yml 应该是这样的
kind: Deployment
apiVersion: apps/v1
metadata:
name:
spec:
...
spec:
containers:
...
env:
- name: spring.datasource.password
valueFrom:
secretKeyRef:
name: your-secret-name
key: your-secret-key
Kubernetes 会将您的 spring.datasource.password 及其值添加到您的 pod 环境变量中。
要让 Spring boot 使用它,您应该在 application.properties 或 application.yml 中添加属性 spring.datasource.password。
推荐阅读
- continuous-integration - 如何在drone.io 中停止一个分离的步骤?
- flutter - 带抽屉的颤振导航堆栈
- arrays - 如何将文本文件中的字符串转换为 Bash 中的数组
- css - 不兼容的单位 px 和 rem(当前解决方案不起作用)
- java - Mockito 如何测试 findById() 返回一个 Optional
- c# - 试图在代码隐藏中包装数据网格文本
- vba - 如何在 VBA word 中创建单独的表?
- node.js - 从 npm 运行时如何运行 curl 并提示输入密码?
- list - 如何使用 2 个列表文件创建一个 for 循环
- r - 如何避免使用 for 循环将嵌套列表的元素置于顶层?