Доступно с ограничениями в редакциях: SE, SE+, CSE Lite (1.67)
Доступно без ограничений в редакциях: EE, CSE Pro (1.67)
В модуле реализовано 7 алертов.
Модуль не включен по умолчанию в каком-либо наборе модулей.
Конверсии
Модуль настраивается с помощью ресурса ModuleConfig, схема которого содержит номер версии. При применении в кластере старой версии схемы ModuleConfig выполняются автоматические преобразования. Чтобы обновить версию схемы ModuleConfig вручную, необходимо последовательно для каждой версии выполнить следующие действия :
- Обновление из версии 1 в 2:
  Удалите все элементы addressPoolс протоколомlayer2.
Настройки
Чтобы настроить модуль, используйте ресурс ModuleConfig с именем metallb (подробнее о настройке Deckhouse…).
Пример ресурса ModuleConfig/metallb для настройки модуля:
apiVersion: deckhouse.io/v1alpha1
kind: ModuleConfig
metadata:
  name: metallb
spec:
  version: 2
  enabled: true
  settings: # <-- Параметры модуля из раздела "Параметры" ниже.
Параметры
Версия схемы: 2
Пример:
bgpPeers:
- peer-address: 192.168.1.1
  peer-asn: 1111
  my-asn: 2222
  source-address: 192.168.1.2
  hold-time: 10s
  node-selector:
    matchLabels:
      node: test
addressPools:
- name: my-pool-bgp
  protocol: bgp
  addresses:
  - 192.168.100.1-192.168.100.10
  - 192.168.101.0/24
  bgp-advertisements:
  - aggregation-length: 32
    localpref: 100
    communities:
    - no-advertise
bgpCommunities:
  no-advertise: 65535:65282
speaker:
  nodeSelector:
    mylabel: speaker
- объектsettings- массив объектовsettings.addressPoolsОбязательный параметр Список диапазонов IP, которые будут выдаваться сервисам. Формат — массив, как у оригинального MetalLB. По умолчанию: []- массив строкsettings.addressPools.addressesОбязательный параметр Список диапазонов, где диапазон — это либо подсеть с маской, либо диапазон значений с “-“ в качестве разделителя. 
- булевыйsettings.addressPools.auto-assignФлаг auto-assign используется для предотвращения автоматического выделения IP из пула. По умолчанию: true
- булевыйsettings.addressPools.avoid-buggy-ipsЗапрещает использование адресов из пула, заканчивающихся на .0и.255.По умолчанию: false
- массив объектовsettings.addressPools.bgp-advertisementsОпределяет BGP advertisements. - целочисленныйsettings.addressPools.bgp-advertisements.aggregation-lengthОпция aggregation-length позволяет «свернуть» префикс в более крупный. Работает для адресов IPv4. По умолчанию: 32Допустимые значения: 1 <= X
- массив строкsettings.addressPools.bgp-advertisements.communitiesBGP communities, связанные с анонсом. Каждый элемент — это ключ из параметра bgpCommunities. Пример: communities: - no-advertise
- целочисленныйsettings.addressPools.bgp-advertisements.localprefАтрибут BGP LOCAL_PREFиспользуется алгоритмом BGP best path.Путь с более высоким localpref предпочтительнее пути с более низким localpref. 
 
- строкаsettings.addressPools.nameОбязательный параметр Имя пула. Должно соответствовать RFC 1123: разделенные точками части в нижнем регистре, состоящие из букв и ‘-‘. Каждое имя должно начинаться и заканчиваться буквой алфавита. Шаблон: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
- строкаsettings.addressPools.protocolОбязательный параметр Технология публикации сервисов, которую должен реализовать speaker. Допустимые значения: bgp,layer2
 
- объектsettings.bgpCommunitiesДоступно в редакциях: EE, CSE Pro (1.67) Список BGP communities. Пример: bgpCommunities: no-advertise: 65535:65282
- массив объектовsettings.bgpPeersДоступно в редакциях: EE, CSE Pro (1.67) Список внешних BGP-роутеров, которые будут работать с этим модулем. Формат — массив, как у оригинального MetalLB. По умолчанию: []- строка или числоsettings.bgpPeers.hold-timeТаймаут, после которого партнерский BGP-пир считается утерянным. Это значение делится на 3 и получается интервал для keep-alive. Рекомендуемое значение — 3s(keep-alive раз в секунду), протокол BGP не поддерживает меньшие значения. По умолчанию —90s(keep-alive раз в 30 секунд).Шаблон: ^(0|(([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?)$
- целочисленныйsettings.bgpPeers.my-asnОбязательный параметр Номер автономной системы для кластера. Допустимые значения: 0 <= X <= 4294967295
- объектsettings.bgpPeers.node-selectorДополнительный псевдоселектор, который реализуется приложением speaker’а. Говорит о том, с каких узлов стоит устанавливать связь с внешними BGP-роутерами. Не путать с speaker.nodeSelectorиnodeSelector.Опциональный параметр. Формат — matchLabelsилиmatchExpressions.- массив объектовsettings.bgpPeers.node-selector.matchExpressions- строкаsettings.bgpPeers.node-selector.matchExpressions.key
- строкаsettings.bgpPeers.node-selector.matchExpressions.operator
- массив строкsettings.bgpPeers.node-selector.matchExpressions.values
 
- объектsettings.bgpPeers.node-selector.matchLabels
 
- строкаsettings.bgpPeers.passwordПароль аутентификации для BGP-маршрутизаторов, использующих TCP MD5-аутентифицированные сессии. 
- строкаsettings.bgpPeers.peer-addressОбязательный параметр IP внешнего BGP-роутера. Шаблон: ^([0-9]{1,3}\.){3}[0-9]{1,3}$
- целочисленныйsettings.bgpPeers.peer-asnОбязательный параметр Номер автономной системы на внешнем BGP-роутере. Допустимые значения: 0 <= X <= 4294967295
- целочисленныйsettings.bgpPeers.peer-portПорт, к которому устанавливать сессию. По умолчанию: 179Допустимые значения: 0 <= X <= 16384
- строкаsettings.bgpPeers.router-idID BGP-роутера для анонса. 
- строкаsettings.bgpPeers.source-addressIP-адрес для исходящих соединений. Шаблон: ^(?:[0-9]{1,3}\.){3}[0-9]{1,3}$
 
- строкаsettings.loadBalancerClassНеобязательное поле, описывающее класс LoadBalancer. Поле LoadBalancerClass следует использовать в режиме L2 LoadBalancer для указания MetalLoadBalancerClass, задающего параметры балансировщика для Service. 
- объектsettings.nodeSelectorСелектор узлов, на которых будет работать главный контроллер. Структура, аналогичная параметру spec.nodeSelectorпода Kubernetes.Если значение не указано или указано false, будет использоваться автоматика.
- объектsettings.speakerНастройки для компонента speaker, который реализует протокол публикации IP-адресов LoadBalancer’а для внешней инфраструктуры.- объектsettings.speaker.nodeSelectorОбязательный параметр Селектор узлов, на которых будет работать DaemonSet speaker. Структура, аналогичная параметру spec.nodeSelectorпода Kubernetes.Если значение не указано или указано false, будет использоваться автоматика.
- массив объектовsettings.speaker.tolerationsСтруктура для DaemonSet speaker’а, аналогичная параметру spec.tolerationsпода Kubernetes.Если значение не указано или указано false, будет использоваться автоматика.- строкаsettings.speaker.tolerations.effect
- строкаsettings.speaker.tolerations.key
- строкаsettings.speaker.tolerations.operator
- целочисленныйsettings.speaker.tolerations.tolerationSeconds
- строкаsettings.speaker.tolerations.value
 
 
- массив объектовsettings.tolerationsСтруктура, аналогичная параметру spec.tolerationsпода Kubernetes для главного контроллера.Если значение не указано или указано false, будет использоваться автоматика.- строкаsettings.tolerations.effect
- строкаsettings.tolerations.key
- строкаsettings.tolerations.operator
- целочисленныйsettings.tolerations.tolerationSeconds
- строкаsettings.tolerations.value