nir*_*air 3 kubernetes kustomize
所以,我有一个如下所示的 yaml 文件:
service:
users:
- username: some-user
password: some-pass (would be placed in Secret)
- username: some-user
password: some-pass (would be placed in Secret)
Run Code Online (Sandbox Code Playgroud)
我需要将它添加到 env 中(在 spring boot 的优先级列表中,env 中的配置高于 yaml 中的配置。这将是基于 env(dev,stage,live) 的)。我已经用 Kustomize 尝试过这个
configMapGenerator:
- name: my-java-server-props
files:
- config.yaml
Run Code Online (Sandbox Code Playgroud)
然后在部署中使用它
envFrom:
- configMapRef:
name: my-java-server-props
Run Code Online (Sandbox Code Playgroud)
config.yml 中的其他配置如下:
spring:
datasource:
url: some-url-here
Run Code Online (Sandbox Code Playgroud)
然后添加到 configMapGenerator 的 .properties 文件中,如下所示:
spring_datasource_url=some-url-here
Run Code Online (Sandbox Code Playgroud)
但数组的配置似乎不起作用。
关于我在哪里错过了这个技巧的任何提示吗?另外,密码来自credstash;因此,我有一个不同的脚本,它从 credstash 获取值并为 Secret 创建清单。
添加密码的最终目标在部署中是这样的:
name: service_users.0.password
valueFrom:
secretKeyRef:
key: value
name: service-user-store-password
Run Code Online (Sandbox Code Playgroud)
这是前一段时间Spring Boot中的一个问题,支持将环境变量绑定到数组元素。spring boot wiki 上有一个很好的文档来描述该解决方案:https ://github.com/spring-projects/spring-boot/wiki/Relaxed-Binding-2.0 。
总而言之,数组元素可以使用i进行索引,因此在您的情况下:
env:
- name: SERVICE_USERS_0_PASSWORD
valueFrom:
secretKeyRef:
key: value
name: service-user-store-password
- name: SERVICE_USERS_1_PASSWORD
valueFrom:
secretKeyRef:
key: value
name: service-another-user-store-password
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5872 次 |
| 最近记录: |