Этот модуль отвечает за копирование секретов во все пространства имён.
Он полезен тем, что позволяет не копировать каждый раз в 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–селектору.