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, не используйте механизм автоматического распространения секретов. Вместо этого поместите такие секреты в шаблон проекта — администратор кластера должен определить их в конфигурации проекта.

Настройка автоматического распространения секретов

  1. Создайте ресурс Secret в пространстве имён default.
  2. Добавьте к нему лейбл secret-copier.deckhouse.io/enabled: "".
  3. Примените ресурс командой d8 k apply, после чего он будет автоматически распространён по всем пространствам имён.

Автоматически распространяются только секреты из пространства имён default. Секреты с лейблом secret-copier.deckhouse.io/enabled: "", созданные в других пространствах имён, будут автоматически удалены.

Распространение секретов по выбранным пространствам имён

Чтобы копировать секрет не во все, а только в отдельные пространства имён, используйте аннотацию с label-селектором secret-copier.deckhouse.io/target-namespace-selector: "app=custom". В этом случае секрет будет скопирован только в пространства имён, соответствующие заданному селектору.