Используйте секрет для хранения конфиденциальных данных в шлеме kubernetes - PullRequest
0 голосов
/ 01 ноября 2019

У меня есть файл secret.yaml внутри каталога шаблонов со следующими данными:

apiVersion: v1
kind: Secret
metadata: 
  name: appdbpassword
stringData:
  password: password

У меня также есть ConfigMap:

apiVersion: v1
kind: ConfigMap
metadata:
  name: appdbconfigmap
data:
  jdbcUrl: jdbc:oracle:thin:@proxy:service
  username: bhargav

Я использую следующий модуль:

apiVersion: v1
kind: Pod
metadata:
  name: expense-pod-sample-1
spec:
  containers:
    - name: expense-container-sample-1
      image: exm:1
      command: [ "/bin/sh", "-c", "--" ]
      args: [ "while true; do sleep 30; done;" ]
      envFrom:
      - configMapRef:
              name: appdbconfigmap
      env:
      - name: password
        valueFrom:
          secretKeyRef:
            name: appdbpassword
            key: password

Когда я использую команду установки helm, я вижу, что модуль работает, но если я пытаюсь использовать переменную среды ${password} в моем приложении, она просто не работает. Там написано, что пароль неверный. Он не жалуется на имя пользователя, которое является ConfigMap. Это происходит только если я использую шлем. Если я не использую helm и самостоятельно запускаю все файлы YAML с помощью kubectl, мое приложение правильно обращается к имени пользователя и паролю.

Я что-то здесь упускаю?

1 Ответ

2 голосов
/ 01 ноября 2019
apiVersion: v1
kind: Secret
metadata:
  name: test-secret
data:
  password : cGFzc3dvcmQK

Вы также можете добавить секрет, например, при преобразовании данных в формат base64. В то время как stringData делать это автоматически, когда вы создаете секрет.

Попытка Добавление секретов в среде, как этот способ

envFrom:
        - secretRef:
            name: test-secret
...