Стадия жизненного цикла модуля: Experimental
У модуля есть требования для установки
v1.0.4
Дата релиза: 2026-08-18
Исправлен дедлок обновления: контроллер не мог опубликовать конфиг gateway, а Deployment gateway не мог раскатиться.
Ключевые изменения
Изменения в этом релизе:
- Контроллер снова может публиковать конфиг Vector для gateway — его собственная валидация никогда не могла завершиться на реальных кластерах.
- Deployment gateway теперь раскатывается на кластерах, где системных узлов столько же, сколько реплик, а не застревает на поде в Pending.
- Назначение с нерезолвящимся credential больше не роняет весь конфиг gateway.
- Метрики reloader’а переименованы, чтобы не пересекаться с метриками log-shipper.
Улучшения
В этом релизе улучшено:
- Новый параметр
controller.vectorValidateTimeout(по умолчанию60s) — таймаут запускаvector validate, который контроллер выполняет перед публикацией конфига gateway. - Новые алерты:
D8SecurityEventsManagerControllerConfigNotPublished,D8SecurityEventsManagerDestinationCredentialMissingиD8SecurityEventsManagerControllerValidateUnavailable. Раньше контроллер мог сколь угодно долго не публиковать конфиг, и ни один алерт при этом не срабатывал.
Исправления
В этом релизе исправлено:
- Контроллер больше не замораживает опубликованный конфиг gateway. Его шаг
vector validateвыполнялся с таймаутом 10s в контейнере с лимитом 64Mi и погибал либо по дедлайну, либо от OOM, а сбой трактовался как вердикт «конфиг невалиден» — из-за чего Secret навсегда оставался на прежней ревизии. Теперь валидация запускается с--no-environment(около 2 секунд вместо 5 на конфиге в 256 КБ, без построения топологии и походов по сети), пол по памяти контейнера — 192Mi, таймаут по умолчанию — 60s, а невозможность выполнить проверку больше не блокирует публикацию: конфиг в любом случае валидирует reloader в gateway. - Deployment gateway использует
maxSurge: 0/maxUnavailable: 1. При стандартном surge обновление gateway с двумя репликами запрашивало третий под, а обязательная anti-affinity по узлу оставляла его в Pending навсегда на кластере с двумя системными узлами: модуль рапортовал Deployed, продолжая работать на предыдущем образе. - ClusterSecurityEventDestination, объявивший credential, который контроллер не смог зарезолвить, теперь блокирует публикацию и сообщает конкретное назначение и поле, вместо того чтобы отдать блок
authбез токена. Vector такой блок не принимает, из-за чего весь конфиг gateway переставал загружаться и доставка прекращалась во все назначения сразу, а не только в проблемное. Покрыты Loki, Elasticsearch, Splunk HEC и Kafka SASL. auth.strategy: None(значение по умолчанию в CRD) больше не попадает в сгенерированный конфиг как{"strategy": "none"}, которое Vector не принимает.- У Deployment контроллера появился nodeSelector на
system-узлы; раньше его не было вовсе, и контроллер мог уехать на worker-узел. - CI-тест валидации Vector проверяет тот
defaults.json, который реально едет в образе gateway, а не написанный вручную аналог.
Несовместимые изменения
Изменения, влияющие на обратную совместимость:
- Метрики reloader’а переименованы с префиксом
security_events_manager_gateway_:vector_config_validation_error,vector_config_apply_failures_total,vector_config_periodic_retry_attempts_total,vector_config_reloads_success_total,vector_config_last_reload_success_timestamp_seconds,reloader_validate_duration_seconds,reloader_validate_timeout_seconds,reloader_apply_duration_seconds,reloader_vector_restarts_total,reloader_fsnotify_events_total. Старые имена совпадали с метриками vector-reloader из log-shipper, чьи правила не фильтруют по namespace, поэтому проблемы этого модуля поднимали алертD8LogShipperConfigInvalid. Правила, дашборды и документация модуля обновлены; собственные recording-правила, алерты и панели на старых именах нужно поправить. - Переменная окружения
CONTROLLER_VECTOR_VALIDATE_SKIP_ABOVE_BYTESудалена. Её порог в 256 КиБ находился чуть выше реального размера конфига, из-за чего валидация могла пропускаться случайно, а не намеренно; случай, ради которого она вводилась, теперь покрыт поведением fail-open. - В версии v1.0.3 значение
minimalSeverityпо умолчанию сменилось сMediumнаLowбез записи в release notes. Кластеры, обновляющиеся с v1.0.0 и ранее, отправляют заметно больше событий, что накладывается на дисковые буферы по умолчанию, появившиеся в той же версии. Если нужен прежний объём, задайте значение явно.
Рекомендации по обновлению
Перед обновлением учтите следующее:
- Пол по памяти контейнера контроллера поднимается с 64Mi до 192Mi (потолок VPA — с 256Mi до 512Mi). Столько нужно
vector validate, чтобы отработать вообще; ниже контейнер убивает OOM прямо посреди валидации.
v1.0.3
Дата релиза: 2026-08-17
Настройка буферов gateway, плагины обогащения, SecretRef для назначений, CEF/Socket sink и усиление безопасности API Vector и RBAC контроллера.
Ключевые изменения
Изменения в этом релизе:
- Настраиваемые Disk-буферы для слоёв gateway и log-shipper, с переопределением на назначение.
- Плагины обогащения (
k8s-pod-info,k8s-container-info,k8s-nodeuser-info) черезClusterSecurityEventEnrichmentPlugin. - Учётные данные назначений можно брать из Secret вместо открытого текста в CR.
- Кодирование CEF и назначения Socket для интеграции с SIEM.
- API gateway на loopback; ужесточены RBAC для Secret и проверка SSRF для enrichment endpoint.
Новый функционал
В этом релизе добавлено:
- Параметры буфера
gateway.bufferиgateway.logShipperBufferв значениях модуля; переопределение черезspec.bufferв ClusterSecurityEventDestination; по умолчанию Disk + Block;maxSize— Kubernetes quantity с суффиксом единицы (например512Mi). - Событие
K8S_ADMISSION_POLICY_DENIEDдля отказов admission-policy-engine в audit-логе Kubernetes. - CRD
ClusterSecurityEventEnrichmentPluginдля встроенных Internal enrichment-плагинов сайдкараenrichment-cache(External в схеме есть, в контроллере пока нет). - Плагины обогащения
k8s-pod-info,k8s-container-infoиk8s-nodeuser-info. - Поля
tokenSecretRefиpasswordSecretRefв ClusterSecurityEventDestination для Loki, Elasticsearch, Kafka SASL и Splunk HEC; встроенныйcluster-lokiхранит токен в Secret. - Кодирование CEF для Kafka, Vector, File и Console (
encoding.codec: CEF), опциональная syslog-обёртка и метаданные CEF черезspec.cef/ значения модуля. - Тип назначения Socket (TCP/UDP/Unix) для CEF-over-syslog в SIEM.
Исправления
В этом релизе исправлено:
- Исправлен алерт
D8SecurityEventsManagerControllerReconcileErrorsHigh. - Параметр
gateway.reloaderValidateTimeoutзадаёт таймаутvector validate(по умолчанию 120s). - TLS Secret в
d8-log-shipperудаляются вместе с SecurityEventDefinition. - Ошибки разрешения credential Secret пишутся в warning с путём поля.
- Watcher credential Secret фильтрует по лейблу
security-events-manager.deckhouse.io/credential-secret: true. - Reloader
SaveTo()пишет конфиг Vector с правами0600. resolveDestinationSecretRefs()возвращает глубокую копию объекта CSED.- Lua
extractJSONвозвращает nil и пишет ошибку, еслиcjsonнедоступен. - В комментарии enrichment-cache исправлен порт (9260 → 9261).
- E2E-триггеры для
K8S_CLUSTERROLEBINDING_DELETEDиK8S_CONFIGMAP_MODIFIEDсоздают тестовый namespace и учитывают 404 при удалении CRB. - Ресурсы контроллера получают лейбл
heritage: deckhouse.
Обновления безопасности
Обновления безопасности в этом релизе:
- Устранены CVE в образах модуля.
- API gateway Vector слушает только
127.0.0.1:8686; порт 8686 убран из Service. - Приватный ключ mTLS-клиента хранится в Secret в
d8-log-shipper, а не в ClusterLogDestination. - RBAC Secret ограничен неймспейсами
d8-security-events-managerиd8-log-shipper. - CEL блокирует SSRF для
spec.endpoint.urlв ClusterSecurityEventEnrichmentPlugin. - Secret
gateway-vector-configпомеченsecurity.deckhouse.io/contains-credentials: true.
Несовместимые изменения
Изменения, влияющие на обратную совместимость:
- Форма
enrichв shipper:plugin— свободная строка;args— упорядоченный массив{key,value}; имена плагинов с дефисами (k8s-pod-info). Старые CR с прежней формой не парсятся; Plugin-обогащение раньше не работало. spec.splunkHEC.tokenнеобязателен при заданномtokenSecretRef.- CEL запрещает одновременное использование inline
token/passwordи соответствующих*SecretRefв ClusterSecurityEventDestination.
v1.0.0
Дата релиза: 2026-06-26
Первичный релиз модуля security-events-manager.
Ключевые изменения
Изменения в этом релизе:
- Первый публичный релиз модуля.