Deckhouse Kubernetes Platform (DKP) позволяет автоматически распространять секреты во все пространства имён кластера. Это помогает исключить ручное копирование секретов в рамках CI/CD-процессов, например, для скачивания образов или при работе с хранилищем Ceph RBD.
Как это работает
- Deckhouse отслеживает секреты в пространстве имён
default
, которым назначен специальный лейблsecret-copier.deckhouse.io/enabled: ""
. - Такие секреты автоматически копируются во все пространства имён кластера.
- При изменении оригинального секрета в пространстве
default
обновлённое содержимое также распространяется по всем пространствам имён кластера. - При удалении оригинального секрета в пространстве
default
удаляются все его копии во всех пространствах имён. - Если секрет был вручную изменён в одном из пространств имён,
он будет автоматически перезаписан содержимым оригинального секрета из пространства
default
. - При создании новых пространств имён
в них автоматически копируются все секреты из
default
с лейбломsecret-copier.deckhouse.io/enabled: ""
. - Каждую ночь выполняется повторная синхронизация всех секретов.
Несовместимость с режимом мультитенантности
Механизм автоматического распространения секретов несовместим с режимом мультитенантности.
В режиме мультитенантности создаются изолированные окружения для пользователей в проектах и автоматическое копирование секретов по всем пространствам имён может нарушить эту модель безопасности. Если в закрытом окружении пользователя окажутся чувствительные данные, это может привести к их утечке.
Если вам необходимо предоставить общий сертификат (например, WC-сертификат для внутреннего окружения) или общий токен доступа к registry, не используйте механизм автоматического распространения секретов. Вместо этого поместите такие секреты в шаблон проекта — администратор кластера должен определить их в конфигурации проекта.
Настройка автоматического распространения секретов
- Создайте ресурс Secret в пространстве имён
default
. - Добавьте к нему лейбл
secret-copier.deckhouse.io/enabled: ""
. - Примените ресурс командой
d8 k apply
, после чего он будет автоматически распространён по всем пространствам имён.
Автоматически распространяются только секреты из пространства имён default
.
Секреты с лейблом secret-copier.deckhouse.io/enabled: ""
, созданные в других пространствах имён,
будут автоматически удалены.
Распространение секретов по выбранным пространствам имён
Чтобы копировать секрет не во все, а только в отдельные пространства имён,
используйте аннотацию с label-селектором secret-copier.deckhouse.io/target-namespace-selector: "app=custom"
.
В этом случае секрет будет скопирован только в пространства имён, соответствующие заданному селектору.