Стадия жизненного цикла модуля: Preview
У модуля есть требования для установки

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

ALBInstance

Short names: albi

Scope: Namespaced
Version: v1alpha1

Внимание. Доступно в редакциях: EE, BE, SE, SE+, CSE

Определяет ресурс ALBInstance для настройки экземпляра ALB в рамках пользовательского неймспейса.

Namespaced-ресурс для Gateway уровня приложения или проекта.

Используйте его, когда:

  • команда должна управлять своим Gateway в собственном неймспейсе;
  • Gateway выделен под один проект;
  • достаточно режима LoadBalancer.

Пример:

apiVersion: network.deckhouse.io/v1alpha1
kind: ALBInstance
metadata:
  name: app-gw
  namespace: app
spec:
  gatewayName: app-gw
  inlet:
    type: LoadBalancer
    loadBalancer: {}
  • spec
    объект
    Спецификация ресурса ALBInstance, определяющая параметры шлюза, точки входа, сетевые ограничения и параметры размещения data-plane.
    • spec.acceptRequestsFrom
      массив строк
      Белый список источников, которым разрешено отправлять запросы.
      • 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
      объект
      Дополнительные заголовки, добавляемые в upstream-запросы.

      Примеры:

      my_static_header: my_value
      
      x-real-ip: '%REQ(CF-CONNECTING-IP)%'
      
    • spec.backendTLS
      объект
      Настройки TLS-клиента, передаваемые в управляемый Gateway. BackendTLSPolicy определяет backend-объекты, для которых используется клиентский сертификат.
      • spec.backendTLS.clientCertificateRef
        объект
        Ссылка на Kubernetes Secret типа kubernetes.io/tls с клиентским сертификатом и приватным ключом. CA настраивается через BackendTLSPolicy.
        • spec.backendTLS.clientCertificateRef.name
          строка

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

          Имя Secret.

          Минимальная длина: 1

        • spec.backendTLS.clientCertificateRef.namespace
          строка
          Неймспейс Secret. Если не указан, используется неймспейс Gateway.

          Минимальная длина: 1

    • spec.basicAuth
      объект
      Определяет, должна ли быть глобально включена basic-аутентификация.
      • spec.basicAuth.enabled
        булевый
        Указывает, включена ли basic-аутентификация.
      • spec.basicAuth.secret
        объект
        Определяет имя и неймспейс секрета, используемого для basic-аутентификации.
        • spec.basicAuth.secret.name
          строка

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

          Имя секрета.
        • spec.basicAuth.secret.namespace
          строка

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

          Неймспейс секрета.
    • spec.controllerPodsAdditionalAnnotations
      объект
      Дополнительные аннотации для подов контроллера и data-plane.
    • spec.enableHTTP3
      булевый

      Включает поддержку HTTP/3.

      Внимание. Данный параметр не может быть включён, если используется Proxy Protocol.

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

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

      Допустимые значения: Off, Critical, Error, Warning, Info, Debug, Trace

    • spec.frontendTLS
      объект
      Настройки проверки клиентских сертификатов frontend TLS, передаваемые в управляемый Gateway.
      • spec.frontendTLS.default
        объект

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

        Настройки проверки по умолчанию для всех HTTPS-listener.
        • spec.frontendTLS.default.validation
          объект
          Параметры проверки клиентского сертификата.
          • spec.frontendTLS.default.validation.caCertificateRefs
            массив объектов
            Список ссылок на ConfigMap с доверенными клиентскими CA в ключе ca.crt. Все указанные CA валидируются и объединяются в единый PEM bundle.
            • spec.frontendTLS.default.validation.caCertificateRefs.name
              строка
              Имя ConfigMap, содержащего CA в ключе ca.crt.

              Минимальная длина: 1

            • spec.frontendTLS.default.validation.caCertificateRefs.namespace
              строка
              Неймспейс ConfigMap. Если не указан, используется неймспейс Gateway.

              Минимальная длина: 1

          • spec.frontendTLS.default.validation.mode
            строка

            Режим проверки клиентского сертификата.

            AllowValidOnly — режим строгого mTLS. AllowInsecureFallback — режим опциональной валидации клиентского сертификата.

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

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

      • spec.frontendTLS.perPort
        массив объектов
        Настройки проверки для отдельных портов HTTPS-listener. Порт сопоставляется точно и полностью переопределяет настройки default для этого порта.
        • spec.frontendTLS.perPort.port
          целочисленный
          Порт HTTPS-listener.

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

        • spec.frontendTLS.perPort.tls
          объект
          Настройки проверки для этого порта.
          • spec.frontendTLS.perPort.tls.validation
            объект
            Параметры проверки клиентского сертификата.
            • spec.frontendTLS.perPort.tls.validation.caCertificateRefs
              массив объектов
              Список ссылок на ConfigMap с доверенными клиентскими CA в ключе ca.crt. Все указанные CA валидируются и объединяются в единый PEM bundle.
              • spec.frontendTLS.perPort.tls.validation.caCertificateRefs.name
                строка
                Имя ConfigMap, содержащего CA в ключе ca.crt.

                Минимальная длина: 1

              • spec.frontendTLS.perPort.tls.validation.caCertificateRefs.namespace
                строка
                Неймспейс ConfigMap. Если не указан, используется неймспейс Gateway.

                Минимальная длина: 1

            • spec.frontendTLS.perPort.tls.validation.mode
              строка

              Режим проверки клиентского сертификата.

              AllowValidOnly — режим строгого mTLS. AllowInsecureFallback — режим опциональной валидации клиентского сертификата.

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

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

    • spec.gatewayName
      строка

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

      Имя ресурса Gateway, к которому относится данный экземпляр.

      Длина: 1..45

    • spec.geoIP
      объект
      Конфигурация скачивания GeoIP-баз данных для proxy-подов.
      • spec.geoIP.headers
        объект
        HTTP-заголовки с GeoIP-данными, которые будут добавляться к запросам.
        • spec.geoIP.headers.anon
          строка
          Заголовок с информацией о принадлежности IP-адреса к анонимизирующим сетям, например VPN, proxy, Tor или хостинг-провайдерам.
        • spec.geoIP.headers.asn
          строка
          Заголовок с ASN.
        • spec.geoIP.headers.city
          строка
          Заголовок с городом.
        • spec.geoIP.headers.country
          строка
          Заголовок с кодом страны.
        • spec.geoIP.headers.isp
          строка
          Заголовок с ISP.
        • spec.geoIP.headers.region
          строка
          Заголовок с регионом или административным подразделением.
      • spec.geoIP.licenseKeySecretRef
        объект

        Ссылка на Secret с лицензионным ключом MaxMind.

        Для ALBInstance Secret должен находиться в том же namespace, что и сам ресурс.

        • spec.geoIP.licenseKeySecretRef.name
          строка

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

          Имя Secret.
      • spec.geoIP.maxmindEditionIDs
        массив строк

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

        Внимание. Текущая реализация поддерживает использование не более 4 редакций.

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

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

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

      • spec.geoIP.maxmindMirror
        объект
        Конфигурация зеркала для скачивания GeoIP-баз данных. Если параметр не задан, базы данных скачиваются напрямую с https://download.maxmind.com.
        • spec.geoIP.maxmindMirror.ca
          строка
          Пользовательский CA-сертификат в формате PEM для проверки TLS-соединений с зеркалом.

          Пример:

          ca: |
            -----BEGIN CERTIFICATE-----
            ...
            -----END CERTIFICATE-----
          
        • spec.geoIP.maxmindMirror.insecureSkipVerify
          булевый
          Пропустить проверку TLS-сертификата для зеркала.
        • spec.geoIP.maxmindMirror.url
          строка

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

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

          Шаблон: ^https?://.+$

          Примеры:

          url: https://mirror.local
          
          url: https://mirror.local/GeoLite2-City.tar.gz
          
    • spec.inlet
      объект

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

      Определяет способ поступления входящего трафика в data-plane.
      • spec.inlet.additionalPorts
        массив объектов
        Дополнительные порты сервиса, публикуемые помимо стандартных 80/443.
        • spec.inlet.additionalPorts.port
          целочисленный
          Номер дополнительного порта сервиса.

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

        • spec.inlet.additionalPorts.protocol
          строка
          Сетевой протокол дополнительного порта сервиса. На данный момент поддерживается только TCP.

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

      • spec.inlet.loadBalancer
        объект
        Параметры точки входа LoadBalancer.

        По умолчанию: {}

        • spec.inlet.loadBalancer.httpPort
          целочисленный

          Порт для небезопасных HTTP-соединений. Если значение не указано, используется порт 80.

          Можно установить в 0, чтобы отключить приём HTTP-соединений.

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

        • spec.inlet.loadBalancer.httpsPort
          целочисленный

          Порт для защищённых HTTPS-соединений. Если значение не указано, используется порт 443.

          Можно установить в 0, чтобы отключить приём HTTPS-соединений.

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

        • spec.inlet.loadBalancer.loadBalancerClass
          строка

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

          Внимание. Это поле нельзя изменить после создания объекта.

        • spec.inlet.loadBalancer.loadBalancerSourceRanges
          массив строк

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

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

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

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

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

            Шаблон: ^(([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.inlet.loadBalancer.serviceAnnotations
          объект
          Дополнительные аннотации для сервиса типа LoadBalancer.
      • spec.inlet.type
        строка

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

        Поддерживаемый тип точки входа.

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

    • spec.istioSidecar
      объект
      Параметры автоматической инъекции Istio-сайдкаров в поды прокси.
      • spec.istioSidecar.enabled
        булевый

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

        Для использования этой возможности с HTTPRoute настройте оба параметра:

        • аннотацию alb.network.deckhouse.io/service-upstream: "true": она направляет запросы на ClusterIP backend-сервиса вместо прямого обращения к подам, чтобы Istio-сайдкар мог перехватить трафик;
        • фильтр URLRewrite с FQDN backend-сервиса в поле hostname: он задаёт upstream Host, чтобы Istio-сайдкар распознал backend-сервис и установил mTLS.

        Пример:

        metadata:
          annotations:
            alb.network.deckhouse.io/service-upstream: "true"
        spec:
          rules:
            - filters:
                - type: URLRewrite
                  urlRewrite:
                    hostname: httpbin.test-backend.svc.cluster.local
      • spec.istioSidecar.resources
        объект
        Настройки requests и limits ресурсов для инжектируемого контейнера Istio-сайдкара.
        • spec.istioSidecar.resources.limits
          объект
          Лимиты ресурсов.
          • spec.istioSidecar.resources.limits.cpu
            строка
            Лимит CPU.
          • spec.istioSidecar.resources.limits.memory
            строка
            Лимит памяти.
        • spec.istioSidecar.resources.requests
          объект
          Запрашиваемые ресурсы.
          • spec.istioSidecar.resources.requests.cpu
            строка
            Запрос CPU.
          • spec.istioSidecar.resources.requests.memory
            строка
            Запрос памяти.
    • spec.minReplicas
      целочисленный
      Минимальное количество реплик Envoy Proxy. Если установлено значение больше 1, создается объект PodDisruptionBudget.

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

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

    • spec.nodeSelector
      объект
      Node selector для подов.
    • spec.openTelemetry
      объект
      Конфигурация OpenTelemetry для прокси Envoy.
      • spec.openTelemetry.tracing
        объект
        Настройки трассировки OpenTelemetry.
        • spec.openTelemetry.tracing.randomSamplingPercentage
          число
          Процент запросов, случайно выбираемых Envoy для генерации трассировок.

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

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

        • spec.openTelemetry.tracing.tls
          объект
          TLS-настройки, используемые Envoy при подключении к OpenTelemetry Collector.
          • spec.openTelemetry.tracing.tls.caSecretName
            строка
            Имя Kubernetes Secret, содержащего CA-сертификат для проверки сертификата OpenTelemetry Collector. Secret должен находиться в том же namespace, что и объект ALBInstance.

            Пример:

            caSecretName: otel-tracing-ca
            
          • spec.openTelemetry.tracing.tls.insecureSkipVerify
            булевый
            Позволяет Envoy подключаться к OpenTelemetry Collector, даже если проверка сертификата не проходит.
          • spec.openTelemetry.tracing.tls.sni
            строка

            Значение Server Name Indication (SNI), отправляемое Envoy при установлении TLS-сессии.

            Внимание. Необходимо указывать, если OpenTelemetry Collector находится за TLS-прокси или балансировщиком, который маршрутизирует соединения на основе SNI.

          • spec.openTelemetry.tracing.tls.subjectAltNames
            массив строк
            Список Subject Alternative Names (SAN) для верификации сертификата OpenTelemetry Collector.
        • spec.openTelemetry.tracing.url
          строка
          URL сервера OpenTelemetry Collector для экспорта трассировок.

          Шаблон: ^(https?|grpc)://([A-Za-z0-9](?:[-A-Za-z0-9]*[A-Za-z0-9])?)(?:\.([A-Za-z0-9](?:[-A-Za-z0-9]*[A-Za-z0-9])?))+(?::(6553[0-5]|655[0-2][0-9]|65[0-4][0-9]{2}|6[0-4][0-9]{3}|[1-5][0-9]{4}|[1-9][0-9]{0,3}))?(?:/[A-Za-z0-9._~!$&'()*+,;=:@%/-]*)?$

          Примеры:

          url: http://opentelemetry.collector.local
          
          url: grpc://opentelemetry.collector.local
          
          url: https://opentelemetry.collector.local
          
          url: https://opentelemetry.collector.local:4018
          
          url: https://opentelemetry.collector.local:4018/v1/traces
          
    • spec.originalIPDetection
      объект
      Определяет должен ли Envoy Proxy использовать заголовки при вычислении исходного IP-адреса клиента.
      • spec.originalIPDetection.realIPHeader
        строка
        Определяет заголовок используемый для вычисления исходного IP-адреса клиента.

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

        Пример:

        realIPHeader: X-Real-IP
        
      • spec.originalIPDetection.setRealIPFrom
        массив строк

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

        Определяет диапазоны CIDR, которым разрешено передавать заголовки для определения исходного IP-адреса клиента.
        • spec.originalIPDetection.setRealIPFrom.Элемент массива
          строка

          Шаблон: ^(([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.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/request CPU.

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

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

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

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

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

        • spec.resourcesManagement.vpa.memory
          объект
          Настройки VPA, связанные с памятью.

          По умолчанию: {}

          • spec.resourcesManagement.vpa.memory.limitRatio
            число

            Отношение limits/request памяти.

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

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

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

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

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

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

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

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

    • spec.tolerations
      массив объектов
      Tolerations для подов.
      • spec.tolerations.effect
        строка

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

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

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

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

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

      • spec.tolerations.value
        строка
    • spec.useProxyProtocol
      булевый

      Включает поддержку Proxy Protocol.

      Внимание. Данный параметр не может быть включён, если используется HTTP/3.

  • status
    объект
    Статус ресурса ALBInstance, отражающий фактическое состояние связанного Gateway и data-plane.
    • status.conflictBackendTLS
      булевый
      true, если backendTLS этого экземпляра конфликтует с настройкой другого экземпляра для того же Gateway.
    • status.conflictBackendTLSOwner
      строка
      Ссылка на экземпляр с другим клиентским сертификатом backendTLS для этого Gateway.
    • status.conflictFrontendTLS
      булевый
      true, если frontendTLS этого экземпляра конфликтует с настройкой другого экземпляра для того же Gateway.
    • status.conflictFrontendTLSOwner
      строка
      Ссылка на экземпляр с другой конфигурацией frontendTLS для этого Gateway.
    • status.conflictPorts
      булевый
      true, если additionalPorts этого экземпляра игнорируются, потому что авторитетным является другой, более старый экземпляр с тем же gatewayName.
    • status.conflictPortsOwner
      строка
      Ссылка на более старый экземпляр, который определяет фактические additionalPorts для данного gatewayName.
    • status.gateway
      строка
      Фактическое имя Gateway, обслуживаемого данным экземпляром.
    • status.observedGeneration
      целочисленный
      Номер поколения ресурса, обработанного контроллером.

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

    • status.ready
      булевый
      true, если экземпляр готов обслуживать трафик.
    • status.synced
      булевый
      true, если желаемое и фактическое состояние ресурсов синхронизированы.

ClusterALBInstance

Short names: calbi

Scope: Cluster
Version: v1alpha1

Определяет ресурс ClusterALBInstance для настройки экземпляра ALB на уровне кластера, расположенный в системном пространстве имен.

Cluster-scoped ресурс для общих или платформенных Gateway.

Используйте его, когда:

  • Gateway должен находиться в неймспейсе контроллера;
  • Gateway разделяется между несколькими приложениями или командами;
  • нужен режим HostPort;
  • нужны возможности уровня кластера вроде default Deckhouse Gateway.

Пример:

apiVersion: network.deckhouse.io/v1alpha1
kind: ClusterALBInstance
metadata:
  name: public-gw
spec:
  gatewayName: public-gw
  inlet:
    type: LoadBalancer
    loadBalancer: {}
  • spec
    объект
    Спецификация ресурса ClusterALBInstance, определяющая параметры шлюза, точки входа, сетевые ограничения и параметры размещения data-plane.
    • spec.acceptRequestsFrom
      массив строк
      Белый список источников, которым разрешено отправлять запросы.
      • 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
      объект
      Дополнительные HTTP-заголовки, добавляемые к запросам.

      Примеры:

      my_static_header: my_value
      
      x-real-ip: '%REQ(CF-CONNECTING-IP)%'
      
    • spec.backendTLS
      объект
      Настройки TLS-клиента, передаваемые в управляемый Gateway. BackendTLSPolicy определяет backend-объекты, для которых используется клиентский сертификат.
      • spec.backendTLS.clientCertificateRef
        объект
        Ссылка на Kubernetes Secret типа kubernetes.io/tls с клиентским сертификатом и приватным ключом. CA настраивается через BackendTLSPolicy.
        • spec.backendTLS.clientCertificateRef.name
          строка

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

          Имя Secret.

          Минимальная длина: 1

        • spec.backendTLS.clientCertificateRef.namespace
          строка
          Неймспейс Secret. Если не указан, используется неймспейс Gateway.

          Минимальная длина: 1

    • spec.basicAuth
      объект
      Определяет, должна ли быть глобально включена basic-аутентификация.
      • spec.basicAuth.enabled
        булевый
        Указывает, включена ли basic-аутентификация.
      • spec.basicAuth.secret
        объект
        Определяет имя и неймспейс секрета, используемого для basic-аутентификации.
        • spec.basicAuth.secret.name
          строка

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

          Имя секрета.
        • spec.basicAuth.secret.namespace
          строка

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

          Неймспейс секрета.
    • spec.controllerPodsAdditionalAnnotations
      объект
      Дополнительные аннотации для подов контроллера и data-plane.
    • spec.defaultDeckhouseGateway
      булевый

      Помечает шлюз как шлюз Deckhouse по умолчанию в кластере. Такой шлюз используется для публикации HTTP/HTTPS-эндпоинтов Deckhouse.

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

      Внимание. В настоящее время для шлюза по умолчанию должны быть настроены порты HTTP и HTTPS.

    • spec.enableHTTP3
      булевый

      Включает поддержку HTTP/3.

      Внимание. Данный параметр не может быть включён, если используется Proxy Protocol.

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

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

      Допустимые значения: Off, Critical, Error, Warning, Info, Debug, Trace

    • spec.frontendTLS
      объект
      Настройки проверки клиентских сертификатов frontend TLS, передаваемые в управляемый Gateway.
      • spec.frontendTLS.default
        объект

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

        Настройки проверки по умолчанию для всех HTTPS-listener.
        • spec.frontendTLS.default.validation
          объект
          Параметры проверки клиентского сертификата.
          • spec.frontendTLS.default.validation.caCertificateRefs
            массив объектов
            Список ссылок на ConfigMap с доверенными клиентскими CA в ключе ca.crt. Все указанные CA валидируются и объединяются в единый PEM bundle.
            • spec.frontendTLS.default.validation.caCertificateRefs.name
              строка
              Имя ConfigMap, содержащего CA в ключе ca.crt.

              Минимальная длина: 1

            • spec.frontendTLS.default.validation.caCertificateRefs.namespace
              строка
              Неймспейс ConfigMap. Если не указан, используется неймспейс Gateway.

              Минимальная длина: 1

          • spec.frontendTLS.default.validation.mode
            строка

            Режим проверки клиентского сертификата.

            AllowValidOnly — режим строгого mTLS. AllowInsecureFallback — режим опциональной валидации клиентского сертификата.

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

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

      • spec.frontendTLS.perPort
        массив объектов
        Настройки проверки для отдельных портов HTTPS-listener. Порт сопоставляется точно и полностью переопределяет настройки default для этого порта.
        • spec.frontendTLS.perPort.port
          целочисленный
          Порт HTTPS-listener.

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

        • spec.frontendTLS.perPort.tls
          объект
          Настройки проверки для этого порта.
          • spec.frontendTLS.perPort.tls.validation
            объект
            Параметры проверки клиентского сертификата.
            • spec.frontendTLS.perPort.tls.validation.caCertificateRefs
              массив объектов
              Список ссылок на ConfigMap с доверенными клиентскими CA в ключе ca.crt. Все указанные CA валидируются и объединяются в единый PEM bundle.
              • spec.frontendTLS.perPort.tls.validation.caCertificateRefs.name
                строка
                Имя ConfigMap, содержащего CA в ключе ca.crt.

                Минимальная длина: 1

              • spec.frontendTLS.perPort.tls.validation.caCertificateRefs.namespace
                строка
                Неймспейс ConfigMap. Если не указан, используется неймспейс Gateway.

                Минимальная длина: 1

            • spec.frontendTLS.perPort.tls.validation.mode
              строка

              Режим проверки клиентского сертификата.

              AllowValidOnly — режим строгого mTLS. AllowInsecureFallback — режим опциональной валидации клиентского сертификата.

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

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

    • spec.gatewayName
      строка

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

      Имя ресурса Gateway, к которому относится данный экземпляр.

      Длина: 1..45

    • spec.geoIP
      объект
      Конфигурация скачивания GeoIP-баз данных для proxy-подов.
      • spec.geoIP.headers
        объект
        HTTP-заголовки с GeoIP-данными, которые будут добавляться к запросам.
        • spec.geoIP.headers.anon
          строка
          Заголовок с информацией о принадлежности IP-адреса к анонимизирующим сетям, например VPN, proxy, Tor или хостинг-провайдерам.
        • spec.geoIP.headers.asn
          строка
          Заголовок с ASN.
        • spec.geoIP.headers.city
          строка
          Заголовок с городом.
        • spec.geoIP.headers.country
          строка
          Заголовок с кодом страны.
        • spec.geoIP.headers.isp
          строка
          Заголовок с ISP.
        • spec.geoIP.headers.region
          строка
          Заголовок с регионом или административным подразделением.
      • spec.geoIP.licenseKeySecretRef
        объект

        Ссылка на Secret с лицензионным ключом MaxMind.

        Для ClusterALBInstance Secret может находиться в любом namespace, но рекомендуется использовать d8-alb.

        • spec.geoIP.licenseKeySecretRef.name
          строка

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

          Имя Secret.
        • spec.geoIP.licenseKeySecretRef.namespace
          строка

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

          Namespace, в котором находится Secret.
      • spec.geoIP.maxmindEditionIDs
        массив строк

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

        Внимание. Текущая реализация поддерживает использование не более 4 редакций.

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

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

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

      • spec.geoIP.maxmindMirror
        объект
        Конфигурация зеркала для скачивания GeoIP-баз данных. Если параметр не задан, базы данных скачиваются напрямую с https://download.maxmind.com.
        • spec.geoIP.maxmindMirror.ca
          строка
          Пользовательский CA-сертификат в формате PEM для проверки TLS-соединений с зеркалом.

          Пример:

          ca: |
            -----BEGIN CERTIFICATE-----
            ...
            -----END CERTIFICATE-----
          
        • spec.geoIP.maxmindMirror.insecureSkipVerify
          булевый
          Пропустить проверку TLS-сертификата для зеркала.
        • spec.geoIP.maxmindMirror.url
          строка

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

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

          Шаблон: ^https?://.+$

          Примеры:

          url: https://mirror.local
          
          url: https://mirror.local/GeoLite2-City.tar.gz
          
    • spec.inlet
      объект

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

      Определяет способ поступления входящего трафика в data-plane.
      • spec.inlet.additionalPorts
        массив объектов
        Дополнительные порты сервиса, публикуемые помимо стандартных 80/443. Для точек входа HostPort эти порты также пробрасываются как hostPort на управляемом DaemonSet.
        • spec.inlet.additionalPorts.port
          целочисленный
          Номер дополнительного порта сервиса.

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

        • spec.inlet.additionalPorts.protocol
          строка
          Сетевой протокол дополнительного порта сервиса. На данный момент поддерживается только TCP.

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

      • spec.inlet.hostPort
        объект
        Параметры точки входа HostPort.
        • spec.inlet.hostPort.httpPort
          целочисленный

          Порт для небезопасных HTTP-соединений.

          Если параметр не задан, нельзя установить соединение по HTTP.

          Этот параметр обязателен, если не задан httpsPort.

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

        • spec.inlet.hostPort.httpsPort
          целочисленный

          Порт для защищённых HTTPS-соединений.

          Если параметр не задан, нельзя установить соединение по HTTPS.

          Этот параметр обязателен, если не задан httpPort.

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

      • spec.inlet.loadBalancer
        объект
        Параметры точки входа LoadBalancer.
        • spec.inlet.loadBalancer.httpPort
          целочисленный

          Порт для небезопасных HTTP-соединений. Если значение не указано, используется порт 80.

          Можно установить в 0, чтобы отключить приём HTTP-соединений.

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

        • spec.inlet.loadBalancer.httpsPort
          целочисленный

          Порт для защищённых HTTPS-соединений. Если значение не указано, используется порт 443.

          Можно установить в 0, чтобы отключить приём HTTPS-соединений.

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

        • spec.inlet.loadBalancer.loadBalancerClass
          строка

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

          Внимание. Это поле нельзя изменить после создания объекта.

        • spec.inlet.loadBalancer.loadBalancerSourceRanges
          массив строк

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

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

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

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

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

            Шаблон: ^(([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.inlet.loadBalancer.serviceAnnotations
          объект
          Дополнительные аннотации для сервиса типа LoadBalancer.
      • spec.inlet.type
        строка

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

        Поддерживаемый тип точки входа.

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

    • spec.istioSidecar
      объект
      Параметры автоматической инъекции Istio-сайдкаров в поды прокси.
      • spec.istioSidecar.enabled
        булевый

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

        Для использования этой возможности с HTTPRoute настройте оба параметра:

        • аннотацию alb.network.deckhouse.io/service-upstream: "true": она направляет запросы на ClusterIP backend-сервиса вместо прямого обращения к подам, чтобы Istio-сайдкар мог перехватить трафик;
        • фильтр URLRewrite с FQDN backend-сервиса в поле hostname: он задаёт upstream Host, чтобы Istio-сайдкар распознал backend-сервис и установил mTLS.

        Пример:

        metadata:
          annotations:
            alb.network.deckhouse.io/service-upstream: "true"
        spec:
          rules:
            - filters:
                - type: URLRewrite
                  urlRewrite:
                    hostname: httpbin.test-backend.svc.cluster.local
      • spec.istioSidecar.resources
        объект
        Настройки requests и limits ресурсов для инжектируемого контейнера Istio-сайдкара.
        • spec.istioSidecar.resources.limits
          объект
          Лимиты ресурсов.
          • spec.istioSidecar.resources.limits.cpu
            строка
            Лимит CPU.
          • spec.istioSidecar.resources.limits.memory
            строка
            Лимит памяти.
        • spec.istioSidecar.resources.requests
          объект
          Запрашиваемые ресурсы.
          • spec.istioSidecar.resources.requests.cpu
            строка
            Запрос CPU.
          • spec.istioSidecar.resources.requests.memory
            строка
            Запрос памяти.
    • spec.nodeSelector
      объект
      Node selector для подов.
    • spec.openTelemetry
      объект
      Конфигурация OpenTelemetry для прокси Envoy.
      • spec.openTelemetry.tracing
        объект
        Настройки трассировки OpenTelemetry.
        • spec.openTelemetry.tracing.randomSamplingPercentage
          число
          Процент запросов, случайно выбираемых Envoy для генерации трассировок.

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

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

        • spec.openTelemetry.tracing.tls
          объект
          TLS-настройки, используемые Envoy при подключении к OpenTelemetry Collector.
          • spec.openTelemetry.tracing.tls.caSecretName
            строка
            Имя Kubernetes Secret, содержащего CA-сертификат для проверки сертификата OpenTelemetry Collector. Secret должен находиться в d8-alb namespace.

            Пример:

            caSecretName: otel-tracing-ca
            
          • spec.openTelemetry.tracing.tls.insecureSkipVerify
            булевый
            Позволяет Envoy подключаться к OpenTelemetry Collector, даже если проверка сертификата не проходит.
          • spec.openTelemetry.tracing.tls.sni
            строка

            Значение Server Name Indication (SNI), отправляемое Envoy при установлении TLS-сессии.

            Внимание. Необходимо указывать, если OpenTelemetry Collector находится за TLS-прокси или балансировщиком, который маршрутизирует соединения на основе SNI.

          • spec.openTelemetry.tracing.tls.subjectAltNames
            массив строк
            Список Subject Alternative Names (SAN) для верификации сертификата OpenTelemetry Collector.
        • spec.openTelemetry.tracing.url
          строка
          URL сервера OpenTelemetry Collector для экспорта трассировок.

          Шаблон: ^(https?|grpc)://([A-Za-z0-9](?:[-A-Za-z0-9]*[A-Za-z0-9])?)(?:\.([A-Za-z0-9](?:[-A-Za-z0-9]*[A-Za-z0-9])?))+(?::(6553[0-5]|655[0-2][0-9]|65[0-4][0-9]{2}|6[0-4][0-9]{3}|[1-5][0-9]{4}|[1-9][0-9]{0,3}))?(?:/[A-Za-z0-9._~!$&'()*+,;=:@%/-]*)?$

          Примеры:

          url: http://opentelemetry.collector.local
          
          url: grpc://opentelemetry.collector.local
          
          url: https://opentelemetry.collector.local
          
          url: https://opentelemetry.collector.local:4018
          
          url: https://opentelemetry.collector.local:4018/v1/traces
          
    • spec.originalIPDetection
      объект
      Определяет должен ли Envoy Proxy использовать заголовки при вычислении исходного IP-адреса клиента.
      • spec.originalIPDetection.realIPHeader
        строка
        Определяет заголовок используемый для вычисления исходного IP-адреса клиента.

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

        Пример:

        realIPHeader: X-Real-IP
        
      • spec.originalIPDetection.setRealIPFrom
        массив строк

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

        Определяет диапазоны CIDR, которым разрешено передавать заголовки для определения исходного IP-адреса клиента.
        • spec.originalIPDetection.setRealIPFrom.Элемент массива
          строка

          Шаблон: ^(([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.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/request CPU.

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

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

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

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

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

        • spec.resourcesManagement.vpa.memory
          объект
          Настройки VPA, связанные с памятью.

          По умолчанию: {}

          • spec.resourcesManagement.vpa.memory.limitRatio
            число

            Отношение limits/request памяти.

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

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

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

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

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

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

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

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

    • spec.tolerations
      массив объектов
      Tolerations для подов.
      • spec.tolerations.effect
        строка

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

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

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

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

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

      • spec.tolerations.value
        строка
    • spec.useProxyProtocol
      булевый

      Включает поддержку Proxy Protocol.

      Внимание. Данный параметр не может быть включён, если используется HTTP/3.

  • status
    объект
    Статус ресурса ClusterALBInstance, отражающий фактическое состояние связанного Gateway и data-plane.
    • status.conflictBackendTLS
      булевый
      true, если backendTLS этого экземпляра конфликтует с настройкой другого экземпляра для того же Gateway.
    • status.conflictBackendTLSOwner
      строка
      Ссылка на экземпляр с другим клиентским сертификатом backendTLS для этого Gateway.
    • status.conflictFrontendTLS
      булевый
      true, если frontendTLS этого экземпляра конфликтует с настройкой другого экземпляра для того же Gateway.
    • status.conflictFrontendTLSOwner
      строка
      Ссылка на экземпляр с другой конфигурацией frontendTLS для этого Gateway.
    • status.conflictPorts
      булевый
      true, если additionalPorts этого экземпляра игнорируются, потому что авторитетным является другой, более старый экземпляр с тем же gatewayName.
    • status.conflictPortsOwner
      строка
      Ссылка на более старый экземпляр, который определяет фактические additionalPorts для данного gatewayName.
    • status.defaultDeckhouseGateway
      булевый
      true, если этот кластерный ClusterALBInstance выбран в качестве источника шлюза по умолчанию.
    • status.gateway
      строка
      Фактическое имя Gateway, обслуживаемого данным экземпляром.
    • status.observedGeneration
      целочисленный
      Номер поколения ресурса, обработанного контроллером.

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

    • status.ready
      булевый
      true, если экземпляр готов обслуживать трафик.
    • status.synced
      булевый
      true, если желаемое и фактическое состояние ресурсов синхронизированы.