Стадия жизненного цикла модуля: Предварительная версия (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