Стадия жизненного цикла модуля: Общедоступная версия

У модуля есть требования для установки

Deckhouse Platform устанавливает CRD, но не удаляет их при отключении модуля. Если вам больше не нужны созданные CRD, удалите их.

IngressNginxController

Область: Cluster

  • spec
    объект
    • spec.acceptRequestsFrom
      массив строк

      Список адресов в формате CIDR, которым разрешен доступ к контроллеру.

      Независимо от инлета всегда проверяется непосредственный адрес (поле original_address в логах), с которого производится подключение, а не адрес клиента, который может передаваться в некоторых инлетах через заголовки или с использованием proxy protocol.

      Параметр реализован с помощью map module. Если адрес, с которого производится подключение, не разрешен, nginx закрывает соединение, отправляя код 444).

      По умолчанию к контроллеру можно подключаться с любых адресов.

      • spec.acceptRequestsFrom.Элемент массива
        строка

        Шаблон: ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\/(3[0-2]|[1-2][0-9]|[0-9]))$

    • spec.additionalHeaders
      объект

      Дополнительные заголовки, которые будут добавлены к каждому запросу.

      Указываются в формате ключ: значение(строка).

    • spec.additionalLogFields
      объект
      Дополнительные поля, которые будут добавлены в логи nginx. Указываются в формате ключ: значение(строка).
    • spec.annotationValidationEnabled
      булевый
      Включает валидацию аннотаций Ingress-правил.

      По умолчанию: false

    • spec.chaosMonkey
      булевый

      Инструмент, позволяющий систематически вызывать случайные прерывания работы подов контроллера.

      Предназначен для проверки Ingress-контроллера на реальную работу отказоустойчивости.

      По умолчанию: false

    • spec.config
      объект

      Секция настроек Ingress-контроллера, в которую в формате ключ: значение(строка) можно записать любые возможные опции.

      Ошибка в опциях может привести к неработоспособности Ingress-контроллера.

      Используйте опцию с осторожностью, поскольку обратная совместимость и работоспособность Ingress-контроллера не гарантируются.

    • spec.controllerLogLevel
      строка
      Определяет уровень логирования для журналов Ingress-контроллера.

      По умолчанию: Info

      Допустимые значения:

      Error — Only critical errors will be logged.
      Warn — Warnings and errors will be logged.
      Info — Informational messages, including basic debugging information.
      Extended — Extended information about changes in system state.
      Debug — Verbose debugging output, potentially very noisy.
      Trace — Trace-level logs with detailed step-by-step context.

    • spec.controllerPodsAdditionalAnnotations
      объект

      Дополнительные пользовательские аннотации для подов Ingress-контроллера.

      Используйте параметр с осторожностью, поскольку обратная совместимость и работоспособность Ingress-контроллера при использовании параметра не гарантируются.

    • spec.controllerVersion
      строка

      Версия Ingress NGINX Controller.

      По умолчанию используется версия из настроек модуля. Поддерживаемые версии: 1.10, 1.12, 1.14, 1.15.

      Допустимые значения: 1.10, 1.12, 1.14, 1.15

    • spec.customErrors
      объект

      Секция с настройкой кастомизации HTTP-ошибок.

      Если секция указана в настройках, все параметры в ней являются обязательными.

      Изменение любого параметра приводит к перезапуску всех Ingress-контроллеров.

      • spec.customErrors.codes
        массив строк

        Обязательный параметр

        Список кодов ответа (массив), при которых запрос будет перенаправляться на кастомный бэкенд.
        • spec.customErrors.codes.Элемент массива
          строка

          Шаблон: ^[1-5][0-9][0-9]$

      • spec.customErrors.namespace
        строка

        Обязательный параметр

        Название пространства имён, в котором будет находиться сервис, используемый в качестве кастомного бэкенда по умолчанию.

        Максимальная длина: 63

        Шаблон: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$

        Пример:

        namespace: default
        
      • spec.customErrors.serviceName
        строка

        Обязательный параметр

        Имя сервиса, который будет использоваться в качестве кастомного бэкенда по умолчанию.

        Максимальная длина: 63

        Шаблон: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$

        Пример:

        serviceName: custom-errors-backend-service
        
    • spec.defaultSSLCertificate
      объект

      Сертификат, который используется:

      • при запросах на catch-all-сервер (подразумевается директива server nginx). На catch-all-сервер попадают запросы, для которых нет соответствующего Ingress-ресурса;
      • для Ingress–ресурсов, в которых не задан secretName в секции tls.

      По умолчанию используется самоподписанный сертификат.

      Внимание. Параметр не влияет на сертификаты, используемые в Ingress-ресурсах модулей Deckhouse. Чтобы указать сертификат для Ingress-ресурсов модулей Deckhouse, используйте глобальный параметр modules.https.customCertificate.

      • spec.defaultSSLCertificate.secretRef
        объект
        Ссылка на Secret для передачи Ingress-контроллеру.
        • spec.defaultSSLCertificate.secretRef.name
          строка
          Имя Secret, содержащего SSL–сертификат.

          Шаблон: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$

        • spec.defaultSSLCertificate.secretRef.namespace
          строка
          Название пространства имён, в котором находится Secret с SSL-сертификатом.

          По умолчанию: d8-ingress-nginx

          Шаблон: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$

    • spec.disableHTTP2
      булевый
      Выключает HTTP/2.

      По умолчанию: false

    • spec.enableHTTP3
      булевый

      Включает HTTP/3.

      HTTP/3 нельзя включить, если выбран инлет HostPortWithProxyProtocol или LoadBalancerWithProxyProtocol.

      В случае инлета HostWithFailover HTTP/3 включается только для основного контроллера; резервный контроллер всегда работает без HTTP/3.

      По умолчанию: false

    • spec.enableIstioSidecar
      булевый

      Добавляет к подам контроллера аннотации для автоматического инжекта сайдкаров Istio.

      При включении этого параметра к подам Ingress-контроллера добавляются аннотации sidecar.istio.io/inject: "true" и traffic.sidecar.istio.io/includeOutboundIPRanges: "<Service CIDR>". При создании таких подов к ним автоматически будут добавлены сайдкары Istio с помощью mutating webhook. После этого весь трафик в сторону Service CIDR будет перехватываться сайдкаром.

      Чтобы воспользоваться этой функцией, добавьте аннотации в прикладные Ingress-ресурсы:

      • nginx.ingress.kubernetes.io/service-upstream: "true" — с этой аннотацией Ingress-контроллер будет отправлять запросы на ClusterIP сервиса (из диапазона Service CIDR) вместо того, чтобы слать их напрямую в поды приложения. Сайдкар istio-proxy перехватывает трафик только в сторону диапазона Service CIDR, остальные запросы отправляются напрямую;
      • nginx.ingress.kubernetes.io/upstream-vhost: myservice.myns.svc — с данной аннотацией сайдкар сможет идентифицировать прикладной сервис, для которого предназначен запрос.

      Внимание. Данный параметр не может быть включен, если инлет Ingress-контроллера установлен в значение HostWithFailover.

    • spec.geoIP2
      объект
      Опции для включения GeoIP2.
      • spec.geoIP2.maxmindAccountID
        целое число

        Идентификатор учетной записи MaxMind, используемый для аутентификации загрузки базы данных GeoIP2.

        Требуется, когда указан maxmindLicenseKey. Если задан maxmindAccountID, загрузка выполняется официальной библиотекой geoipupdate, что позволяет пропускать неизменённые обновления и экономить лимит лицензии.

        Допустимые значения: 1 <= X

      • spec.geoIP2.maxmindEditionIDs
        массив строк

        Список ревизий баз данных, которые будут скачаны при старте.

        Подробнее о базах данных GeoLite — в статье в блоге MaxMind.

        По умолчанию: [ "GeoLite2-City", "GeoLite2-ASN" ]

        • spec.geoIP2.maxmindEditionIDs.Элемент массива
          строка

          Допустимые значения: GeoIP2-Anonymous-IP, GeoIP2-Country, GeoIP2-City, GeoIP2-Connection-Type, GeoIP2-Domain, GeoIP2-ISP, GeoIP2-ASN, GeoLite2-ASN, GeoLite2-Country, GeoLite2-City

      • spec.geoIP2.maxmindLicenseKey
        строка

        Лицензионный ключ для скачивания базы данных GeoIP2.

        При наличии ключа в конфигурации база GeoIP2 скачивается при каждом старте контроллера.

        Подробнее о получении ключа — в статье в блоге MaxMind.

        Шаблон: ^[^\r\n]+$

      • spec.geoIP2.maxmindMirror
        объект

        Настройки зеркала для скачивания баз GeoIP.

        Если параметр не указан или имеет пустое значение, то по умолчанию будет использоваться https://download.maxmind.com.

        Пример корректного URL: https://mirror.local/GeoLite2-City.tar.gz.

        Если зеркало используется для хранения предзагруженных архивов, параметр licenseKey можно не указывать.

        • spec.geoIP2.maxmindMirror.ca
          строка
          Пользовательский корневой сертификат в формате PEM для проверки TLS-соединения с зеркалом.

          Максимальная длина: 65536

          Пример:

          ca: |
            -----BEGIN CERTIFICATE-----
            ...
            -----END CERTIFICATE-----
          
        • spec.geoIP2.maxmindMirror.insecureSkipVerify
          булевый
          Отключает проверку TLS сертификатов зеркала, например, если используется самоподписанный сертификат.
        • spec.geoIP2.maxmindMirror.url
          строка

          Обязательный параметр

          URL для скачивания баз GeoIP.

          Максимальная длина: 2048

          Шаблон: ^https?://[^\r\n]+$

          Примеры:

          url: https://mirror.local
          
          url: absolute path https://mirror.local/GeoLite2-City.tar.gz
          
    • spec.hostPort
      объект
      Секция настроек инлета HostPort.
      • spec.hostPort.acceptClientIPHeadersFrom
        массив строк
        Определяет список доверенных подсетей в формате CIDR, запросы от которых содержат корректные заголовки X-Forwarded-*/ProxyProtocol.

        По умолчанию: [ "0.0.0.0/0" ]

        Пример:

        acceptClientIPHeadersFrom: 192.168.0.0/24
        
        • spec.hostPort.acceptClientIPHeadersFrom.Элемент массива
          строка

          Шаблон: ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\/(3[0-2]|[1-2][0-9]|[0-9]))$

      • spec.hostPort.behindL7Proxy
        булевый

        Включает обработку и передачу заголовков X-Forwarded-*.

        Внимание. Перед использованием этой опции убедитесь, что запросы к Ingress направляются только от доверенных источников. Для настройки ограничений воспользуйтесь параметром acceptRequestsFrom.

      • spec.hostPort.httpPort
        целое число

        Порт для небезопасного подключения по HTTP.

        Если параметр не указан, подключение по HTTP невозможно.

        Параметр обязателен в случае, если не задан httpsPort.

        Пример:

        httpPort: 80
        
      • spec.hostPort.httpsPort
        целое число

        Порт для безопасного подключения по HTTPS.

        Если параметр не указан, подключение по HTTPS невозможно.

        Параметр обязателен в случае, если не задан httpPort.

        Пример:

        httpsPort: 443
        
      • spec.hostPort.realIPHeader
        строка

        Заголовок, из которого будет получен настоящий IP-адрес клиента.

        Работает только при включенной опции behindL7Proxy.

        По умолчанию: X-Forwarded-For

        Шаблон: ^[A-Za-z0-9][A-Za-z0-9._-]*[A-Za-z0-9]$|^[A-Za-z0-9]$

        Пример:

        realIPHeader: CF-Connecting-IP
        
    • spec.hostPortWithProxyProtocol
      объект
      Секция настроек инлета HostPortWithProxyProtocol.
      • spec.hostPortWithProxyProtocol.acceptClientIPHeadersFrom
        массив строк
        Определяет список доверенных подсетей в формате CIDR, запросы от которых содержат корректные заголовки X-Forwarded-*/ProxyProtocol.

        По умолчанию: [ "0.0.0.0/0" ]

        Пример:

        acceptClientIPHeadersFrom: 192.168.0.0/24
        
        • spec.hostPortWithProxyProtocol.acceptClientIPHeadersFrom.Элемент массива
          строка

          Шаблон: ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\/(3[0-2]|[1-2][0-9]|[0-9]))$

      • spec.hostPortWithProxyProtocol.behindL7Proxy
        булевый

        Включает совместную обработку заголовков X-Forwarded-* и Proxy Protocol.

        Используйте эту опцию для цепочки прокси, в которой L7-прокси передаёт адрес клиента в HTTP-заголовке, а расположенный после него L4-балансировщик использует Proxy Protocol.

        Внимание. Эта опция не поддерживается контроллерами версий 1.10 и 1.12. Используйте контроллер версии 1.14 или 1.15.

        Внимание. Укажите в acceptClientIPHeadersFrom CIDR всех доверенных промежуточных прокси. Значение по умолчанию 0.0.0.0/0 разрешает доверять заголовкам от любого адреса и допускает подмену IP клиента, если Ingress-контроллер доступен в обход L7-прокси.

      • spec.hostPortWithProxyProtocol.httpPort
        целое число

        Порт для небезопасного подключения по HTTP.

        Если параметр не указан, подключение по HTTP невозможно.

        Параметр обязателен в случае, если не задан httpsPort.

        Пример:

        httpPort: 80
        
      • spec.hostPortWithProxyProtocol.httpsPort
        целое число

        Порт для безопасного подключения по HTTPS.

        Если параметр не указан, подключение по HTTPS невозможно.

        Параметр обязателен в случае, если не задан httpPort.

        Пример:

        httpsPort: 443
        
      • spec.hostPortWithProxyProtocol.realIPHeader
        строка

        Заголовок, из которого будет получен настоящий IP-адрес клиента.

        Работает только при включённой опции behindL7Proxy.

        По умолчанию: X-Forwarded-For

        Шаблон: ^[A-Za-z0-9][A-Za-z0-9._-]*[A-Za-z0-9]$|^[A-Za-z0-9]$

        Пример:

        realIPHeader: CF-Connecting-IP
        
    • spec.hostPortWithSSLPassthrough
      объект
      Секция настроек инлета HostPortWithSSLPassthrough.
      • spec.hostPortWithSSLPassthrough.httpPort
        целое число

        Порт для небезопасного подключения по HTTP.

        Если параметр не указан, подключение по HTTP невозможно.

        Параметр обязателен в случае, если не задан httpsPort.

        Пример:

        httpPort: 80
        
      • spec.hostPortWithSSLPassthrough.httpsPort
        целое число

        Порт для безопасного подключения по HTTPS.

        Если параметр не указан, подключение по HTTPS невозможно.

        Параметр обязателен в случае, если не задан httpPort.

        Пример:

        httpsPort: 443
        
    • spec.hsts
      булевый

      Включает использование заголовков ответа HTTP Strict-Transport-Security (HSTS).

      Подробнее о заголовках HSTS — в статье на портале MDN Web Docs.

      По умолчанию: false

    • spec.hstsOptions
      объект
      Параметры HSTS.
      • spec.hstsOptions.includeSubDomains
        булевый
        Применяет настройки HSTS ко всем поддоменам сайта.

        По умолчанию: false

      • spec.hstsOptions.maxAge
        строка
        Время в секундах, в течение которого браузер помнит, что сайт доступен только с помощью HTTPS.

        По умолчанию: 31536000

        Шаблон: ^[1-9][0-9]*$

        Пример:

        maxAge: '31536000'
        
      • spec.hstsOptions.preload
        булевый

        Добавляет сайт в список предзагрузки.

        Список указывает браузерам, что подключение к перечисленным сайтам должно осуществляться только по HTTPS.

        По умолчанию: false

    • spec.ingressClass
      строка

      Имя Ingress-класса для обслуживания Ingress NGINX Controller.

      Позволяет создать несколько контроллеров для обслуживания одного Ingress-класса.

      Если указать значение nginx, дополнительно будут обрабатываться Ingress-ресурсы без аннотации kubernetes.io/ingress.class или поля spec.ingressClassName.

      По умолчанию: nginx

      Шаблон: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$

      Пример:

      ingressClass: nginx
      
    • spec.inlet
      строка

      Обязательный параметр

      Способ приема трафика из внешней сети. Изменение установленного способа невозможно.

      Возможные значения:

      • LoadBalancer — устанавливается Ingress-контроллер, и заказывается сервис с типом LoadBalancer;

      • LoadBalancerWithProxyProtocol — устанавливается Ingress-контроллер, и заказывается сервис с типом LoadBalancer. Ingress-контроллер использует proxy-protocol для получения настоящего IP-адреса клиента;

        Важно. HTTP/3 (enableHTTP3) нельзя включать с этим инлетом, так как QUIC несовместим с PROXY protocol.

      • LoadBalancerWithSSLPassthrough — устанавливается Ingress-контроллер, и заказывается сервис с типом LoadBalancer. Этот инлет включает функцию SSL Passthrough, которая позволяет настроить бэкенды на приём SSL-трафика напрямую, без терминации на Ingress-контроллере.

        Функция SSL Passthrough реализована путем перехвата всего трафика на настроенном HTTPS-порту (по умолчанию: 443) и передачи его локальному TCP-прокси. Это полностью обходит NGINX и приводит к существенному снижению производительности.

        Протокол SSL Passthrough использует Server Name Indication (SNI) и считывает данные о виртуальном домене из протокола согласования TLS, для чего требуется подходящий клиент.

        Если имя хоста не совпадает с запрошенным именем хоста, запрос передается в NGINX на настроенный SSL Passthrough прокси-порт (по умолчанию: 442), который затем передает запрос серверу по умолчанию.

        В отличие от HTTP-бэкендов, трафик для SSL Passthrough бэкендов отправляется на ClusterIP, а не на отдельные эндпоинты.

        Поскольку SSL Passthrough работает на 4 уровне модели OSI (TCP), а не на уровне 7 (HTTP), использование SSL Passthrough делает невозможным использование всех остальных аннотаций, установленных для Ingress.

      • HostPort — устанавливается Ingress-контроллер, который доступен на портах узлов через hostPort;

      • HostPortWithProxyProtocol — устанавливается Ingress-контроллер, который доступен на портах узлов через hostPort и использует proxy-protocol для получения настоящего IP-адреса клиента.

        Важно. Перед использованием этого инлета убедитесь, что запросы к Ingress будут направляться только от доверенных источников. Для настройки ограничений воспользуйтесь параметром acceptRequestsFrom.

        Важно. HTTP/3 (enableHTTP3) нельзя включать с этим инлетом, так как QUIC несовместим с PROXY protocol.

      • HostPortWithSSLPassthrough — устанавливается Ingress-контроллер, который доступен на портах узлов через hostPort. Этот инлет включает функцию SSL Passthrough, которая позволяет настроить бэкенды на приём SSL-трафика напрямую, без терминации на Ingress-контроллере.

        Укажите параметры работы инлета в секции spec.HostPortWithSSLPassthrough.

        Протокол SSL Passthrough использует SNI и считывает данные о виртуальном домене из протокола согласования TLS, для чего требуется подходящий клиент.

        Если имя хоста не совпадает с запрошенным именем хоста, запрос передается в NGINX на настроенный SSL Passthrough прокси-порт (по умолчанию: 442), который затем передает запрос серверу по умолчанию.

        Функция SSL Passthrough реализована путем перехвата всего трафика на настроенном HTTPS-порту (по умолчанию: 443) и передачи его локальному TCP-прокси. Это полностью обходит NGINX и приводит к существенному снижению производительности.

        В отличие от HTTP-бэкендов, трафик для SSL Passthrough бэкендов отправляется на ClusterIP, а не на отдельные эндпоинты.

        Поскольку SSL Passthrough работает на 4 уровне модели OSI (TCP), а не на уровне 7 (HTTP), использование SSL Passthrough делает невозможным использование всех остальных аннотаций, установленных для Ingress.

      • HostWithFailover — устанавливаются два Ingress-контроллера — основной и резервный. Основной контроллер запускается в hostNetwork. Если поды основного контроллера недоступны, трафик уходит в резервный контроллер.

        На одном хосте может быть только один контроллер с данным типом инлета.

        Убедитесь, что на узле свободны следующие порты: 80, 81, 443, 444, 4207, 4208.

        Чтобы поменять инлет, удалите правила iptables и перезапустите поды kube-proxy или перезагрузите узлы, на которых размещались Ingress-контроллеры.

        Данный инлет не может быть использован, если параметр enableIstioSidecar включен.

        Замечание. При включении HTTP/3 (enableHTTP3) он применяется только к основному контроллеру; резервный контроллер всегда работает без HTTP/3.

      Допустимые значения: LoadBalancer, LoadBalancerWithSSLPassthrough, LoadBalancerWithProxyProtocol, HostPort, HostPortWithSSLPassthrough, HostPortWithProxyProtocol, HostWithFailover

    • spec.legacySSL
      булевый

      Определяет, разрешены ли устаревшие версии протокола TLS и алгоритмов шифрования (cipher suites).

      Работа разрешена для следующих версий протокола TLS: TLSv1, TLSv1.1, TLSv1.2, TLSv1.3.

      Допустимые комбинации алгоритмов шифрования, расположенные в порядке от наиболее надёжной к наименее надёжной: ECDHE-ECDSA-AES256-GCM-SHA384, ECDHE-RSA-AES256-GCM-SHA384, ECDHE-ECDSA-CHACHA20-POLY1305, ECDHE-RSA-CHACHA20-POLY1305, ECDHE-ECDSA-AES128-GCM-SHA256, ECDHE-RSA-AES128-GCM-SHA256, ECDHE-ECDSA-AES256-SHA384, ECDHE-RSA-AES256-SHA384, ECDHE-ECDSA-AES128-SHA256, ECDHE-RSA-AES128-SHA256, ECDHE-ECDSA-AES256-SHA, ECDHE-RSA-AES256-SHA, ECDHE-ECDSA-AES128-SHA, ECDHE-RSA-AES128-SHA, AES256-GCM-SHA384, AES128-GCM-SHA256, AES256-SHA256, AES128-SHA256, AES256-SHA, AES128-SHA.

      По умолчанию включены только TLSv1.2, TLSv1.3 и самые новые алгоритмы шифрования.

    • spec.loadBalancer
      объект
      Секция настроек инлета LoadBalancer.
      • spec.loadBalancer.acceptClientIPHeadersFrom
        массив строк
        Определяет список доверенных подсетей в формате CIDR, запросы от которых содержат корректные заголовки X-Forwarded-*/ProxyProtocol.

        По умолчанию: [ "0.0.0.0/0" ]

        Пример:

        acceptClientIPHeadersFrom: 192.168.0.0/24
        
        • spec.loadBalancer.acceptClientIPHeadersFrom.Элемент массива
          строка

          Шаблон: ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\/(3[0-2]|[1-2][0-9]|[0-9]))$

      • spec.loadBalancer.annotations
        объект

        Аннотации, которые будут назначены сервису для гибкой настройки балансировщика.

        Модуль не учитывает особенности указания аннотаций в различных облаках.

        Если аннотации для заказа балансировщика применяются только при создании сервиса, для обновления подобных параметров пересоздайте ресурс IngressNginxController (или создайте новый и удалите старый).

      • spec.loadBalancer.behindL7Proxy
        булевый

        Включает обработку и передачу заголовков X-Forwarded-*.

        Внимание. Перед использованием этой опции убедитесь, что запросы к Ingress направляются только от доверенных источников.

      • spec.loadBalancer.httpPort
        целое число

        Внешний порт для небезопасного подключения по HTTP на балансировщике, создаваемом через сервис типа LoadBalancer.

        Если не заданы оба параметра httpPort и httpsPort, сервис будет слушать стандартные порты 80 и 443. Если задан хотя бы один из этих параметров, для соответствующего типа подключения сервис будет слушать только явно указанные порты. Для типа подключения, для которого не задан параметр, ничего не меняется: прослушивается стандартный порт.

        Внимание. Поведение при смене портов зависит от облачного провайдера и может приводить к специфичным для каждого провайдера побочным эффектам (например, к пересозданию балансировщика или смене его публичного IP-адреса). Эти эффекты могут быть не документированы; перед использованием в production-среде протестируйте обновление сервиса.

        Внимание. ACME HTTP-01 (например, Let’s Encrypt через cert-manager) всегда проверяет доступность домена по TCP-порту 80. Если задать httpsPort без httpPort или изменить httpPort на значение отличное от 80, выпуск/продление сертификатов может перестать работать, если не используется DNS-01 или не настроен проброс порта 80 до контроллера на уровне внешнего балансировщика.

        Внимание. Многие приложения (включая некоторые компоненты модулей Deckhouse) формируют абсолютные ссылки и редиректы без явного указания порта (подразумевая стандартные порты 80/443). Если Ingress-контроллер доступен снаружи на нестандартных портах, редиректы могут вести на неправильный порт, а ссылки могут формироваться некорректно; рекомендуется использовать стандартные порты снаружи или настраивать внешний проброс/проксирование портов.

        По умолчанию: 80

        Допустимые значения: 1 <= X <= 65535

      • spec.loadBalancer.httpsPort
        целое число

        Внешний порт для безопасного подключения по HTTPS на балансировщике, создаваемом через сервис типа LoadBalancer.

        Если не заданы оба параметра httpPort и httpsPort, сервис будет слушать стандартные порты 80 и 443. Если задан хотя бы один из этих параметров, для соответствующего типа подключения сервис будет слушать только явно указанные порты. Для типа подключения, для которого не задан параметр, ничего не меняется: прослушивается стандартный порт.

        Внимание. Поведение при смене портов зависит от облачного провайдера и может приводить к специфичным для каждого провайдера побочным эффектам (например, к пересозданию балансировщика или смене его публичного IP-адреса). Эти эффекты могут быть не документированы; перед использованием в production-среде протестируйте обновление сервиса.

        Внимание. Многие приложения (включая некоторые компоненты модулей Deckhouse) формируют абсолютные ссылки и редиректы без явного указания порта (подразумевая стандартные порты 80/443). При нестандартном httpsPort пользователи могут попадать на 443/tcp, а ссылки могут формироваться некорректно; рекомендуется использовать стандартные порты снаружи или настраивать внешний проброс/проксирование портов.

        По умолчанию: 443

        Допустимые значения: 1 <= X <= 65535

      • spec.loadBalancer.loadBalancerClass
        строка
        Класс балансировщика входящих сетевых запросов (пробрасывается в параметр spec.loadBalancerClass заказанного сервиса с типом LoadBalancer).

        Максимальная длина: 317

        Шаблон: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?[A-Za-z0-9]([-A-Za-z0-9_.]*[A-Za-z0-9])?$

      • spec.loadBalancer.realIPHeader
        строка

        Заголовок, из которого будет получен настоящий IP-адрес клиента.

        Работает только при включении behindL7Proxy.

        По умолчанию: X-Forwarded-For

        Шаблон: ^[A-Za-z0-9][A-Za-z0-9._-]*[A-Za-z0-9]$|^[A-Za-z0-9]$

        Пример:

        realIPHeader: CF-Connecting-IP
        
      • spec.loadBalancer.sourceRanges
        массив строк

        Список адресов в формате CIDR, которым разрешен доступ к балансировщику.

        Внимание. Облачный провайдер может не поддерживать данную опцию и игнорировать ее.

        Провайдеры поддерживающие опцию: AWS, Azure, GCP. Провайдеры игнорирующие опцию: Yandex Cloud.

        Для остальных облачных провайдеров поведение может зависеть от особенностей реализации облака. Протестируйте работу опции перед использованием в production-среде.

        • spec.loadBalancer.sourceRanges.Элемент массива
          строка

          Шаблон: ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\/(3[0-2]|[1-2][0-9]|[0-9]))$

    • spec.loadBalancerWithProxyProtocol
      объект
      Секция настроек инлета LoadBalancerWithProxyProtocol.
      • spec.loadBalancerWithProxyProtocol.acceptClientIPHeadersFrom
        массив строк
        Определяет список доверенных подсетей в формате CIDR, запросы от которых содержат корректные заголовки X-Forwarded-*/ProxyProtocol.

        По умолчанию: [ "0.0.0.0/0" ]

        Пример:

        acceptClientIPHeadersFrom: 192.168.0.0/24
        
        • spec.loadBalancerWithProxyProtocol.acceptClientIPHeadersFrom.Элемент массива
          строка

          Шаблон: ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\/(3[0-2]|[1-2][0-9]|[0-9]))$

      • spec.loadBalancerWithProxyProtocol.annotations
        объект

        Аннотации, которые будут назначены сервису для гибкой настройки балансировщика.

        Модуль не учитывает особенности указания аннотаций в различных облаках.

        Если аннотации для заказа балансировщика применяются только при создании сервиса, для обновления подобных параметров пересоздайте ресурс IngressNginxController (или создайте новый и удалите старый).

      • spec.loadBalancerWithProxyProtocol.behindL7Proxy
        булевый

        Включает совместную обработку заголовков X-Forwarded-* и Proxy Protocol.

        Используйте эту опцию для цепочки прокси, в которой L7-прокси передаёт адрес клиента в HTTP-заголовке, а расположенный после него L4-балансировщик использует Proxy Protocol.

        Внимание. Эта опция не поддерживается контроллерами версий 1.10 и 1.12. Используйте контроллер версии 1.14 или 1.15.

        Внимание. Укажите в acceptClientIPHeadersFrom CIDR всех доверенных промежуточных прокси. Значение по умолчанию 0.0.0.0/0 разрешает доверять заголовкам от любого адреса и допускает подмену IP клиента, если Ingress-контроллер доступен в обход L7-прокси.

      • spec.loadBalancerWithProxyProtocol.httpPort
        целое число

        Внешний порт для небезопасного подключения по HTTP на балансировщике, создаваемом через сервис типа LoadBalancer.

        Если не заданы оба параметра httpPort и httpsPort, сервис будет слушать стандартные порты 80 и 443. Если задан хотя бы один из этих параметров, для соответствующего типа подключения сервис будет слушать только явно указанные порты. Для типа подключения, для которого не задан параметр, ничего не меняется: прослушивается стандартный порт.

        Внимание. Поведение при смене портов зависит от облачного провайдера и может приводить к специфичным для каждого провайдера побочным эффектам (например, к пересозданию балансировщика или смене его публичного IP-адреса). Эти эффекты могут быть не документированы; перед использованием в production-среде протестируйте обновление сервиса.

        Внимание. ACME HTTP-01 (например, Let’s Encrypt через cert-manager) всегда проверяет доступность домена по TCP-порту 80. Если задать httpsPort без httpPort или изменить httpPort на значение отличное от 80, выпуск/продление сертификатов может перестать работать, если не используется DNS-01 или не настроен проброс порта 80 до контроллера на уровне внешнего балансировщика.

        Внимание. Многие приложения (включая некоторые компоненты модулей Deckhouse) формируют абсолютные ссылки и редиректы без явного указания порта (подразумевая стандартные порты 80/443). Если Ingress-контроллер доступен снаружи на нестандартных портах, редиректы могут вести на неправильный порт, а ссылки могут формироваться некорректно; рекомендуется использовать стандартные порты снаружи или настраивать внешний проброс/проксирование портов.

        По умолчанию: 80

        Допустимые значения: 1 <= X <= 65535

      • spec.loadBalancerWithProxyProtocol.httpsPort
        целое число

        Внешний порт для безопасного подключения по HTTPS на балансировщике, создаваемом через сервис типа LoadBalancer.

        Если не заданы оба параметра httpPort и httpsPort, сервис будет слушать стандартные порты 80 и 443. Если задан хотя бы один из этих параметров, для соответствующего типа подключения сервис будет слушать только явно указанные порты. Для типа подключения, для которого не задан параметр, ничего не меняется: прослушивается стандартный порт.

        Внимание. Поведение при смене портов зависит от облачного провайдера и может приводить к специфичным для каждого провайдера побочным эффектам (например, к пересозданию балансировщика или смене его публичного IP-адреса). Эти эффекты могут быть не документированы; перед использованием в production-среде протестируйте обновление сервиса.

        Внимание. Многие приложения (включая некоторые компоненты модулей Deckhouse) формируют абсолютные ссылки и редиректы без явного указания порта (подразумевая стандартные порты 80/443). При нестандартном httpsPort пользователи могут попадать на 443/tcp, а ссылки могут формироваться некорректно; рекомендуется использовать стандартные порты снаружи или настраивать внешний проброс/проксирование портов.

        По умолчанию: 443

        Допустимые значения: 1 <= X <= 65535

      • spec.loadBalancerWithProxyProtocol.loadBalancerClass
        строка
        Класс балансировщика входящих сетевых запросов (пробрасывается в параметр spec.loadBalancerClass заказанного сервиса с типом LoadBalancer).

        Максимальная длина: 317

        Шаблон: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?[A-Za-z0-9]([-A-Za-z0-9_.]*[A-Za-z0-9])?$

      • spec.loadBalancerWithProxyProtocol.realIPHeader
        строка

        Заголовок, из которого будет получен настоящий IP-адрес клиента.

        Работает только при включённой опции behindL7Proxy.

        По умолчанию: X-Forwarded-For

        Шаблон: ^[A-Za-z0-9][A-Za-z0-9._-]*[A-Za-z0-9]$|^[A-Za-z0-9]$

        Пример:

        realIPHeader: CF-Connecting-IP
        
      • spec.loadBalancerWithProxyProtocol.sourceRanges
        массив строк

        Список адресов в формате CIDR, которым разрешен доступ к балансировщику.

        Внимание. Облачный провайдер может не поддерживать данную опцию и игнорировать ее.

        Провайдеры поддерживающие опцию: AWS, Azure, GCP. Провайдеры игнорирующие опцию: Yandex Cloud.

        Для остальных облачных провайдеров поведение может зависеть от особенностей реализации облака. Протестируйте работу опции перед использованием в production-среде.

        • spec.loadBalancerWithProxyProtocol.sourceRanges.Элемент массива
          строка

          Шаблон: ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\/(3[0-2]|[1-2][0-9]|[0-9]))$

    • spec.loadBalancerWithSSLPassthrough
      объект
      Секция настроек инлета LoadBalancerWithSSLPassthrough.
      • spec.loadBalancerWithSSLPassthrough.annotations
        объект

        Аннотации, которые будут назначены сервису для гибкой настройки балансировщика.

        Модуль не учитывает особенности указания аннотаций в различных облаках.

        Если аннотации для заказа балансировщика применяются только при создании сервиса, для обновления подобных параметров пересоздайте ресурс IngressNginxController (или создайте новый и удалите старый).

      • spec.loadBalancerWithSSLPassthrough.httpPort
        целое число

        Внешний порт для небезопасного подключения по HTTP на балансировщике, создаваемом через сервис типа LoadBalancer.

        Если не заданы оба параметра httpPort и httpsPort, сервис будет слушать стандартные порты 80 и 443. Если задан хотя бы один из этих параметров, для соответствующего типа подключения сервис будет слушать только явно указанные порты. Для типа подключения, для которого не задан параметр, ничего не меняется: прослушивается стандартный порт.

        Внимание. Поведение при смене портов зависит от облачного провайдера и может приводить к провайдер-специфичным побочным эффектам (например, пересозданию балансировщика или смене его публичного IP-адреса). Эти эффекты могут быть не документированы; перед использованием в production-среде протестируйте обновление сервиса.

        Внимание. ACME HTTP-01 (например, Let’s Encrypt через cert-manager) всегда проверяет доступность домена по TCP-порту 80. Если задать httpsPort без httpPort или изменить httpPort на значение отличное от 80, выпуск/продление сертификатов может перестать работать, если не используется DNS-01 или не настроен проброс порта 80 до контроллера на уровне внешнего балансировщика.

        Внимание. Многие приложения (включая некоторые компоненты модулей Deckhouse) формируют абсолютные ссылки и редиректы без явного указания порта (подразумевая стандартные порты 80/443). Если Ingress-контроллер доступен снаружи на нестандартных портах, редиректы могут вести на неправильный порт, а ссылки могут формироваться некорректно; рекомендуется использовать стандартные порты снаружи или настраивать внешний проброс/проксирование портов.

        По умолчанию: 80

        Допустимые значения: 1 <= X <= 65535

      • spec.loadBalancerWithSSLPassthrough.httpsPort
        целое число

        Внешний порт для безопасного подключения по HTTPS на балансировщике, создаваемом через сервис типа LoadBalancer.

        Если не заданы оба параметра httpPort и httpsPort, сервис будет слушать стандартные порты 80 и 443. Если задан хотя бы один из этих параметров, для соответствующего типа подключения сервис будет слушать только явно указанные порты. Для типа подключения, для которого не задан параметр, ничего не меняется: прослушивается стандартный порт.

        Внимание. Поведение при смене портов зависит от облачного провайдера и может приводить к провайдер-специфичным побочным эффектам (например, пересозданию балансировщика или смене его публичного IP-адреса). Эти эффекты могут быть не документированы; перед использованием в production-среде протестируйте обновление сервиса.

        Внимание. Многие приложения (включая некоторые компоненты модулей Deckhouse) формируют абсолютные ссылки и редиректы без явного указания порта (подразумевая стандартные порты 80/443). При нестандартном httpsPort пользователи могут попадать на 443/tcp, а ссылки могут формироваться некорректно; рекомендуется использовать стандартные порты снаружи или настраивать внешний проброс/проксирование портов.

        По умолчанию: 443

        Допустимые значения: 1 <= X <= 65535

      • spec.loadBalancerWithSSLPassthrough.loadBalancerClass
        строка
        Класс балансировщика входящих сетевых запросов (пробрасывается в параметр spec.loadBalancerClass заказанного сервиса с типом LoadBalancer).

        Максимальная длина: 317

        Шаблон: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?[A-Za-z0-9]([-A-Za-z0-9_.]*[A-Za-z0-9])?$

      • spec.loadBalancerWithSSLPassthrough.sourceRanges
        массив строк

        Список адресов в формате CIDR, которым разрешен доступ к балансировщику.

        Внимание. Облачный провайдер может не поддерживать данную опцию и игнорировать ее.

        Провайдеры поддерживающие опцию: AWS, Azure, GCP. Провайдеры игнорирующие опцию: Yandex Cloud.

        Для остальных облачных провайдеров поведение может зависеть от особенностей реализации облака. Протестируйте работу опции перед использованием в production-среде.

        • spec.loadBalancerWithSSLPassthrough.sourceRanges.Элемент массива
          строка

          Шаблон: ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\/(3[0-2]|[1-2][0-9]|[0-9]))$

    • spec.maxReplicas
      целое число
      Максимальное количество реплик LoadBalancer, LoadBalancerWithProxyProtocol и LoadBalancerWithSSLPassthrough для HPA.

      По умолчанию: 1

      Допустимые значения: 1 <= X

    • spec.migrationGateway
      объект

      Направляет запросы от выбранных IP-адресов клиентов на Service, используемый как migration gateway, вместо бэкендов, настроенных в Ingress-ресурсах.

      Параметр предназначен для того, чтобы сетевые администраторы могли тестировать инфраструктуру Gateway API без переключения DNS-записей.

      Внимание. Используйте параметр с особой осторожностью. Он перенаправляет соответствующие клиентские запросы в обход бэкендов Ingress и может обходить поведение или политики, настроенные в отдельных location-блоках Ingress, что способно нарушить обработку клиентских запросов.

      Внимание. Не все возможности и заголовки ingress-nginx имеют прямые аналоги в реализациях Gateway API, и наоборот. Например, реализация GeoIP в Gateway API может использовать другие имена заголовков для передачи GeoIP-данных.

      Правило действует для всех Ingress-ресурсов данного контроллера. Migration gateway получает трафик по тому же протоколу, что и ingress-nginx: запросы, полученные контроллером по HTTP, отправляются на HTTP-порт Service, а запросы, полученные по HTTPS, повторно шифруются и отправляются на HTTPS-порт Service.

      Параметр не поддерживается для инлетов HostPortWithSSLPassthrough, LoadBalancerWithSSLPassthrough и HostWithFailover, а также при включенном enableIstioSidecar.

      Перенаправление на API migration gateway, ожидающий Proxy Protocol, не поддерживается. Целевые порты Service должны принимать обычный HTTP- или HTTPS-трафик и использовать перенаправленные заголовки для определения адреса клиента.

      Пользовательские http-snippet и server-snippet добавляются после директив, сгенерированных параметром. Они не должны переопределять d8_migration_gateway_* и location-блоки с префиксом /_d8_migration_gateway_.

      При совместном использовании с acceptRequestsFrom сначала проверяется allowlist по $realip_remote_addr, затем sourceCIDRs сопоставляется с $remote_addr.

      • spec.migrationGateway.serviceRef
        объект

        Обязательный параметр

        Ссылка на Service, используемый как migration gateway.
        • spec.migrationGateway.serviceRef.name
          строка

          Обязательный параметр

          Имя Service.

          Максимальная длина: 63

          Шаблон: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$

        • spec.migrationGateway.serviceRef.namespace
          строка

          Обязательный параметр

          Пространство имён Service.

          Максимальная длина: 63

          Шаблон: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$

        • spec.migrationGateway.serviceRef.ports
          объект

          Обязательный параметр

          • spec.migrationGateway.serviceRef.ports.http
            целое число

            Обязательный параметр

            HTTP-порт Service.

            Допустимые значения: 1 <= X <= 65535

          • spec.migrationGateway.serviceRef.ports.https
            целое число

            Обязательный параметр

            HTTPS-порт Service.

            Допустимые значения: 1 <= X <= 65535

      • spec.migrationGateway.sourceCIDRs
        массив строк

        Обязательный параметр

        Список IPv4-адресов клиентов в формате CIDR, запросы от которых направляются через migration gateway.
        • spec.migrationGateway.sourceCIDRs.Элемент массива
          строка

          Шаблон: ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\/(3[0-2]|[1-2][0-9]|[0-9]))$

    • spec.minReplicas
      целое число
      Минимальное количество реплик LoadBalancer, LoadBalancerWithProxyProtocol и LoadBalancerWithSSLPassthrough для HPA.

      По умолчанию: 1

      Допустимые значения: 1 <= X

    • spec.nodeSelector
      объект

      Аналогично параметру spec.nodeSelector у подов.

      Если значение не указано или указано false, DKP попытается определить значение автоматически.

      Используйте формат стандартного списка nodeSelector. Поды инстанса унаследуют это поле как есть.

    • spec.resourcesManagement
      объект
      Настройки запросов (requests) и ограничений (limits) CPU и памяти для подов контроллера.
      • spec.resourcesManagement.mode
        строка

        Обязательный параметр

        Режим управления ресурсами.

        По умолчанию: VPA

        Допустимые значения: VPA, Static

      • spec.resourcesManagement.static
        объект
        Настройки статического режима управления.
        • spec.resourcesManagement.static.limits
          объект
          Ограничения ресурсов.
          • spec.resourcesManagement.static.limits.cpu
            строка
            Ограничение CPU.
          • spec.resourcesManagement.static.limits.memory
            строка
            Ограничение памяти.
        • spec.resourcesManagement.static.requests
          объект
          Запросы ресурсов.
          • spec.resourcesManagement.static.requests.cpu
            строка
            Запрос CPU.

            По умолчанию: 350m

          • spec.resourcesManagement.static.requests.memory
            строка
            Запрос памяти.

            По умолчанию: 500Mi

      • spec.resourcesManagement.vpa
        объект
        Настройки режима VPA.
        • spec.resourcesManagement.vpa.cpu
          объект
          Настройки VPA для CPU.
          • spec.resourcesManagement.vpa.cpu.limitRatio
            число

            Коэффициент соотношения limits/requests для CPU.

            Если параметр указан, limits рассчитываются на основе requests и заданного коэффициента.

          • spec.resourcesManagement.vpa.cpu.max
            строка
            Максимальное значение запроса CPU, которое может выставить VPA.

            По умолчанию: 1500m

          • spec.resourcesManagement.vpa.cpu.min
            строка
            Минимальное значение запроса CPU, которое может выставить VPA.

            По умолчанию: 100m

        • spec.resourcesManagement.vpa.memory
          объект
          Настройки VPA для памяти.
          • spec.resourcesManagement.vpa.memory.limitRatio
            число

            Коэффициент соотношения limits/requests для памяти.

            Если параметр указан, limits рассчитываются на основе requests и заданного коэффициента.

          • spec.resourcesManagement.vpa.memory.max
            строка
            Максимальное значение запроса памяти, которое может выставить VPA.

            По умолчанию: 2000Mi

          • spec.resourcesManagement.vpa.memory.min
            строка
            Минимальное значение запроса памяти, которое может выставить VPA.

            По умолчанию: 500Mi

        • spec.resourcesManagement.vpa.mode
          строка
          Режим работы VPA.

          По умолчанию: Initial

          Допустимые значения: Initial, InPlaceOrRecreate

    • spec.tolerations
      массив объектов

      Аналогично параметру spec.tolerations у подов.

      Если значение не указано или указано false, подам модуля автоматически устанавливаются все возможные tolerations.

      Используйте формат стандартного списка tolerations. Поды инстанса унаследуют это поле как есть.

      • spec.tolerations.effect
        строка

        Максимальная длина: 64

        Шаблон: ^(NoSchedule|PreferNoSchedule|NoExecute)?$

      • spec.tolerations.key
        строка

        Максимальная длина: 317

        Шаблон: ^$|^(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9]/)?([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9]$

      • spec.tolerations.operator
        строка

        По умолчанию: Equal

        Максимальная длина: 64

        Шаблон: ^(Equal|Exists)?$

      • spec.tolerations.tolerationSeconds
        целое число

        Допустимые значения: 0 <= X

      • spec.tolerations.value
        строка

        Максимальная длина: 63

        Шаблон: ^(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])?$

    • spec.underscoresInHeaders
      булевый

      Разрешает использовать символ нижнего подчеркивания в заголовках.

      Вспомогательные ресурсы:

      По умолчанию: false

    • spec.validationEnabled
      булевый

      Включает валидацию Ingress-правил.

      Внимание. Включение валидации увеличивает нагрузку на master-узлы кластера.

      По умолчанию: true

    • spec.validationIsolationMode
      строка

      Выбирает режим изоляции валидации.

      Внимание. Данный параметр применим только к контроллерам версий 1.14 и 1.15.

      Поддерживаемые режимы:

      • NoIsolation — изоляция при проверке конфигурации NGINX не применяется. Чтобы минимизировать риски безопасности, область проверки ограничена одним объектом Ingress, что приводит к «слабой» валидации.
      • IsolatedFilesystem — конфигурация NGINX проверяется в отдельной файловой системе без доступа к файловой системе работающего сервера NGINX, что эффективно сокращает поверхность атаки. Область проверки ограничена параметром ingressClass, что обеспечивает «сильную» валидацию.
      • IsolatedProcess — конфигурация NGINX проверяется внутри изолированной среды (песочницы), где отслеживается каждый системный вызов. Это наиболее безопасный режим изоляции, ограниченный параметром ingressClass.

      Внимание. Режим IsolatedProcess является экспериментальным и может не работать в средах с повышенными требованиями к безопасности, где запрещено создание новых пользовательских пространств имён или использование ptrace.

      Внимание. Для режима IsolatedProcess требуется containerd v2 на целевых узлах.

      По умолчанию: NoIsolation

      Допустимые значения: NoIsolation, IsolatedFilesystem, IsolatedProcess

    • spec.waitLoadBalancerOnTerminating
      целое число
      Количество секунд до того момента, когда эндпоинт /healthz начнёт возвращать код 500 после перехода пода в статус Terminating.
  • status
    объект
    • status.loadBalancer
      объект
      Содержит IP-адрес и DNS-имя используемого балансировщика нагрузки.
      • status.loadBalancer.hostname
        строка
        DNS-имя балансировщика нагрузки.
      • status.loadBalancer.ip
        строка
        IP-адрес балансировщика нагрузки.
  • spec
    объект
    • spec.acceptRequestsFrom
      массив строк

      Список адресов в формате CIDR, которым разрешен доступ к контроллеру.

      Независимо от инлета всегда проверяется непосредственный адрес (поле original_address в логах), с которого производится подключение, а не адрес клиента, который может передаваться в некоторых инлетах через заголовки или с использованием proxy protocol.

      Параметр реализован с помощью map module. Если адрес, с которого производится подключение, не разрешен, nginx закрывает соединение, отправляя код 444).

      По умолчанию к контроллеру можно подключаться с любых адресов.

      • spec.acceptRequestsFrom.Элемент массива
        строка

        Шаблон: ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\/(3[0-2]|[1-2][0-9]|[0-9]))$

    • spec.additionalHeaders
      объект
      Дополнительные заголовки, которые будут добавлены к каждому запросу. Указываются в формате ключ: значение(строка).
    • spec.additionalLogFields
      объект
      Дополнительные поля, которые будут добавлены в логи nginx. Указываются в формате ключ: значение(строка).
    • spec.annotationValidationEnabled
      булевый
      Включает валидацию аннотаций Ingress-правил.

      По умолчанию: false

    • spec.chaosMonkey
      булевый

      Инструмент, позволяющий систематически вызывать случайные прерывания работы подов контроллера.

      Предназначен для проверки Ingress-контроллера на реальную работу отказоустойчивости.

      По умолчанию: false

    • spec.config
      объект

      Секция настроек Ingress-контроллера, в которую в формате ключ: значение(строка) можно записать любые возможные опции.

      Ошибка в опциях может привести к неработоспособности Ingress-контроллера.

      Используйте опцию с осторожностью, поскольку обратная совместимость и работоспособность Ingress-контроллера не гарантируются.

    • spec.controllerLogLevel
      строка
      Определяет уровень логирования для журналов Ingress-контроллера.

      По умолчанию: Info

      Допустимые значения:

      Error — Only critical errors will be logged.
      Warn — Warnings and errors will be logged.
      Info — Informational messages, including basic debugging information.
      Extended — Extended information about changes in system state.
      Debug — Verbose debugging output, potentially very noisy.
      Trace — Trace-level logs with detailed step-by-step context.

    • spec.controllerPodsAdditionalAnnotations
      объект

      Дополнительные пользовательские аннотации для подов Ingress-контроллера.

      Используйте параметр с осторожностью, поскольку обратная совместимость и работоспособность Ingress-контроллера при использовании параметра не гарантируются.

    • spec.controllerVersion
      строка

      Версия Ingress NGINX Controller.

      По умолчанию используется версия из настроек модуля. Поддерживаемые версии: 1.10, 1.12, 1.14, 1.15.

      Допустимые значения: 1.10, 1.12, 1.14, 1.15

    • spec.customErrors
      объект

      Секция с настройкой кастомизации HTTP-ошибок.

      Если секция указана в настройках, все параметры в ней являются обязательными.

      Изменение любого параметра приводит к перезапуску всех Ingress-контроллеров.

      • spec.customErrors.codes
        массив строк

        Обязательный параметр

        Список кодов ответа (массив), при которых запрос будет перенаправляться на кастомный бэкенд.
        • spec.customErrors.codes.Элемент массива
          строка

          Шаблон: ^[1-5][0-9][0-9]$

      • spec.customErrors.namespace
        строка

        Обязательный параметр

        Название пространства имён, в котором будет находиться сервис, используемый в качестве кастомного бэкенда по умолчанию.

        Максимальная длина: 63

        Шаблон: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$

        Пример:

        namespace: default
        
      • spec.customErrors.serviceName
        строка

        Обязательный параметр

        Имя сервиса, который будет использоваться в качестве кастомного бэкенда по умолчанию.

        Максимальная длина: 63

        Шаблон: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$

        Пример:

        serviceName: custom-errors-backend-service
        
    • spec.defaultSSLCertificate
      объект

      Сертификат, который используется:

      • при запросах на catch-all-сервер (подразумевается директива server nginx). На catch-all-сервер попадают запросы, для которых нет соответствующего Ingress-ресурса;
      • для Ingress–ресурсов, в которых не задан secretName в секции tls.

      По умолчанию используется самоподписанный сертификат.

      Внимание. Параметр не влияет на сертификаты, используемые в Ingress-ресурсах модулей Deckhouse. Чтобы указать сертификат для Ingress-ресурсов модулей Deckhouse, используйте глобальный параметр modules.https.customCertificate.

      • spec.defaultSSLCertificate.secretRef
        объект
        Ссылка на Secret для передачи Ingress-контроллеру.
        • spec.defaultSSLCertificate.secretRef.name
          строка
          Имя Secret, содержащего SSL–сертификат.

          Шаблон: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$

        • spec.defaultSSLCertificate.secretRef.namespace
          строка
          Название пространства имён, в котором находится Secret с SSL-сертификатом.

          По умолчанию: d8-ingress-nginx

          Шаблон: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$

    • spec.disableHTTP2
      булевый
      Выключает HTTP/2.

      По умолчанию: false

    • spec.enableHTTP3
      булевый

      Включает HTTP/3.

      HTTP/3 нельзя включить, если выбран инлет HostPortWithProxyProtocol или LoadBalancerWithProxyProtocol.

      В случае инлета HostWithFailover HTTP/3 включается только для основного контроллера; резервный контроллер всегда работает без HTTP/3.

      По умолчанию: false

    • spec.enableIstioSidecar
      булевый

      Добавляет к подам контроллера аннотации для автоматического инжекта сайдкаров Istio.

      При включении этого параметра к подам Ingress-контроллера добавляются аннотации sidecar.istio.io/inject: "true" и traffic.sidecar.istio.io/includeOutboundIPRanges: "<Service CIDR>". При создании таких подов к ним автоматически будут добавлены сайдкары Istio с помощью mutating webhook. После этого весь трафик в сторону Service CIDR будет перехватываться сайдкаром.

      Чтобы воспользоваться этой функцией, добавьте аннотации в прикладные Ingress-ресурсы:

      • nginx.ingress.kubernetes.io/service-upstream: "true" — с этой аннотацией Ingress-контроллер будет отправлять запросы на ClusterIP сервиса (из диапазона Service CIDR) вместо того, чтобы слать их напрямую в поды приложения. Сайдкар istio-proxy перехватывает трафик только в сторону диапазона Service CIDR, остальные запросы отправляются напрямую;
      • nginx.ingress.kubernetes.io/upstream-vhost: myservice.myns.svc — с данной аннотацией сайдкар сможет идентифицировать прикладной сервис, для которого предназначен запрос.

      Внимание. Данный параметр не может быть включен, если инлет Ingress-контроллера установлен в значение HostWithFailover.

    • spec.geoIP2
      объект
      Опции для включения GeoIP2.
      • spec.geoIP2.maxmindAccountID
        целое число

        Идентификатор учетной записи MaxMind, используемый для аутентификации загрузки базы данных GeoIP2.

        Требуется, когда указан maxmindLicenseKey. Если задан maxmindAccountID, загрузка выполняется официальной библиотекой geoipupdate, что позволяет пропускать неизменённые обновления и экономить лимит лицензии.

        Допустимые значения: 1 <= X

      • spec.geoIP2.maxmindEditionIDs
        массив строк

        Список ревизий баз данных, которые будут скачаны при старте.

        Подробнее о базах данных GeoLite — в статье в блоге MaxMind.

        По умолчанию: [ "GeoLite2-City", "GeoLite2-ASN" ]

        • spec.geoIP2.maxmindEditionIDs.Элемент массива
          строка

          Допустимые значения: GeoIP2-Anonymous-IP, GeoIP2-Country, GeoIP2-City, GeoIP2-Connection-Type, GeoIP2-Domain, GeoIP2-ISP, GeoIP2-ASN, GeoLite2-ASN, GeoLite2-Country, GeoLite2-City

      • spec.geoIP2.maxmindLicenseKey
        строка

        Лицензионный ключ для скачивания базы данных GeoIP2.

        При наличии ключа в конфигурации база GeoIP2 скачивается при каждом старте контроллера. Подробнее о получении ключа — в статье в блоге MaxMind.

        Шаблон: ^[^\r\n]+$

      • spec.geoIP2.maxmindMirror
        объект

        Настройки зеркала для скачивания баз GeoIP. Если параметр не указан или имеет пустое значение, то по умолчанию будет использоваться https://download.maxmind.com.

        Пример корректного URL: https://mirror.local/GeoLite2-City.tar.gz.

        Если зеркало используется для хранения предзагруженных архивов, параметр licenseKey можно не указывать.

        • spec.geoIP2.maxmindMirror.ca
          строка
          Пользовательский корневой сертификат в формате PEM для проверки TLS-соединения с зеркалом.

          Максимальная длина: 65536

          Пример:

          ca: |
            -----BEGIN CERTIFICATE-----
            ...
            -----END CERTIFICATE-----
          
        • spec.geoIP2.maxmindMirror.insecureSkipVerify
          булевый
          Отключает проверку TLS сертификатов зеркала, например, если используется самоподписанный сертификат.
        • spec.geoIP2.maxmindMirror.url
          строка

          Обязательный параметр

          URL для скачивания баз GeoIP.

          Максимальная длина: 2048

          Шаблон: ^https?://[^\r\n]+$

          Примеры:

          url: https://mirror.local
          
          url: absolute path https://mirror.local/GeoLite2-City.tar.gz
          
    • spec.hostPort
      объект
      Секция настроек инлета HostPort.
      • spec.hostPort.acceptClientIPHeadersFrom
        массив строк
        Определяет список доверенных подсетей в формате CIDR, запросы от которых содержат корректные заголовки X-Forwarded-*/ProxyProtocol.

        По умолчанию: [ "0.0.0.0/0" ]

        Пример:

        acceptClientIPHeadersFrom: 192.168.0.0/24
        
        • spec.hostPort.acceptClientIPHeadersFrom.Элемент массива
          строка

          Шаблон: ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\/(3[0-2]|[1-2][0-9]|[0-9]))$

      • spec.hostPort.behindL7Proxy
        булевый

        Включает обработку и передачу заголовков X-Forwarded-*.

        Внимание. Перед использованием этой опции убедитесь, что запросы к Ingress направляются только от доверенных источников. Для настройки ограничений воспользуйтесь параметром acceptRequestsFrom.

      • spec.hostPort.httpPort
        целое число

        Порт для небезопасного подключения по HTTP.

        Если параметр не указан, подключение по HTTP невозможно.

        Параметр обязателен в случае, если не задан httpsPort.

        Пример:

        httpPort: 80
        
      • spec.hostPort.httpsPort
        целое число

        Порт для безопасного подключения по HTTPS.

        Если параметр не указан, подключение по HTTPS невозможно.

        Параметр обязателен в случае, если не задан httpPort.

        Пример:

        httpsPort: 443
        
      • spec.hostPort.realIPHeader
        строка

        Заголовок, из которого будет получен настоящий IP-адрес клиента.

        Работает только при включенной опции behindL7Proxy.

        По умолчанию: X-Forwarded-For

        Шаблон: ^[A-Za-z0-9][A-Za-z0-9._-]*[A-Za-z0-9]$|^[A-Za-z0-9]$

        Пример:

        realIPHeader: CF-Connecting-IP
        
    • spec.hostPortWithProxyProtocol
      объект
      Секция настроек инлета HostPortWithProxyProtocol.
      • spec.hostPortWithProxyProtocol.acceptClientIPHeadersFrom
        массив строк
        Определяет список доверенных подсетей в формате CIDR, запросы от которых содержат корректные заголовки X-Forwarded-*/ProxyProtocol.

        По умолчанию: [ "0.0.0.0/0" ]

        Пример:

        acceptClientIPHeadersFrom: 192.168.0.0/24
        
        • spec.hostPortWithProxyProtocol.acceptClientIPHeadersFrom.Элемент массива
          строка

          Шаблон: ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\/(3[0-2]|[1-2][0-9]|[0-9]))$

      • spec.hostPortWithProxyProtocol.behindL7Proxy
        булевый

        Включает совместную обработку заголовков X-Forwarded-* и Proxy Protocol.

        Используйте эту опцию для цепочки прокси, в которой L7-прокси передаёт адрес клиента в HTTP-заголовке, а расположенный после него L4-балансировщик использует Proxy Protocol.

        Внимание. Эта опция не поддерживается контроллерами версий 1.10 и 1.12. Используйте контроллер версии 1.14 или 1.15.

        Внимание. Укажите в acceptClientIPHeadersFrom CIDR всех доверенных промежуточных прокси. Значение по умолчанию 0.0.0.0/0 разрешает доверять заголовкам от любого адреса и допускает подмену IP клиента, если Ingress-контроллер доступен в обход L7-прокси.

      • spec.hostPortWithProxyProtocol.httpPort
        целое число

        Порт для небезопасного подключения по HTTP.

        Если параметр не указан, подключение по HTTP невозможно.

        Параметр обязателен в случае, если не задан httpsPort.

        Пример:

        httpPort: 80
        
      • spec.hostPortWithProxyProtocol.httpsPort
        целое число

        Порт для безопасного подключения по HTTPS.

        Если параметр не указан, подключение по HTTPS невозможно.

        Параметр обязателен в случае, если не задан httpPort.

        Пример:

        httpsPort: 443
        
      • spec.hostPortWithProxyProtocol.realIPHeader
        строка

        Заголовок, из которого будет получен настоящий IP-адрес клиента.

        Работает только при включённой опции behindL7Proxy.

        По умолчанию: X-Forwarded-For

        Шаблон: ^[A-Za-z0-9][A-Za-z0-9._-]*[A-Za-z0-9]$|^[A-Za-z0-9]$

        Пример:

        realIPHeader: CF-Connecting-IP
        
    • spec.hostPortWithSSLPassthrough
      объект
      Секция настроек инлета HostPortWithSSLPassthrough.
      • spec.hostPortWithSSLPassthrough.httpPort
        целое число

        Порт для небезопасного подключения по HTTP.

        Если параметр не указан, подключение по HTTP невозможно.

        Параметр обязателен в случае, если не задан httpsPort.

        Пример:

        httpPort: 80
        
      • spec.hostPortWithSSLPassthrough.httpsPort
        целое число

        Порт для безопасного подключения по HTTPS.

        Если параметр не указан, подключение по HTTPS невозможно.

        Параметр обязателен в случае, если не задан httpPort.

        Пример:

        httpsPort: 443
        
    • spec.hsts
      булевый
      Включает использование заголовков ответа HTTP Strict-Transport-Security (HSTS). Подробнее о заголовках HSTS — в статье на портале MDN Web Docs.

      По умолчанию: false

    • spec.hstsOptions
      объект
      Параметры HSTS.
      • spec.hstsOptions.includeSubDomains
        булевый
        Применяет настройки HSTS ко всем поддоменам сайта.

        По умолчанию: false

      • spec.hstsOptions.maxAge
        строка
        Время в секундах, в течение которого браузер помнит, что сайт доступен только с помощью HTTPS.

        По умолчанию: 31536000

        Шаблон: ^[1-9][0-9]*$

        Пример:

        maxAge: '31536000'
        
      • spec.hstsOptions.preload
        булевый

        Добавляет сайт в список предзагрузки.

        Список указывает браузерам, что подключение к перечисленным сайтам должно осуществляться только по HTTPS.

        По умолчанию: false

    • spec.ingressClass
      строка

      Имя Ingress-класса для обслуживания Ingress NGINX Controller.

      Позволяет создать несколько контроллеров для обслуживания одного Ingress-класса.

      Если указать значение nginx, дополнительно будут обрабатываться Ingress-ресурсы без аннотации kubernetes.io/ingress.class или поля spec.ingressClassName.

      По умолчанию: nginx

      Шаблон: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$

      Пример:

      ingressClass: nginx
      
    • spec.inlet
      строка

      Обязательный параметр

      Способ приема трафика из внешней сети. Изменение установленного способа невозможно.

      Возможные значения:

      • LoadBalancer — устанавливается Ingress-контроллер, и заказывается сервис с типом LoadBalancer;

      • LoadBalancerWithProxyProtocol — устанавливается Ingress-контроллер, и заказывается сервис с типом LoadBalancer. Ingress-контроллер использует proxy-protocol для получения настоящего IP-адреса клиента;

        Важно. HTTP/3 (enableHTTP3) нельзя включать с этим инлетом, так как QUIC несовместим с PROXY protocol.

      • LoadBalancerWithSSLPassthrough — устанавливается Ingress-контроллер, и заказывается сервис с типом LoadBalancer. Этот инлет включает функцию SSL Passthrough, которая позволяет настроить бэкенды на приём SSL-трафика напрямую, без терминации на Ingress-контроллере.

        Функция SSL Passthrough реализована путем перехвата всего трафика на настроенном HTTPS-порту (по умолчанию: 443) и передачи его локальному TCP-прокси. Это полностью обходит NGINX и приводит к существенному снижению производительности.

        Протокол SSL Passthrough использует Server Name Indication (SNI) и считывает данные о виртуальном домене из протокола согласования TLS, для чего требуется подходящий клиент.

        Если имя хоста не совпадает с запрошенным именем хоста, запрос передается в NGINX на настроенный SSL Passthrough прокси-порт (по умолчанию: 442), который затем передает запрос серверу по умолчанию.

        В отличие от HTTP-бэкендов, трафик для SSL Passthrough бэкендов отправляется на ClusterIP, а не на отдельные эндпоинты.

        Поскольку SSL Passthrough работает на 4 уровне модели OSI (TCP), а не на уровне 7 (HTTP), использование SSL Passthrough делает невозможным использование всех остальных аннотаций, установленных для Ingress.

      • HostPort — устанавливается Ingress-контроллер, который доступен на портах узлов через hostPort;

      • HostPortWithProxyProtocol — устанавливается Ingress-контроллер, который доступен на портах узлов через hostPort и использует proxy-protocol для получения настоящего IP-адреса клиента.

        Важно. Перед использованием этого инлета убедитесь, что запросы к Ingress будут направляться только от доверенных источников. Для настройки ограничений воспользуйтесь параметром acceptRequestsFrom.

        Важно. HTTP/3 (enableHTTP3) нельзя включать с этим инлетом, так как QUIC несовместим с PROXY protocol.

      • HostPortWithSSLPassthrough — устанавливается Ingress-контроллер, который доступен на портах узлов через hostPort. Этот инлет включает функцию SSL Passthrough, которая позволяет настроить бэкенды на приём SSL-трафика напрямую, без терминации на Ingress-контроллере.

        Укажите параметры работы инлета в секции spec.HostPortWithSSLPassthrough.

        Протокол SSL Passthrough использует SNI и считывает данные о виртуальном домене из протокола согласования TLS, для чего требуется подходящий клиент.

        Если имя хоста не совпадает с запрошенным именем хоста, запрос передается в NGINX на настроенный SSL Passthrough прокси-порт (по умолчанию: 442), который затем передает запрос серверу по умолчанию.

        Функция SSL Passthrough реализована путем перехвата всего трафика на настроенном HTTPS-порту (по умолчанию: 443) и передачи его локальному TCP-прокси. Это полностью обходит NGINX и приводит к существенному снижению производительности.

        В отличие от HTTP-бэкендов, трафик для SSL Passthrough бэкендов отправляется на ClusterIP, а не на отдельные эндпоинты.

        Поскольку SSL Passthrough работает на 4 уровне модели OSI (TCP), а не на уровне 7 (HTTP), использование SSL Passthrough делает невозможным использование всех остальных аннотаций, установленных для Ingress.

      • HostWithFailover — устанавливаются два Ingress-контроллера — основной и резервный. Основной контроллер запускается в hostNetwork. Если поды основного контроллера недоступны, трафик уходит в резервный контроллер.

        На одном хосте может быть только один контроллер с данным типом инлета.

        Убедитесь, что на узле свободны следующие порты: 80, 81, 443, 444, 4207, 4208.

        Чтобы поменять инлет, удалите правила iptables и перезапустите поды kube-proxy или перезагрузите узлы, на которых размещались Ingress-контроллеры.

        Данный инлет не может быть использован, если параметр enableIstioSidecar включен.

        Замечание. При включении HTTP/3 (enableHTTP3) он применяется только к основному контроллеру; резервный контроллер всегда работает без HTTP/3.

      Допустимые значения: LoadBalancer, LoadBalancerWithSSLPassthrough, LoadBalancerWithProxyProtocol, HostPort, HostPortWithSSLPassthrough, HostPortWithProxyProtocol, HostWithFailover

    • spec.legacySSL
      булевый

      Определяет, разрешены ли устаревшие версии протокола TLS и алгоритмов шифрования (cipher suites).

      Работа разрешена для следующих версий протокола TLS: TLSv1, TLSv1.1, TLSv1.2, TLSv1.3.

      Допустимые комбинации алгоритмов шифрования, расположенные в порядке от наиболее надёжной к наименее надёжной: ECDHE-ECDSA-AES256-GCM-SHA384, ECDHE-RSA-AES256-GCM-SHA384, ECDHE-ECDSA-CHACHA20-POLY1305, ECDHE-RSA-CHACHA20-POLY1305, ECDHE-ECDSA-AES128-GCM-SHA256, ECDHE-RSA-AES128-GCM-SHA256, ECDHE-ECDSA-AES256-SHA384, ECDHE-RSA-AES256-SHA384, ECDHE-ECDSA-AES128-SHA256, ECDHE-RSA-AES128-SHA256, ECDHE-ECDSA-AES256-SHA, ECDHE-RSA-AES256-SHA, ECDHE-ECDSA-AES128-SHA, ECDHE-RSA-AES128-SHA, AES256-GCM-SHA384, AES128-GCM-SHA256, AES256-SHA256, AES128-SHA256, AES256-SHA, AES128-SHA.

      По умолчанию включены только TLSv1.2, TLSv1.3 и самые новые алгоритмы шифрования.

    • spec.loadBalancer
      объект
      Секция настроек инлета LoadBalancer.
      • spec.loadBalancer.acceptClientIPHeadersFrom
        массив строк
        Определяет список доверенных подсетей в формате CIDR, запросы от которых содержат корректные заголовки X-Forwarded-*/ProxyProtocol.

        По умолчанию: [ "0.0.0.0/0" ]

        Пример:

        acceptClientIPHeadersFrom: 192.168.0.0/24
        
        • spec.loadBalancer.acceptClientIPHeadersFrom.Элемент массива
          строка

          Шаблон: ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\/(3[0-2]|[1-2][0-9]|[0-9]))$

      • spec.loadBalancer.annotations
        объект

        Аннотации, которые будут назначены сервису для гибкой настройки балансировщика.

        Модуль не учитывает особенности указания аннотаций в различных облаках.

        Если аннотации для заказа балансировщика применяются только при создании сервиса, для обновления подобных параметров пересоздайте ресурс IngressNginxController (или создайте новый и удалите старый).

      • spec.loadBalancer.behindL7Proxy
        булевый

        Включает обработку и передачу заголовков X-Forwarded-*.

        Внимание. Перед использованием этой опции убедитесь, что запросы к Ingress направляются только от доверенных источников.

      • spec.loadBalancer.httpPort
        целое число

        Внешний порт для небезопасного подключения по HTTP на балансировщике, создаваемом через сервис типа LoadBalancer.

        Если не заданы оба параметра httpPort и httpsPort, сервис будет слушать стандартные порты 80 и 443. Если задан хотя бы один из этих параметров, для соответствующего типа подключения сервис будет слушать только явно указанные порты. Для типа подключения, для которого не задан параметр, ничего не меняется: прослушивается стандартный порт.

        Внимание. Поведение при смене портов зависит от облачного провайдера и может приводить к специфичным для каждого провайдера побочным эффектам (например, к пересозданию балансировщика или смене его публичного IP-адреса). Эти эффекты могут быть не документированы; перед использованием в production-среде протестируйте обновление сервиса.

        Внимание. ACME HTTP-01 (например, Let’s Encrypt через cert-manager) всегда проверяет доступность домена по TCP-порту 80. Если задать httpsPort без httpPort или изменить httpPort на значение отличное от 80, выпуск/продление сертификатов может перестать работать, если не используется DNS-01 или не настроен проброс порта 80 до контроллера на уровне внешнего балансировщика.

        Внимание. Многие приложения (включая некоторые компоненты модулей Deckhouse) формируют абсолютные ссылки и редиректы без явного указания порта (подразумевая стандартные порты 80/443). Если Ingress-контроллер доступен снаружи на нестандартных портах, редиректы могут вести на неправильный порт, а ссылки могут формироваться некорректно; рекомендуется использовать стандартные порты снаружи или настраивать внешний проброс/проксирование портов.

        По умолчанию: 80

        Допустимые значения: 1 <= X <= 65535

      • spec.loadBalancer.httpsPort
        целое число

        Внешний порт для безопасного подключения по HTTPS на балансировщике, создаваемом через сервис типа LoadBalancer.

        Если не заданы оба параметра httpPort и httpsPort, сервис будет слушать стандартные порты 80 и 443. Если задан хотя бы один из этих параметров, для соответствующего типа подключения сервис будет слушать только явно указанные порты. Для типа подключения, для которого не задан параметр, ничего не меняется: прослушивается стандартный порт.

        Внимание. Поведение при смене портов зависит от облачного провайдера и может приводить к специфичным для каждого провайдера побочным эффектам (например, к пересозданию балансировщика или смене его публичного IP-адреса). Эти эффекты могут быть не документированы; перед использованием в production-среде протестируйте обновление сервиса.

        Внимание. Многие приложения (включая некоторые компоненты модулей Deckhouse) формируют абсолютные ссылки и редиректы без явного указания порта (подразумевая стандартные порты 80/443). При нестандартном httpsPort пользователи могут попадать на 443/tcp, а ссылки могут формироваться некорректно; рекомендуется использовать стандартные порты снаружи или настраивать внешний проброс/проксирование портов.

        По умолчанию: 443

        Допустимые значения: 1 <= X <= 65535

      • spec.loadBalancer.loadBalancerClass
        строка
        Класс балансировщика входящих сетевых запросов (пробрасывается в параметр spec.loadBalancerClass заказанного сервиса с типом LoadBalancer).

        Максимальная длина: 317

        Шаблон: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?[A-Za-z0-9]([-A-Za-z0-9_.]*[A-Za-z0-9])?$

      • spec.loadBalancer.realIPHeader
        строка

        Заголовок, из которого будет получен настоящий IP-адрес клиента.

        Работает только при включении behindL7Proxy.

        По умолчанию: X-Forwarded-For

        Шаблон: ^[A-Za-z0-9][A-Za-z0-9._-]*[A-Za-z0-9]$|^[A-Za-z0-9]$

        Пример:

        realIPHeader: CF-Connecting-IP
        
      • spec.loadBalancer.sourceRanges
        массив строк

        Список адресов в формате CIDR, которым разрешен доступ к балансировщику.

        Внимание. Облачный провайдер может не поддерживать данную опцию и игнорировать ее.

        • Провайдеры поддерживающие опцию: AWS, Azure, GCP.
        • Провайдеры игнорирующие опцию: Yandex Cloud.

        Для остальных облачных провайдеров поведение может зависеть от особенностей реализации облака. Протестируйте работу опции перед использованием в production-среде.

        • spec.loadBalancer.sourceRanges.Элемент массива
          строка

          Шаблон: ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\/(3[0-2]|[1-2][0-9]|[0-9]))$

    • spec.loadBalancerWithProxyProtocol
      объект
      Секция настроек инлета LoadBalancerWithProxyProtocol.
      • spec.loadBalancerWithProxyProtocol.acceptClientIPHeadersFrom
        массив строк
        Определяет список доверенных подсетей в формате CIDR, запросы от которых содержат корректные заголовки X-Forwarded-*/ProxyProtocol.

        По умолчанию: [ "0.0.0.0/0" ]

        Пример:

        acceptClientIPHeadersFrom: 192.168.0.0/24
        
        • spec.loadBalancerWithProxyProtocol.acceptClientIPHeadersFrom.Элемент массива
          строка

          Шаблон: ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\/(3[0-2]|[1-2][0-9]|[0-9]))$

      • spec.loadBalancerWithProxyProtocol.annotations
        объект

        Аннотации, которые будут назначены сервису для гибкой настройки балансировщика.

        Модуль не учитывает особенности указания аннотаций в различных облаках.

        Если аннотации для заказа балансировщика применяются только при создании сервиса, для обновления подобных параметров пересоздайте ресурс IngressNginxController (или создайте новый и удалите старый).

      • spec.loadBalancerWithProxyProtocol.behindL7Proxy
        булевый

        Включает совместную обработку заголовков X-Forwarded-* и Proxy Protocol.

        Используйте эту опцию для цепочки прокси, в которой L7-прокси передаёт адрес клиента в HTTP-заголовке, а расположенный после него L4-балансировщик использует Proxy Protocol.

        Внимание. Эта опция не поддерживается контроллерами версий 1.10 и 1.12. Используйте контроллер версии 1.14 или 1.15.

        Внимание. Укажите в acceptClientIPHeadersFrom CIDR всех доверенных промежуточных прокси. Значение по умолчанию 0.0.0.0/0 разрешает доверять заголовкам от любого адреса и допускает подмену IP клиента, если Ingress-контроллер доступен в обход L7-прокси.

      • spec.loadBalancerWithProxyProtocol.httpPort
        целое число

        Внешний порт для небезопасного подключения по HTTP на балансировщике, создаваемом через сервис типа LoadBalancer.

        Если не заданы оба параметра httpPort и httpsPort, сервис будет слушать стандартные порты 80 и 443. Если задан хотя бы один из этих параметров, для соответствующего типа подключения сервис будет слушать только явно указанные порты. Для типа подключения, для которого не задан параметр, ничего не меняется: прослушивается стандартный порт.

        Внимание. Поведение при смене портов зависит от облачного провайдера и может приводить к специфичным для каждого провайдера побочным эффектам (например, к пересозданию балансировщика или смене его публичного IP-адреса). Эти эффекты могут быть не документированы; перед использованием в production-среде протестируйте обновление сервиса.

        Внимание. ACME HTTP-01 (например, Let’s Encrypt через cert-manager) всегда проверяет доступность домена по TCP-порту 80. Если задать httpsPort без httpPort или изменить httpPort на значение отличное от 80, выпуск/продление сертификатов может перестать работать, если не используется DNS-01 или не настроен проброс порта 80 до контроллера на уровне внешнего балансировщика.

        Внимание. Многие приложения (включая некоторые компоненты модулей Deckhouse) формируют абсолютные ссылки и редиректы без явного указания порта (подразумевая стандартные порты 80/443). Если Ingress-контроллер доступен снаружи на нестандартных портах, редиректы могут вести на неправильный порт, а ссылки могут формироваться некорректно; рекомендуется использовать стандартные порты снаружи или настраивать внешний проброс/проксирование портов.

        По умолчанию: 80

        Допустимые значения: 1 <= X <= 65535

      • spec.loadBalancerWithProxyProtocol.httpsPort
        целое число

        Внешний порт для безопасного подключения по HTTPS на балансировщике, создаваемом через сервис типа LoadBalancer.

        Если не заданы оба параметра httpPort и httpsPort, сервис будет слушать стандартные порты 80 и 443. Если задан хотя бы один из этих параметров, для соответствующего типа подключения сервис будет слушать только явно указанные порты. Для типа подключения, для которого не задан параметр, ничего не меняется: прослушивается стандартный порт.

        Внимание. Поведение при смене портов зависит от облачного провайдера и может приводить к специфичным для каждого провайдера побочным эффектам (например, к пересозданию балансировщика или смене его публичного IP-адреса). Эти эффекты могут быть не документированы; перед использованием в production-среде протестируйте обновление сервиса.

        Внимание. Многие приложения (включая некоторые компоненты модулей Deckhouse) формируют абсолютные ссылки и редиректы без явного указания порта (подразумевая стандартные порты 80/443). При нестандартном httpsPort пользователи могут попадать на 443/tcp, а ссылки могут формироваться некорректно; рекомендуется использовать стандартные порты снаружи или настраивать внешний проброс/проксирование портов.

        По умолчанию: 443

        Допустимые значения: 1 <= X <= 65535

      • spec.loadBalancerWithProxyProtocol.loadBalancerClass
        строка
        Класс балансировщика входящих сетевых запросов (пробрасывается в параметр spec.loadBalancerClass заказанного сервиса с типом LoadBalancer).

        Максимальная длина: 317

        Шаблон: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?[A-Za-z0-9]([-A-Za-z0-9_.]*[A-Za-z0-9])?$

      • spec.loadBalancerWithProxyProtocol.realIPHeader
        строка

        Заголовок, из которого будет получен настоящий IP-адрес клиента.

        Работает только при включённой опции behindL7Proxy.

        По умолчанию: X-Forwarded-For

        Шаблон: ^[A-Za-z0-9][A-Za-z0-9._-]*[A-Za-z0-9]$|^[A-Za-z0-9]$

        Пример:

        realIPHeader: CF-Connecting-IP
        
      • spec.loadBalancerWithProxyProtocol.sourceRanges
        массив строк

        Список адресов в формате CIDR, которым разрешен доступ к балансировщику.

        Внимание. Облачный провайдер может не поддерживать данную опцию и игнорировать ее.

        Провайдеры поддерживающие опцию: AWS, Azure, GCP. Провайдеры игнорирующие опцию: Yandex Cloud.

        Для остальных облачных провайдеров поведение может зависеть от особенностей реализации облака. Протестируйте работу опции перед использованием в production-среде.

        • spec.loadBalancerWithProxyProtocol.sourceRanges.Элемент массива
          строка

          Шаблон: ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\/(3[0-2]|[1-2][0-9]|[0-9]))$

    • spec.loadBalancerWithSSLPassthrough
      объект
      Секция настроек инлета LoadBalancerWithSSLPassthrough.
      • spec.loadBalancerWithSSLPassthrough.annotations
        объект

        Аннотации, которые будут назначены сервису для гибкой настройки балансировщика.

        Модуль не учитывает особенности указания аннотаций в различных облаках.

        Если аннотации для заказа балансировщика применяются только при создании сервиса, для обновления подобных параметров пересоздайте ресурс IngressNginxController (или создайте новый и удалите старый).

      • spec.loadBalancerWithSSLPassthrough.httpPort
        целое число

        Внешний порт для небезопасного подключения по HTTP на балансировщике, создаваемом через сервис типа LoadBalancer.

        Если не заданы оба параметра httpPort и httpsPort, сервис будет слушать стандартные порты 80 и 443. Если задан хотя бы один из этих параметров, для соответствующего типа подключения сервис будет слушать только явно указанные порты. Для типа подключения, для которого не задан параметр, ничего не меняется: прослушивается стандартный порт.

        Внимание. Поведение при смене портов зависит от облачного провайдера и может приводить к провайдер-специфичным побочным эффектам (например, пересозданию балансировщика или смене его публичного IP-адреса). Эти эффекты могут быть не документированы; перед использованием в production-среде протестируйте обновление сервиса.

        Внимание. ACME HTTP-01 (например, Let’s Encrypt через cert-manager) всегда проверяет доступность домена по TCP-порту 80. Если задать httpsPort без httpPort или изменить httpPort на значение отличное от 80, выпуск/продление сертификатов может перестать работать, если не используется DNS-01 или не настроен проброс порта 80 до контроллера на уровне внешнего балансировщика.

        Внимание. Многие приложения (включая некоторые компоненты модулей Deckhouse) формируют абсолютные ссылки и редиректы без явного указания порта (подразумевая стандартные порты 80/443). Если Ingress-контроллер доступен снаружи на нестандартных портах, редиректы могут вести на неправильный порт, а ссылки могут формироваться некорректно; рекомендуется использовать стандартные порты снаружи или настраивать внешний проброс/проксирование портов.

        По умолчанию: 80

        Допустимые значения: 1 <= X <= 65535

      • spec.loadBalancerWithSSLPassthrough.httpsPort
        целое число

        Внешний порт для безопасного подключения по HTTPS на балансировщике, создаваемом через сервис типа LoadBalancer.

        Если не заданы оба параметра httpPort и httpsPort, сервис будет слушать стандартные порты 80 и 443. Если задан хотя бы один из этих параметров, для соответствующего типа подключения сервис будет слушать только явно указанные порты. Для типа подключения, для которого не задан параметр, ничего не меняется: прослушивается стандартный порт.

        Внимание. Поведение при смене портов зависит от облачного провайдера и может приводить к провайдер-специфичным побочным эффектам (например, пересозданию балансировщика или смене его публичного IP-адреса). Эти эффекты могут быть не документированы; перед использованием в production-среде протестируйте обновление сервиса.

        Внимание. Многие приложения (включая некоторые компоненты модулей Deckhouse) формируют абсолютные ссылки и редиректы без явного указания порта (подразумевая стандартные порты 80/443). При нестандартном httpsPort пользователи могут попадать на 443/tcp, а ссылки могут формироваться некорректно; рекомендуется использовать стандартные порты снаружи или настраивать внешний проброс/проксирование портов.

        По умолчанию: 443

        Допустимые значения: 1 <= X <= 65535

      • spec.loadBalancerWithSSLPassthrough.loadBalancerClass
        строка
        Класс балансировщика входящих сетевых запросов (пробрасывается в параметр spec.loadBalancerClass заказанного сервиса с типом LoadBalancer).

        Максимальная длина: 317

        Шаблон: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?[A-Za-z0-9]([-A-Za-z0-9_.]*[A-Za-z0-9])?$

      • spec.loadBalancerWithSSLPassthrough.sourceRanges
        массив строк

        Список адресов в формате CIDR, которым разрешен доступ к балансировщику.

        Внимание. Облачный провайдер может не поддерживать данную опцию и игнорировать ее.

        Провайдеры поддерживающие опцию: AWS, Azure, GCP. Провайдеры игнорирующие опцию: Yandex Cloud.

        Для остальных облачных провайдеров поведение может зависеть от особенностей реализации облака. Протестируйте работу опции перед использованием в production-среде.

        • spec.loadBalancerWithSSLPassthrough.sourceRanges.Элемент массива
          строка

          Шаблон: ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\/(3[0-2]|[1-2][0-9]|[0-9]))$

    • spec.maxReplicas
      целое число
      Максимальное количество реплик LoadBalancer, LoadBalancerWithProxyProtocol и LoadBalancerWithSSLPassthrough для HPA.

      По умолчанию: 1

      Допустимые значения: 1 <= X

    • spec.migrationGateway
      объект

      Направляет запросы от выбранных IP-адресов клиентов на Service, используемый как migration gateway, вместо бэкендов, настроенных в Ingress-ресурсах.

      Параметр предназначен для того, чтобы сетевые администраторы могли тестировать инфраструктуру Gateway API без переключения DNS-записей.

      Внимание. Используйте параметр с особой осторожностью. Он перенаправляет соответствующие клиентские запросы в обход бэкендов Ingress и может обходить поведение или политики, настроенные в отдельных location-блоках Ingress, что способно нарушить обработку клиентских запросов.

      Внимание. Не все возможности и заголовки ingress-nginx имеют прямые аналоги в реализациях Gateway API, и наоборот. Например, реализация GeoIP в Gateway API может использовать другие имена заголовков для передачи GeoIP-данных.

      Правило действует для всех Ingress-ресурсов данного контроллера. Migration gateway получает трафик по тому же протоколу, что и ingress-nginx: запросы, полученные контроллером по HTTP, отправляются на HTTP-порт Service, а запросы, полученные по HTTPS, повторно шифруются и отправляются на HTTPS-порт Service.

      Параметр не поддерживается для инлетов HostPortWithSSLPassthrough, LoadBalancerWithSSLPassthrough и HostWithFailover, а также при включенном enableIstioSidecar.

      Перенаправление на API migration gateway, ожидающий Proxy Protocol, не поддерживается. Целевые порты Service должны принимать обычный HTTP- или HTTPS-трафик и использовать перенаправленные заголовки для определения адреса клиента.

      Пользовательские http-snippet и server-snippet добавляются после директив, сгенерированных параметром. Они не должны переопределять d8_migration_gateway_* и location-блоки с префиксом /_d8_migration_gateway_.

      При совместном использовании с acceptRequestsFrom сначала проверяется allowlist по $realip_remote_addr, затем sourceCIDRs сопоставляется с $remote_addr.

      • spec.migrationGateway.serviceRef
        объект

        Обязательный параметр

        Ссылка на Service, используемый как migration gateway.
        • spec.migrationGateway.serviceRef.name
          строка

          Обязательный параметр

          Имя Service.

          Максимальная длина: 63

          Шаблон: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$

        • spec.migrationGateway.serviceRef.namespace
          строка

          Обязательный параметр

          Пространство имён Service.

          Максимальная длина: 63

          Шаблон: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$

        • spec.migrationGateway.serviceRef.ports
          объект

          Обязательный параметр

          • spec.migrationGateway.serviceRef.ports.http
            целое число

            Обязательный параметр

            HTTP-порт Service.

            Допустимые значения: 1 <= X <= 65535

          • spec.migrationGateway.serviceRef.ports.https
            целое число

            Обязательный параметр

            HTTPS-порт Service.

            Допустимые значения: 1 <= X <= 65535

      • spec.migrationGateway.sourceCIDRs
        массив строк

        Обязательный параметр

        Список IPv4-адресов клиентов в формате CIDR, запросы от которых направляются через migration gateway.
        • spec.migrationGateway.sourceCIDRs.Элемент массива
          строка

          Шаблон: ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\/(3[0-2]|[1-2][0-9]|[0-9]))$

    • spec.minReplicas
      целое число
      Минимальное количество реплик LoadBalancer, LoadBalancerWithProxyProtocol и LoadBalancerWithSSLPassthrough для HPA.

      По умолчанию: 1

      Допустимые значения: 1 <= X

    • spec.nodeSelector
      объект

      Аналогично параметру spec.nodeSelector у подов.

      Если значение не указано или указано false, Deckhouse попытается определить значение автоматически.

      Используйте формат стандартного списка nodeSelector. Поды инстанса унаследуют это поле как есть.

    • spec.resourcesRequests
      объект

      Настройки CPU и памяти для подов контроллера.

      В режиме VPA задаются границы (min/max) и при необходимости коэффициенты limits/requests для автоматически выставляемых запросов. В статическом режиме запросы и ограничения задаются в секции static.

      • spec.resourcesRequests.mode
        строка

        Обязательный параметр

        Режим управления запросами ресурсов.

        По умолчанию: VPA

        Допустимые значения: VPA, Static

      • spec.resourcesRequests.static
        объект
        Настройки статического режима управления.
        • spec.resourcesRequests.static.cpu
          строка
          Значение для запроса к CPU.

          По умолчанию: 350m

        • spec.resourcesRequests.static.limits
          объект
          Ограничения ресурсов.
          • spec.resourcesRequests.static.limits.cpu
            строка
            Ограничение CPU.
          • spec.resourcesRequests.static.limits.memory
            строка
            Ограничение памяти.
        • spec.resourcesRequests.static.memory
          строка
          Значение для запроса к памяти.

          По умолчанию: 500Mi

      • spec.resourcesRequests.vpa
        объект
        Настройки режима управления Vertical Pod Autoscaler (VPA).
        • spec.resourcesRequests.vpa.cpu
          объект
          Настройки ограничений запросов к CPU.
          • spec.resourcesRequests.vpa.cpu.limitRatio
            число

            Коэффициент соотношения limits/requests для CPU.

            Если параметр указан, limits рассчитываются на основе requests и заданного коэффициента.

          • spec.resourcesRequests.vpa.cpu.max
            строка
            Максимальное значение запроса к CPU, которое может выставить VPA.

            По умолчанию: 1500m

          • spec.resourcesRequests.vpa.cpu.min
            строка
            Минимальное значение запроса к CPU, которое может выставить VPA.

            По умолчанию: 100m

        • spec.resourcesRequests.vpa.memory
          объект
          Настройки ограничений запросов к памяти.
          • spec.resourcesRequests.vpa.memory.limitRatio
            число

            Коэффициент соотношения limits/requests для памяти.

            Если параметр указан, limits рассчитываются на основе requests и заданного коэффициента.

          • spec.resourcesRequests.vpa.memory.max
            строка
            Максимальное значение запроса к памяти, которое может выставить VPA.

            По умолчанию: 2000Mi

          • spec.resourcesRequests.vpa.memory.min
            строка
            Минимальное значение запроса к памяти, которое может выставить VPA.

            По умолчанию: 500Mi

        • spec.resourcesRequests.vpa.mode
          строка
          Режим работы VPA.

          По умолчанию: Initial

          Допустимые значения: Initial, InPlaceOrRecreate

    • spec.tolerations
      массив объектов

      Аналогично параметру spec.tolerations у подов.

      Если значение не указано или указано false, подам модуля автоматически устанавливаются все возможные tolerations.

      Используйте формат стандартного списка tolerations. Поды инстанса унаследуют это поле как есть.

      • spec.tolerations.effect
        строка

        Максимальная длина: 64

        Шаблон: ^(NoSchedule|PreferNoSchedule|NoExecute)?$

      • spec.tolerations.key
        строка

        Максимальная длина: 317

        Шаблон: ^$|^(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9]/)?([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9]$

      • spec.tolerations.operator
        строка

        По умолчанию: Equal

        Максимальная длина: 64

        Шаблон: ^(Equal|Exists)?$

      • spec.tolerations.tolerationSeconds
        целое число

        Допустимые значения: 0 <= X

      • spec.tolerations.value
        строка

        Максимальная длина: 63

        Шаблон: ^(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])?$

    • spec.underscoresInHeaders
      булевый

      Разрешает использовать символ нижнего подчеркивания в заголовках.

      Вспомогательные ресурсы:

      По умолчанию: false

    • spec.validationEnabled
      булевый

      Включает валидацию Ingress-правил.

      Внимание. Для валидации запускается отдельный под контроллера, что влечет за собой увеличение нагрузки на master-узлы кластера.

      По умолчанию: true

    • spec.validationIsolationMode
      строка

      Выбирает режим изоляции валидации.

      Внимание. Данный параметр применим только к контроллерам версий 1.14 и 1.15.

      Поддерживаемые режимы:

      • NoIsolation — изоляция при проверке конфигурации NGINX не применяется. Чтобы минимизировать риски безопасности, область проверки ограничена одним объектом Ingress, что приводит к «слабой» валидации.
      • IsolatedFilesystem — конфигурация NGINX проверяется в отдельной файловой системе без доступа к файловой системе работающего сервера NGINX, что эффективно сокращает поверхность атаки. Область проверки ограничена параметром ingressClass, что обеспечивает «сильную» валидацию.
      • IsolatedProcess — конфигурация NGINX проверяется внутри изолированной среды (песочницы), где отслеживается каждый системный вызов. Это наиболее безопасный режим изоляции, ограниченный параметром ingressClass.

      Внимание. Режим IsolatedProcess является экспериментальным и может не работать в средах с повышенными требованиями к безопасности, где запрещено создание новых пользовательских пространств имён или использование ptrace.

      Внимание. Для режима IsolatedProcess требуется containerd v2 на целевых узлах.

      По умолчанию: NoIsolation

      Допустимые значения: NoIsolation, IsolatedFilesystem, IsolatedProcess

    • spec.waitLoadBalancerOnTerminating
      целое число
      Количество секунд до того момента, когда эндпоинт /healthz начнёт возвращать код 500 после перехода пода в статус Terminating.
  • status
    объект
    • status.loadBalancer
      объект
      • status.loadBalancer.hostname
        строка
        DNS-имя балансировщика нагрузки.
      • status.loadBalancer.ip
        строка
        IP-адрес балансировщика нагрузки.