Стадия жизненного цикла модуля: Предварительная версия (preview)
У модуля есть требования для установки
v0.16.0
Ключевые изменения
- Добавлен белый список исходных IP-адресов клиентов на уровне экземпляра и маршрута — в дополнение к существующим белым спискам адресов TCP-соединений
- Аннотации белых списков IP-адресов и базовой аутентификации теперь применяются к объектам GRPCRoute
- Базовая аутентификация поддерживает хеши паролей bcrypt
Новый функционал
- Добавлен параметр
originalIPDetection.whitelistOriginalIPRangeдля ресурсов ALBInstance и ClusterALBInstance, разрешающий запросы только с перечисленных исходных IP-адресов клиентов. Исходный IP-адрес клиента — это адрес из заголовкаrealIPHeaderзапроса, пришедшего с адреса изsetRealIPFrom, а для любого другого запроса — адрес TCP-соединения, поэтому клиент, подключающийся напрямую, не может его подменить. Проверка выполняется независимо отacceptRequestsFromи базовой аутентификации, а запрос с другого исходного IP-адреса отклоняется с кодом403 - Добавлена аннотация
alb.network.deckhouse.io/whitelist-original-ip-rangeдля объектов HTTPRoute и GRPCRoute, заменяющаяoriginalIPDetection.whitelistOriginalIPRangeэкземпляра для маршрута - Аннотации
alb.network.deckhouse.io/whitelist-source-range,alb.network.deckhouse.io/basic-auth-secretиalb.network.deckhouse.io/satisfyтеперь применяются к объектам GRPCRoute так же, как к HTTPRoute. Для Secret в другом пространстве имён нужен ReferenceGrant от вида маршрута, поэтому ReferenceGrant от HTTPRoute не даёт доступ GRPCRoute - Базовая аутентификация, настроенная параметром
basicAuthэкземпляра или аннотациейalb.network.deckhouse.io/basic-auth-secret, принимает записи htpasswd bcrypt ($2a$,$2b$,$2y$) со стоимостью (cost) не выше 10 наряду с записями{SHA}. bcrypt требует много ресурсов процессора: успешные проверки кешируются, но каждая неудачная попытка стоит полной проверки на прокси, поэтому там, где маршрут доступен недоверенным клиентам, используйте{SHA}
Улучшения
- Admission webhook отклоняет объекты HTTPRoute и GRPCRoute, аннотация
alb.network.deckhouse.io/whitelist-source-rangeилиalb.network.deckhouse.io/whitelist-original-ip-rangeкоторых содержит значение, не являющееся IP-адресом или диапазоном CIDR; пустая аннотацияwhitelist-source-rangeпо-прежнему принимается - Интерактивный просмотр
pilot-discovery xds-debugпоказывает настройки фильтра базовой аутентификации и проверки IP-адресов источников (диапазоны адресов, режим satisfy, realm) вместо неизвестного типа, скрывая данные htpasswd - В описаниях параметра
acceptRequestsFromи аннотацииalb.network.deckhouse.io/whitelist-source-rangeуказано, что они сравниваются с адресом TCP-соединения, а не с заголовками запроса, и как они соотносятся с новыми белыми списками исходных IP-адресов клиентов
Исправления
- Аннотация
alb.network.deckhouse.io/whitelist-source-rangeбез корректных диапазонов больше не открывает маршрут для всех источников: такой маршрут теперь отклоняет запросы со всех адресов. Маршрут, сохранённый с такой аннотацией до обновления, начнёт отклонять все запросы, а изменить его можно будет только после исправления аннотации - Данные базовой аутентификации с переводами строк Windows (CRLF) или с повторяющимся пользователем больше не приводят к тому, что прокси отклоняет всё обновление конфигурации и продолжает работать с предыдущей; такие данные не используются, и маршрут или экземпляр отклоняет все запросы, пока данные не будут исправлены
- ListenerSet, удалённый после своих маршрутов, больше не остаётся в графе ресурсов Gateway API в Console, а ListenerSet без маршрутов теперь отображаются в нём
- Аннотация
alb.network.deckhouse.io/compressionтеперь поддерживает полеminContentLength— минимальный размер сжимаемого ответа в байтах (по умолчанию30). Envoy задаёт один размер для листенера — наибольший из указанных его маршрутами, поэтому маршрут, размер которого отличается от размера другого маршрута того же хоста, принимается с предупреждением - Интерактивный просмотр
pilot-discovery xds-debugбольше не завершается ошибкой при показе конфигурации Envoy, если у маршрута есть аннотацияalb.network.deckhouse.io/compression
v0.15.1
Исправления
- Аннотация
alb.network.deckhouse.io/compressionтеперь поддерживает полеminContentLength— минимальный размер сжимаемого ответа в байтах (по умолчанию30). Envoy задаёт один размер для листенера — наибольший из указанных его маршрутами, поэтому маршрут, размер которого отличается от размера другого маршрута того же хоста, принимается с предупреждением - Интерактивный просмотр
pilot-discovery xds-debugбольше не завершается ошибкой при показе конфигурации Envoy, если у маршрута есть аннотацияalb.network.deckhouse.io/compression
v0.15.0
Ключевые изменения
- Добавлены аннотации маршрутов
retriesиcompression - Контроллер продолжает валидацию ресурсов Gateway API, пока CRD Gateway API в кластере отличаются от поставляемых
- Исправлено завершение соединений при остановке пода прокси
Новый функционал
- Добавлена аннотация
alb.network.deckhouse.io/retriesдля объектов HTTPRoute и GRPCRoute, задающая число повторов, таймаут каждой попытки и ошибки, при которых запрос повторяется - Добавлена аннотация
alb.network.deckhouse.io/compressionдля объектов HTTPRoute, включающая сжатие ответов алгоритмомgzip,brotliилиzstd— тем, который поддерживает клиент - Добавлен параметр
envoyDrainTimeoutдля ресурсов ALBInstance и ClusterALBInstance, задающий время в секундах, в течение которого Envoy завершает соединения при остановке пода прокси или изменении листенера (от 1 до 240, по умолчанию45) - Добавлены поле
status.inletи колонка Inlet для ресурсов ALBInstance и ClusterALBInstance
Улучшения
- Пока CRD Gateway API в кластере отличаются от поставляемых, контроллер не блокирует свой запуск, а обслуживает валидирующие webhook, поэтому ресурсы Gateway API проходят валидацию, а не отклоняются; обрабатывать ресурсы контроллер начинает, как только CRD совпадут, а до тех пор сообщает о неготовности (NotReady)
- Резервные реплики контроллера поддерживают свои кэши в актуальном состоянии, поэтому реплика, ставшая ведущей, сразу начинает обрабатывать ресурсы
- Если контроллер не может прочитать Gateway маршрута, он определяет, относится ли Gateway к ALB, по ресурсам ALBInstance и ClusterALBInstance и предупреждает о пропущенных проверках
- Период корректного завершения подов прокси увеличен до 300 секунд, чтобы в него укладывалось завершение соединений
Исправления
- Исправлено завершение соединений — останавливаемый под прокси больше не ждёт окончания периода корректного завершения, так как соединение, которое агент держит открытым для сбора метрик Envoy, больше не считается активным
- Валидация теперь применяется только к маршрутам Gateway ALB — маршруты других Gateway больше не отклоняются и не получают предупреждений из-за аннотаций ALB
- Объекты TCPRoute и UDPRoute версии
v1alpha2больше не отклоняются валидацией - В ALBInstance больше не заполняются параметры
inlet.clusterIPиinlet.loadBalancerдля неиспользуемого типа инлета; незаданные порты обоих типов инлета —80и443
Обновления безопасности
- Coraza WAF обновлён до 3.8.1, закрыты уязвимости CVE-2026-41510, CVE-2026-41504 и CVE-2026-41508
v0.14.2
Исправления
- TLS-секрет по умолчанию
d8-alb/d8-default-gateway-tlsбольше не требует ReferenceGrant для ALBInstance вне пространства имёнd8-alb
v0.14.1
Исправления
- Исправлены аннотации auth-заголовков
v0.14.0
Ключевые изменения
- Добавлена поддержка аннотаций внешней аутентификации для объектов GRPCRoute
- Обновлён Envoy до 1.38.4
Новый функционал
- Добавлена поддержка аннотаций внешней аутентификации для объектов GRPCRoute (все аннотации
auth-*, кромеauth-signin) - Аннотация
auth-request-headersтеперь дополнительно формирует заголовкиX-Original-MethodиX-Auth-Request-Redirectдля подзапроса аутентификации, помимоX-Original-URL - Добавлена колонка AGE для ресурсов ALBInstance и ClusterALBInstance
Документация
- Обновлена документация
Зависимости
- Обновлён Envoy до 1.38.4
v0.13.0
Ключевые изменения
- Добавлены новые аннотации HTTPRoute для ограничения запросов по IP-адресу источника и балансировки нагрузки на upstream
Новый функционал
- Добавлены аннотации HTTPRoute для ограничения количества запросов в секунду по IP-адресу источника
- Добавлена аннотация HTTPRoute для выбора алгоритма балансировки нагрузки на upstream (round-robin или random)
Документация
- Обновлена документация
v0.12.0
Ключевые изменения
- Добавлены новые аннотации HTTPRoute для настройки параметров внешней аутентификации (заголовки и клиентский TLS)
Новый функционал
- Добавлены новые аннотации HTTPRoute для настройки параметров внешней аутентификации (заголовки и клиентский TLS)
Документация
- Обновлена документация
v0.11.1
Исправления
- Исправлена проблема HTTP/2 connection coalescing при использовании перекрывающихся сертификатов
- Валидация инстансов была немного смягчена для соответствия соглашениям Kubernetes
v0.11.0
Ключевые изменения
- Удалено автоматическое создание объектов ReferenceGrant
- Добавлена очистка ресурсов при отключении модуля
Новый функционал
- Добавлена очистка ресурсов при отключении модуля
Исправления
- Добавлены недостающие правила anti-affinity
- Обновлены запросы ресурсов по умолчанию
- Исправлена ошибка при использовании нескольких сертификатов для одного listener’а
Несовместимые изменения
- Удалено автоматическое создание объектов ReferenceGrant
Документация
- Обновлена документация
v0.10.0
Ключевые изменения
- Добавлена поддержка Inference Pool для маршрутизации LLM-трафика
- Модуль был переработан для предотвращения yaml-инъекций
Новый функционал
- Добавлена поддержка Inference Pool для маршрутизации LLM-трафика
Исправления
- Модуль был переработан для предотвращения yaml-инъекций
Документация
- Обновлена документация
v0.9.2
Исправления
- Gateway controller использует локальный (относительно модуля) образ kube-rbac-proxy
v0.9.1
Исправления
- Pod policy action для неймспейса модуля установлен в “warn” для исключения блокировок при обновлении подов
v0.9.0
Ключевые изменения
- Добавлен встроенный инструмент ingress2gateway, который можно включить в конфигурации модуля
Новый функционал
- Добавлен параметр
loadBalancerSourceRangesдля инлета LoadBalancer - Реализована валидация слушателей в gateway-controller
- Добавлены ресурсы SecurityPolicyException для соответствия профилю Restricted стандартов безопасности подов (Pod Security Standards, PSS)
Исправления
- Исправлена валидация слушателей
Документация
- Добавлен раздел о миграции
Зависимости
- Go обновлён до версии 1.26.6
v0.8.1
Документация
- Исправлены опечатки в документации
v0.8.0
Ключевые изменения
- Добавлен помощник миграции с Ingress на Gateway API: проверки HTTP-01 challenge от cert-manager для Gateway API проксируются во временные Ingress-объекты, обслуживаемые ingress-nginx
- Добавлены Prometheus-метрики и Grafana-дашборд для статистики GeoIP
- Введены ограничения Community Edition: создание ALBInstance недоступно в CE, ModSecurity в CE отключён
Новый функционал
- Добавлен сервер экспорта графа Gateway API для визуализации объектов в Console
- Реализованы настройки frontend и backend TLS для Gateway
- Добавлена поддержка пользовательского CA при загрузке баз GeoIP через geoproxy
- Ужесточена валидация ListenerSet для управляемых Gateway: порты HTTP/HTTPS/TLS должны совпадать с родительским Gateway; слушатели TCP/UDP запрещены
Исправления
- Исправлена работа Proxy Protocol при использовании дополнительных UDP-портов
Обновления безопасности
- Закрыты уязвимости (CVE)
Документация
- Обновлена документация
v0.7.6
Исправления
- Исправлен баг использования ExternalName сервисов в качестве бэкенда
v0.7.5
Исправления
- Исправлена сборка CSE
v0.7.4
Исправления
- Исправлена валидация HTTPRoute для маршрутов с одинаковым путём и разными условиями сопоставления
v0.7.3
Обновления безопасности
- Добавлен VEX-файл для уязвимости GO-2026-5932
- Закрыты другие уязвимости
v0.7.2
Ключевые изменения
- Добавлена валидация конфликтов маршрутов для HTTPRoute, GRPCRoute, TCPRoute, UDPRoute и TLSRoute
- Добавлена валидация ListenerSet на конфликты с привязанными маршрутами
Новый функционал
- Добавлена валидация конфликтов маршрутов, предотвращающая пересечение путей HTTPRoute, service/method у GRPCRoute, привязок TCPRoute и UDPRoute, а также hostname у TLSRoute в рамках одной секции Gateway или ListenerSet
- Добавлена валидация create/update для ListenerSet, отклоняющая изменения слушателей, которые приводят к конфликтам привязанных маршрутов
Документация
- Обновлена CRD-документация для изменений в валидации, связанных с ListenerSet
v0.7.1
Ключевые изменения
- Добавлен недостающий loadBalancerClass параметр
Исправления
- Добавлен недостающий loadBalancerClass параметр
v0.7.0
Ключевые изменения
- Добавлена поддержка UDPRoutes
- Добавлены changelogs
- Обновлены CRDs Gateway API
Новый функционал
- Добавлена поддержка UDPRoutes
- Добавлены changelogs
Зависимости
- CRDs Gateway API обновлены до 1.6
v0.6.0
Ключевые изменения
- Добавлен graceful shutdown для proxy
- Обновлены версии Envoy и Istio
- Исправлен приоритет аннотации admission webhook
Новый функционал
- Добавлен graceful shutdown для proxy — после получения SIGTERM/SIGKILL proxy ещё 60 секунд продолжают работать в штатном режиме. В этот период endpoint /healthz возвращает 503, сигнализируя балансировщику нагрузки, что трафик нужно увести с экземпляра. Через 60 секунд proxy завершаются как обычно: соединения дренируются, процесс останавливается.
Исправления
- Исправлен приоритет аннотации admission webhook в соответствии с актуальными требованиями DKP
- Исправлены тесты и документация
Зависимости
- Версии Envoy и Istio обновлены до 1.38.3 и 1.30.2 соответственно
v0.5.0
Ключевые изменения
- Аннотация backend TLS settings теперь поддерживает Kubernetes Secrets
- Аннотации изменения заголовков поддерживают группы захвата regex
- Добавлена аннотация proxy-buffer-size
- Добавлены логи и метрики TCP и TLS
Новый функционал
- Аннотация backend TLS settings теперь поддерживает Kubernetes Secrets, чтобы backend можно было открывать по TLS с данными из Kubernetes Secret
- Аннотации изменения заголовков теперь поддерживают группы захвата regex, чтобы значение HTTP-заголовка можно было собирать на основе параметра Path
- Добавлена аннотация proxy-buffer-size для ограничения размера upstream HTTP-заголовков
- Добавлены логи и метрики TCP и TLS для улучшения observability
v0.4.4
Ключевые изменения
- Исправлены права RBAC
Исправления
- Исправлены права RBAC
v0.4.3
Ключевые изменения
- Ослаблена валидация портов в CRD ALB
Улучшения
- Ослаблена валидация портов в CRD ALB, чтобы можно было задавать чистую схему TCP load balancing (без портов http/https)
v0.4.2
Ключевые изменения
- Отключено автоопределение TLS
- Исправлен процесс выбора default gateway
Исправления
- Исправлен процесс выбора default gateway
Несовместимые изменения
- Отключено автоопределение TLS, унаследованное от Istio.
v0.4.1
Ключевые изменения
- Исправлен жизненный цикл Gateway
Исправления
- Исправлено удаление default gateway из ConfigMap: при удалении default Deckhouse gateway DKP удаляет связанные ресурсы.
v0.4.0
Ключевые изменения
- Вспомогательные сокеты proxy перенесены на localhost
Улучшения
- Вспомогательные сокеты proxy перенесены на localhost, чтобы не раскрывать лишнюю информацию
Документация
- Обновлена документация
v0.3.0
Ключевые изменения
- Добавлена аннотация idle-timeout
- Патчи безопасности (CVE) в зависимостях
Новый функционал
- Добавлена аннотация idle-timeout для управления временем, в течение которого открытая сессия может оставаться активной без обмена пакетами
Обновления безопасности
- Применены патчи безопасности (CVE)
v0.2.5
Ключевые изменения
- Добавлена процедура очистки gateway
Новый функционал
- Добавлена процедура очистки gateway для улучшения жизненного цикла Gateway.
v0.2.4
Ключевые изменения
- Исправлена обработка аннотации backend-tls-settings при перезапуске backend
Исправления
- Исправлена аннотация backend-tls-settings при перезапуске backend. Ранее она иногда ломалась при перезагрузке конфигурации.
Документация
- Обновлена документация
v0.2.3
Ключевые изменения
- Исправлены точки монтирования proxy в контейнерах
Исправления
- Исправлены точки монтирования в контейнерах proxy
v0.2.2
Ключевые изменения
- Добавлена упаковка редакции CSE
Новый функционал
- Добавлена упаковка редакции CSE
v0.2.0
Ключевые изменения
- Добавлена поддержка Web Application Firewall (ModSecurity)
- Добавлен экспорт трассировки OpenTelemetry (OTLP)
- Обновлён Envoy до 1.37.3
- Поддержка базы данных GeoIP расширена параметром лицензии
Новый функционал
- Добавлена поддержка Web Application Firewall (ModSecurity) на базе проекта Coraza WAF
- Добавлены параметры экспорта трассировки OpenTelemetry (OTLP)
- В настройки базы данных GeoIP добавлен параметр лицензии, чтобы модуль мог самостоятельно загружать базы GeoIP
Улучшения
- Сокращены слишком длинные имена и метки генерируемых ресурсов
- Улучшен Grafana-дашборд для Envoy
Исправления
- Исправлены предварительные проверки версии CRD
Документация
- Добавлено описание поддержки HTTP/3
Зависимости
- Обновлён Envoy до 1.37.3
v0.1.0
Ключевые изменения
- Логика whitelist, basic auth и satisfy объединена в одном auth-плагине
- Добавлена предварительная проверка версии CRD в gateway-контроллере
- Настройки управления ресурсами для контроллера
Новый функционал
- Добавлен auth-плагин, объединяющий whitelist, basic auth и логику satisfy через аннотацию
- Добавлена предварительная проверка версии CRD в gateway-контроллере: проверяется, что CRD в кластере соответствуют требованиям ALB
- Добавлены настройки управления ресурсами для контроллера
Улучшения
- Оптимизирована сборка контейнерных образов для снижения использования кэша и размера образов
- Выполнен рефакторинг внутренних компонентов
Документация
- Обновлена документация
v0.0.0
Ключевые изменения
- Первый релиз модуля ALB на Gateway API 1.5
- В ALB-контроллер добавлена поддержка базы данных GeoIP
- Добавлены интеграция sidecar Istio и поддержка PROXY protocol
- Добавлены глобальные настройки basic-аутентификации и IP whitelist
- Добавлен режим Vertical Pod Autoscaler для контроллеров
Новый функционал
- В ALB-контроллер добавлена поддержка базы данных GeoIP
- Добавлены валидации ListenerSet
- Реализованы фильтры extension reference
- Добавлена аннотация service-upstream для доступа к backend через Kubernetes Service
- Включена интеграция sidecar Istio, если включён модуль Istio
- Добавлена аннотация tls-disable-protocol для настройки доступа к backend по TLS
- Добавлены расширенные гистограммные метрики запросов
- Добавлен резервный TLS-сертификат, который предъявляется по умолчанию, если сертификат приложения недоступен
- Добавлена аннотация hash-key для настройки affinity сессии при доступе к backend
- Добавлена аннотация proxy-body-size
- Добавлена поддержка заголовков ответа аутентификации для схемы авторизации Dex
- Реализована функция default Deckhouse gateway для обнаружения шлюза по умолчанию
- Добавлена аннотация affinity сессии на основе cookie
- Добавлены глобальные настройки basic-аутентификации
- Добавлена поддержка PROXY protocol для ClusterALBInstance/ALBInstance
- Добавлена конфигурация access-логирования по умолчанию
- Добавлена аннотация IP whitelist
- Добавлена настройка уровня логирования proxy
- Добавлена аннотация limit-rps
- Добавлена аннотация request-body-buffer-limit
- Добавлена аннотация URL rewrite
- Добавлена поддержка нескольких TLS-сертификатов на listener
- Реализован режим управления ресурсами Vertical Pod Autoscaler
- Добавлен Grafana-дашборд для proxy
Улучшения
- Обновлены метрики Grafana-дашборда
- Добавлено предупреждение при наличии нескольких default ALB Istio instance
- Улучшена валидация имени default gateway
- Базовый образ proxy переведён на distroless
Исправления
- Исправлены незначительные ошибки
- Исправлена повторная авторизация Dex за счёт принудительного HTTP/1.1 в Istiod
- Исправлена валидация пересечения gateway
- Исправлен сбой Pilot при запуске
- Исправлены ресурсы дашбордов мониторинга
- Исправлен сбой Envoy proxy
- Исправлены определения CRD
Зависимости
- Обновление до Gateway API 1.5