Доступно только в Enterprise Edition.

Модуль не включен по умолчанию в каком-либо наборе модулей.

Как явно включить или отключить модуль…

Обратите внимание, что при установке Deckhouse для явного включения/отключения и настройки модуля используется параметр configOverrides ресурса InitConfiguration, а не ModuleConfig.

Чтобы явно включить или выключить модуль network-gateway при установке Deckhouse, укажите networkGatewayEnabled: true или networkGatewayEnabled: false в секции configOverrides.

Чтобы задать настройки модуля при установке Deckhouse, используйте секцию networkGateway параметра configOverrides.

Чтобы явно включить или выключить модуль network-gateway, установите spec.enabled в true или false в ModuleConfig/network-gateway.

Пример включения модуля network-gateway:

apiVersion: deckhouse.io/v1alpha1
kind: ModuleConfig
metadata:
  name: network-gateway
spec:
  enabled: true

Пример выключения модуля network-gateway:

apiVersion: deckhouse.io/v1alpha1
kind: ModuleConfig
metadata:
  name: network-gateway
spec:
  enabled: false

Чтобы настроить модуль используйте custom resource ModuleConfig с именем network-gateway (подробнее о настройке Deckhouse…).

Пример ресурса ModuleConfig/network-gateway для настройки модуля:

apiVersion: deckhouse.io/v1alpha1
kind: ModuleConfig
metadata:
  name: network-gateway
spec:
  version: 1
  enabled: true
  settings: # <-- Параметры модуля из раздела "Параметры" ниже.

Параметры

Версия схемы: 1

  • disableDHCPбулевый

    Отключает DHCP-сервер.

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

  • dnsобъект

    Настройки, которые будут переданы клиентам через DHCP.

    • dns.searchмассив строк

      Список search-доменов.

      Пример:

      search:
      - office.example.com
      - srv.example.com
      
    • dns.serversмассив строк

      Список DNS-серверов.

      Пример:

      servers:
      - 4.2.2.2
      - 8.8.8.8
      
  • nodeSelectorобъект

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

    Cелектор, который идентифицирует узлы, на которых будут настроены правила iptables и на которых будет работать DHCP-сервер.

    Структура, аналогичная spec.nodeSelector Kubernetes Pod. Pod’ы инстанса унаследуют это поле как есть.

    Пример:

    nodeSelector:
      type: network-gateway
    
  • publicAddressстрока

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

    Адрес, на который будет заменен src-адрес исходящих из локальной сети пакетов.

    Шаблон: ^([0-9]{1,3}\.){3}[0-9]{1,3}$

    Пример:

    publicAddress: 10.220.203.240
    
  • storageClassстрока

    Имя storageClass’а, который использовать для хранения DHCP lease.

    Если не указано — используется StorageClass существующей PVC, а если PVC пока нет — используется или глобальный StorageClass, или global.discovery.defaultStorageClass, а если и их нет — данные сохраняются в emptyDir.

    Dnsmasq, на котором основан наш DHCP-сервер имеет свои механизмы защиты от дублирования IP-адресов в случае утери базы с lease-ами, но лучше её не терять.

  • subnetстрока

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

    Адрес локальной подсети, которую должен обслуживать шлюз.

    На основе этого адреса будут сформированы DHCP-опции для выдачи клиентам:

    • Пул адресов — номера с 50 по последний.
    • Роутер — первый адрес в подсети.

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

    Пример:

    subnet: 192.168.42.0/24
    
  • tolerationsмассив объектов

    Toleration’ы для Pod’ов c DHCP и с настройщиками iptables.

    Стандартный список toleration. Pod’ы инстанса унаследуют это поле как есть.

    • tolerations.effectстрока
    • tolerations.keyстрока
    • tolerations.operatorстрока
    • tolerations.tolerationSecondsцелочисленный
    • tolerations.valueстрока