Есть ли способ поставить секретное значение Kubernetes в поле args файла yaml? - PullRequest
0 голосов
/ 09 мая 2018

У меня есть файл развертывания kubernetes yaml, который принимает имя пользователя и пароль db в качестве аргументов, как показано ниже.

args:
        - "-db_host=postgres"
        - "-db_port=5432"
        - "-db_username=postgres"
        - "-db_password=postgres"

Чтобы скрыть значения db_username и db_password, я подумал об использовании секретного вида kubernetes. Но чтобы добиться этого, я должен сделать 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

Есть ли какой-нибудь способ, которым мы можем использовать секрет в самих аргументах, чтобы мне не пришлось делать второй подход.

1 Ответ

0 голосов
/ 09 мая 2018

Если у вас есть переменная окружения, вы можете встроить ее значение в аргументы:

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

Ссылку можно найти здесь

...