Доступно в редакциях: CE, BE, SE, SE+, EE, CSE Lite (1.67), CSE Pro (1.67)
Стадия жизненного цикла модуля: General Availability
Этот модуль отвечает за копирование секретов во все пространства имён.
Он полезен тем, что позволяет не копировать каждый раз в CI секреты для пуллинга образов и заказа RBD в Ceph.
Модуль secret-copier не может использоваться совместно с модулем multitenancy-manager.
multitenancy-manager создаёт изолированные окружения для пользователей в их проектах, а secret-copier автоматически раздаёт секреты во все пространства имён.
Если в закрытом окружении пользователя окажутся чувствительные данные, это может привести к утечке данных и нарушению модели безопасности.
Поэтому, если необходимо предоставить общий сертификат (например, WC-сертификат для внутреннего окружения) или общий токен доступа к registry, не используйте secret-copier.
Поместите такие секреты в шаблон проекта в multitenancy-manager – администратор кластера должен определить их в конфигурации проекта.
Как работает?
Модуль secret-copier следит за изменениями секретов в пространстве имён default с лейблом secret-copier.deckhouse.io/enabled: "".
- Созданный секрет будет скопирован во все пространства имён.
- Изменённый секрет с его новым содержимым будет раскопирован во все пространства имён.
- При удалении секрет будет удален из всех пространств имён.
- При изменении скопированного секрета в прикладном пространстве имён, тот будет перезаписан оригинальным содержимым.
- При создании любого пространства имён в него копируются все секреты из пространства имён
defaultс лейбломsecret-copier.deckhouse.io/enabled: "".
Кроме этого, каждую ночь секреты будут повторно синхронизированы и приведены к состоянию в пространств имён default.
Что нужно настроить?
Чтобы все заработало, достаточно создать в пространстве имён default секрет с лейблом secret-copier.deckhouse.io/enabled: "".
Внимание! Рабочим пространством имён для модуля является
default, Секреты будут копироваться только из него. Ресурсы с лейбломsecret-copier.deckhouse.io/enabled: "", созданные в других пространствах имён при включенном модуле будут автоматически удалены.
Как ограничить список пространств имён, в которые будет производиться копирование?
Для этого нужно задать label–селектор в значении аннотации secret-copier.deckhouse.io/target-namespace-selector. Например: secret-copier.deckhouse.io/target-namespace-selector: "app=custom". Модуль создаст копию этого секрета во всех пространствах имён, соответствующих заданному label–селектору.