kubernetes - 在 helm 部署中连接环境变量?
问题描述
假设我希望在 helm 模板内的 db 连接字符串中使用以下机密:
- name: DBUSER
valueFrom:
secretKeyRef:
name: dbadmin
key: username
- name: DBPASS
valueFrom:
secretKeyRef:
name: dbadmin
key: password
后来我想创建这个:
- name: Database__ConnectionString
value: "server=something.com;port=3306;user=$DBUSER;password=$DBPASS;database=dbname"
如何访问该连接字符串值内的 DBUSER 和 DBNAME 的 env 值?
解决方案
pod 规范中的许多地方都支持$(VARIABLE_NAME)
语法。特别是,对象的API 文档EnvVar
指定
value
( string ):变量引用 $(VAR_NAME) 使用容器中先前定义的环境变量和任何服务环境变量进行扩展。
所以你应该可以说类似
- name: Database__ConnectionString
value: "server=something.com;port=3306;user=$(DBUSER);password=$(DBPASS);database=dbname"
$(DBUSER)
(注意和周围的括号$(DBPASS)
。)
(在这种特定情况下,一些数据库库将允许您将连接字符串的所有单独部分指定为单独的环境变量,因此您可以设置环境变量而不是这样做PGUSER
,PGPASSWORD
例如,如果您使用的是 PostgreSQL。)
推荐阅读
- docker - 在 Jenkins 中找不到 package.json
- java - 在 Spring MVC 中不能将有效的 JSON 数组作为请求正文
- php - 在浏览器中强制 404
- xamarin - 为 Xamarin Forms 应用程序创建 MSI 安装程序
- javascript - 如何断言所有 $ReadOnlyArray 成员都属于某种类型?
- javascript - 在 vue.js 应用程序中设置视口元标记
- php - 在 Laravel 项目中上传视频
- pandas - Pandas,isin,列表列
- java - 根据 Collection.toArray(T[] array) 合同将 Java 流转换为数组
- python - 条件语句 Python Apache Beam 管道