Перейти к содержанию

Поддерживаемые аннотации подов

Sidecar-прокси решение Вебмониторэкс можно настраивать на уровне отдельных подов приложений с помощью аннотаций. Набор поддерживыемых аннотаций приведен в этом документе.

Приоритеты глобальных настроек и настроек на уровне подов

Аннотации на уровне подов приложений имеют приоритет над настройками values.yaml.

Перед применением аннотации, добавьте к ее имени префикс sidecar.wallarm.io/, например:

sidecar.wallarm.io/wallarm-mode: block

Список аннотаций

Аннотация и соответствующий параметр Helm-чарта Описание
Аннотация: sidecar-injection-schema

config.injectionStrategy.schema
Модель деплоя контейнеров Вебмониторэкс: single (по умолчанию) или split.
Аннотация: sidecar-injection-iptables-enable

config.injectionStrategy.iptablesEnable
Необходимость запуска init-контейнера iptables: true (по умолчанию) или false.
Аннотация: wallarm-application

Нет параметра Helm-чарта
ID приложения в Вычислительном кластере Вебмониторэкс.
Аннотация: wallarm-block-page

Нет параметра Helm-чарта
Страница блокировки и код ошибки, которые возвращаются в ответ на заблокированный запрос.
Аннотация: wallarm-enable-libdetection

config.wallarm.enableLibDetection
Дополнительная валидация атак типа SQL-инъекций с помощью библиотеки libdetection: on (по умолчанию) или off.
Аннотация: wallarm-fallback

config.wallarm.fallback
Аварийный режим для модулей Вебмониторэкс: on (по умолчанию) или off.
Аннотация: wallarm-mode

config.wallarm.mode
Режим фильтрации трафика: monitoring (по умолчанию), safe_blocking, block или off.
Аннотация: wallarm-mode-allow-override

config.wallarm.modeAllowOverride
Управляет возможностью переопределять значение директивы wallarm_mode через правила, выгружаемые из Вычислительного кластера: on (по умолчанию), off или strict.
Аннотация: wallarm-parser-disable

Нет параметра Helm-чарта
Парсеры, которые необходимо отключить при анализе запросов. Значение директивы должно соответствовать названию парсера, который необходимо отключить, например: json. Для разделения нескольких парсеров используйте точку с запятой, например: json;base64.
Аннотация: wallarm-parse-response

config.wallarm.parseResponse
Флаг для включения / выключения анализа ответов приложения: on (по умолчанию) или off. Анализ ответов необходим для определения уязвимостей приложения с помощью пассивного обнаружения и активной проверки атак.
Аннотация: wallarm-parse-websocket

config.wallarm.parseWebsocket
Вебмониторэкс полностью поддерживает WebSockets. По умолчанию сообщения WebSockets не анализируются на предмет атак. Чтобы включить поиск атак в сообщениях WebSockets, задайте значение on в этой аннотации. По умолчанию аннотация имеет значение off.
Аннотация: wallarm-unpack-response

config.wallarm.unpackResponse
Флаг для включения / выключения распаковки сжатых данных, полученных в ответе приложения: on (по умолчанию) или off.
Аннотация: wallarm-upstream-connect-attempts

config.wallarm.upstream.connectAttempts
Количество немедленных попыток повторного соединения с Tarantool или Вебмониторэкс API.
Аннотация: wallarm-upstream-reconnect-interval

config.wallarm.upstream.reconnectInterval
Интервал между попытками переподключения к Tarantool или Вебмониторэкс API после того, как количество неудачных попыток превысило порог.
Аннотация: application-port

config.nginx.applicationPort
Если сервисы Вебмониторэкс не обнаружили открытые порты, на которые поступает трафик приложения, контейнер Вебмониторэкс ожидает трафик на этом порте.
Аннотация: nginx-listen-port

config.nginx.listenPort
Порт контейнера Вебмониторэкс. Значение не должно совпадать с application-port.
Аннотация: nginx-http-include

Нет параметра Helm-чарта
Массив путей до примонтированных файлов с конфигурацией, которую необходимо вставить в блок http NGINX.
Аннотация: nginx-http-snippet

Нет параметра Helm-чарта
Строка с конфигурацией, которую необходимо вставить в блок http NGINX.
Аннотация: nginx-server-include

Нет параметра Helm-чарта
Массив путей до примонтированных файлов с конфигурацией, которую необходимо вставить в блок server NGINX.
Аннотация: nginx-server-snippet

Нет параметра Helm-чарта
Строка с конфигурацией, которую необходимо вставить в блок server NGINX.
Аннотация: nginx-location-include

Нет параметра Helm-чарта
Массив путей до примонтированных файлов с конфигурацией, которую необходимо вставить в блок location NGINX.
Аннотация: nginx-location-snippet

Нет параметра Helm-чарта
Строка с конфигурацией, которую необходимо вставить в блок location NGINX.
Аннотация: nginx-extra-modules

Нет параметра Helm-чарта
Массив из имен дополнительных модулей NGINX.
Аннотация: proxy-extra-volumes

Нет параметра Helm-чарта
Volumes, которые необходимо примонтировать в sidecar-контейнер (массив).
Аннотация: proxy-extra-volume-mounts

Нет параметра Helm-чарта
Volume mounts, которые необходимо примонтировать в sidecar-контейнер (массив).
Аннотация: proxy-cpu

config.sidecar.containers.proxy.resources.requests.cpu
Запрашиваемые ресурсы CPU для контейнера sidecar-proxy.
Аннотация: proxy-memory

config.sidecar.containers.proxy.resources.requests.memory
Запрашиваемая память для контейнера sidecar-proxy.
Аннотация: proxy-cpu-limit

config.sidecar.containers.proxy.resources.limits.cpu
Лимит CPU для контейнера sidecar-proxy.
Аннотация: proxy-memory-limit

config.sidecar.containers.proxy.resources.limits.memory
Лимит памяти для контейнера sidecar-proxy.
Аннотация: helper-cpu

config.sidecar.containers.helper.resources.requests.cpu
Запрашиваемые ресурсы CPU для контейнера sidecar-helper.
Аннотация: helper-memory

config.sidecar.containers.helper.resources.requests.memory
Запрашиваемая память для контейнера sidecar-helper.
Аннотация: helper-cpu-limit

config.sidecar.containers.helper.resources.limits.cpu
Лимит CPU для контейнера sidecar-helper.
Аннотация: helper-memory-limit

config.sidecar.containers.helper.resources.limits.memory
Лимит памяти для контейнера sidecar-helper.
Аннотация: init-iptables-cpu

config.sidecar.initContainers.iptables.resources.requests.cpu
Запрашиваемые ресурсы CPU для контейнера sidecar-init-iptables.
Аннотация: init-iptables-memory

config.sidecar.initContainers.iptables.resources.requests.memory
Запрашиваемая память для контейнера sidecar-init-iptables.
Аннотация: init-iptables-cpu-limit

config.sidecar.initContainers.iptables.resources.limits.cpu
Лимит CPU для контейнера sidecar-init-iptables.
Аннотация: init-iptables-memory-limit

config.sidecar.initContainers.iptables.resources.limits.memory
Лимит памяти для контейнера sidecar-init-iptables.
Аннотация: init-helper-cpu

config.sidecar.initContainers.helper.resources.requests.cpu
Запрашиваемые ресурсы CPU для контейнера sidecar-init-helper.
Аннотация: init-helper-memory

config.sidecar.initContainers.helper.resources.requests.memory
Запрашиваемая память для контейнера sidecar-init-helper.
Аннотация: init-helper-cpu-limit

config.sidecar.initContainers.helper.resources.limits.cpu
Лимит CPU для контейнера sidecar-init-helper.
Аннотация: init-helper-memory-limit

config.sidecar.initContainers.helper.resources.limits.memory
Лимит памяти для контейнера sidecar-init-helper.

Вебмониторэкс поддерживает и другие директивы NGINX, для которых нет отдельных аннотаций. Вы можете задать любые из них с помощью аннотаций nginx-*-snippet и nginx-*-include.

Как использовать аннотации?

Чтобы применить аннотацию к поду, задайте ее в конфигурации соответствующего объекта Deployment, например:

kubectl edit deployment -n <KUBERNETES_NAMESPACE> <APP_LABEL_VALUE>
apiVersion: apps/v1
kind: Deployment
metadata:
  name: myapp
  namespace: default
spec:
  replicas: 1
  selector:
    matchLabels:
      app: myapp
  template:
    metadata:
      labels:
        app: myapp
        wallarm-sidecar: enabled
      annotations:
        sidecar.wallarm.io/wallarm-mode: block
    spec:
      containers:
        - name: application
          image: kennethreitz/httpbin
          ports:
            - name: http
              containerPort: 80