Секреты 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, чтобы пропустить завершающий символ новой строки