说我希望在头盔模板内的数据库连接字符串中使用以下机密:
- 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的环境值?
答案 0 :(得分:2)
pod规范中的许多位置都支持$(VARIABLE_NAME)
语法。特别是API documentation for an EnvVar
object指定
value
(字符串):变量引用$(VAR_NAME)使用容器中先前定义的环境变量和任何服务环境变量进行扩展。
所以您应该可以说类似
- name: Database__ConnectionString
value: "server=something.com;port=3306;user=$(DBUSER);password=$(DBPASS);database=dbname"
(请注意$(DBUSER)
和$(DBPASS)
的括号。)
(在这种特定情况下,某些数据库库将允许您将连接字符串的所有各个部分指定为单独的环境变量,因此,如果不这样做,您可以设置环境变量PGUSER
and PGPASSWORD
而不是这样做。重新使用PostgreSQL。)
答案 1 :(得分:0)
您通常必须通过命令包装器(如
)在容器中处理此问题command:
- bash
- -c
- export Database_ConnectionString=server=...;user=$DBUSER && exec mycommand
或者类似的东西