использовать секрет кубернетов в другом

Как я могу использовать секретный X ключ my-key в другом секрете Y как some-other-key? У обоих секретов есть и другие ключи.

Рационально: экземпляр mysql генерирует секрет, содержащий пароли для пользователей с ключами mysql-password и mysql-root-password. Пользовательский ресурс DbInstance ожидает имя секрета, который содержит ключи user и password. (Я использую https://github.com/kloeckner-i/db-operator ) Как я могу перенести значение из одного в другое?

Конечно, я могу сделать это вручную, скопировав закодированное значение из kubectl get secret mysql-generated-secret и вставив его в kubectl edit secret dbinstance-secret. Есть ли способ лучше? Ссылка в k8s, если можно, или хорошая автоматика. (Я найду способ, похожий на pwd=$(kubectl get secret -o yaml ... | yq .data.mysql-password | base64 -d) && helm update --set password=$pwd ...; unset pwd, но это лучший способ?)

аналогично: Использование секретов kubernetes в configmap


person simohe    schedule 14.04.2020    source источник


Ответы (1)


Лучший способ автоматизировать это - использовать оператора. прослушивать секрет mysql-generated-secret, при создании или триггере модификации -> create dbinstance-secret

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

https://github.com/zakkg3/ClusterSecret

person NicoKowe    schedule 28.04.2020
comment
Я согласен, это лучший способ. Может быть, это немного перебор, если просто использовать его хотя бы раз. Код python (да!) Выглядит вполне понятным. Но по опыту работы с shell-оператором я сомневаюсь, что уже готов к написанию операторов. - person simohe; 02.05.2020