有没有办法将 Kubernetes 秘密值放在 yaml 文件的 args 字段中
Is there a way to put Kubernetes secret value in args field of yaml file
我有一个 kubernetes yaml 部署文件,它接受数据库用户名和密码作为参数,如下所示。
args:
- "-db_host=postgres"
- "-db_port=5432"
- "-db_username=postgres"
- "-db_password=postgres"
为了隐藏 db_username 和 db_password 的值,我想到了使用 kubernetes secret kind。但要实现这一点,我必须将 db_username 和 db_password 作为环境变量,以便我可以使用它,如下所示:
args:
- "-db_host=postgres"
- "-db_port=5432"
env:
- name: db_username
valueFrom:
secretKeyRef:
name: db-secret
key: db-user
- name: db_password
valueFrom:
secretKeyRef:
name: db-secret
key: db-pass
有没有什么方法可以在 args 本身中使用 secret,这样我就不必执行第二种方法了。
一旦你有了一个环境变量,你就可以将它的值嵌入到参数中:
env:
- name: MESSAGE
value: "hello world"
command: ["/bin/echo"]
args: ["$(MESSAGE)"]
或者您的情况:
args:
- "-db_host=postgres"
- "-db_port=5432"
- "-db_username=$(db_username)"
- "-db_password=$(db_password)"
env:
- name: db_username
valueFrom:
secretKeyRef:
name: db-secret
key: db-user
- name: db_password
valueFrom:
secretKeyRef:
name: db-secret
key: db-pass
可以找到参考here
我有一个 kubernetes yaml 部署文件,它接受数据库用户名和密码作为参数,如下所示。
args:
- "-db_host=postgres"
- "-db_port=5432"
- "-db_username=postgres"
- "-db_password=postgres"
为了隐藏 db_username 和 db_password 的值,我想到了使用 kubernetes secret kind。但要实现这一点,我必须将 db_username 和 db_password 作为环境变量,以便我可以使用它,如下所示:
args:
- "-db_host=postgres"
- "-db_port=5432"
env:
- name: db_username
valueFrom:
secretKeyRef:
name: db-secret
key: db-user
- name: db_password
valueFrom:
secretKeyRef:
name: db-secret
key: db-pass
有没有什么方法可以在 args 本身中使用 secret,这样我就不必执行第二种方法了。
一旦你有了一个环境变量,你就可以将它的值嵌入到参数中:
env:
- name: MESSAGE
value: "hello world"
command: ["/bin/echo"]
args: ["$(MESSAGE)"]
或者您的情况:
args:
- "-db_host=postgres"
- "-db_port=5432"
- "-db_username=$(db_username)"
- "-db_password=$(db_password)"
env:
- name: db_username
valueFrom:
secretKeyRef:
name: db-secret
key: db-user
- name: db_password
valueFrom:
secretKeyRef:
name: db-secret
key: db-pass
可以找到参考here