Секреты kubernetes имеют конечные пробелы в переменных среды

Я создал развертывание в Kubernetes 1.9, работающее на GKE, которое использует секреты, помещенные в переменные среды. Я загрузил секреты в GKE, используя файл yaml с закодированными секретами base64.

Что я вижу в своем контейнере, так это то, что переменная окружения есть, но значение включает в себя конечные пробелы. Вот как это выглядело бы, если бы я установил переменную окружения FOO со значением "bar", где base64, который я вставил в секреты yaml, был бы "YmFyCg==":

$ echo $FOO
bar 
$ echo \"$FOO\"
"bar "
$ echo $FOO | base64
YmFyCg==
$ echo "$FOO" | base64
YmFyIAo=

Это не создает никаких трудностей для приложений, которые читают из переменных среды, ожидающих кодирования значения без дополнительного пробела, например: POSTGRES_PASSWORD а также POSTGRES_USER в postgres:9.6 образ. Другие переменные в среде (в том числе установленные из моего развертывания yaml без секретов) не включают в себя конечные пробелы; проблема только в секретах.

1 ответ

Решение

Ваше эхо добавляет новую строку. Добавьте -n, ​​чтобы пропустить завершающий символ новой строки

Другие вопросы по тегам