Секрет не расшифровывается должным образом с использованием секретов Kubernetes - PullRequest
0 голосов
/ 03 мая 2020

Я использую Kubernetes для развертывания моей информационной панели grafana и пытаюсь использовать секреты Kubernetes для сохранения пароля администратора grafana. Вот мой файл yaml для секретного значения

    apiVersion: v1
    kind: Secret
    metadata:
      name: $APP_INSTANCE_NAME-grafana
      labels:
        app.kubernetes.io/name: $APP_INSTANCE_NAME
        app.kubernetes.io/component: grafana
    type: Opaque
    data:
      # By default, admin-user is set to `admin`
      admin-user: YWRtaW4=
      admin-password: "$GRAFANA_GENERATED_PASSWORD"

для GRAFANA_GENERATED_PASSWORD в кодировке base64 и экспортируется как

export GRAFANA_GENERATED_PASSWORD="$(echo -n $PASSWORD | base64)"

, где PASSWORD - это переменная, которую я экспортировал на мою машину, например export PASSWORD=qwerty123

Я пытаюсь передать значение GRAFANA_GENERATED_PASSWORD в файл yaml для секрета, например

envsubst '$GRAFANA_GENERATED_PASSWORD'  > "grafana_secret.yaml"

Файл yaml после передачи закодированного в base64 значения выглядит следующим образом:

apiVersion: v1
kind: Secret
metadata:
  name: kafka-monitor-grafana
  labels:
    app.kubernetes.io/name: kafka-monitor
    app.kubernetes.io/component: grafana
type: Opaque
data:
  # By default, admin-user is set to `admin`
  admin-user: YWRtaW4=
  admin-password: "cXdlcnR5MTIz"

После развертывания всех моих объектов я не смог войти в свою панель управления, используя пароль qwerty123, который закодирован правильно.

Но когда я пытаюсь закодировать свой пароль, например export GRAFANA_GENERATED_PASSWORD="$(echo -n 'qwerty123' | base64) "

Он работает правильно, и я могу войти в свою панель управления с помощью пароля qwerty123 .. Похоже, проблема возникает, когда я кодирую мой пароль с помощью переменной ... Но я закодировал свой пароль с помощью переменной

1 Ответ

1 голос
/ 08 мая 2020

Как уже упоминалось в комментарии @ Prathee sh, после первого развертывания графаны постоянный том не был удален / воссоздан, а файл grafana.db, содержащий пароль панели мониторинга Grafana, все еще сохраняет старый пароль.

Чтобы решить, необходимо удалить PersistentVolume (pv), прежде чем применять секрет с новым паролем.

...