The module is not enabled by default in any bundles.
The module is configured using the ModuleConfig custom resource named network-gateway
(learn more about setting up Deckhouse…).
Example of the ModuleConfig/network-gateway
resource for configuring the module:
apiVersion: deckhouse.io/v1alpha1
kind: ModuleConfig
metadata:
name: network-gateway
spec:
version: 1
enabled: true
settings: # <-- Module parameters from the "Parameters" section below.
Parameters
Schema version: 1
- disableDHCP
Disables the DHCP server.
Default:
false
- dns
Settings to pass to clients via DHCP.
- dns.search
List of search domains.
Example:
search: - office.example.com - srv.example.com
- dns.servers
List of DNS servers.
Example:
servers: - 4.2.2.2 - 8.8.8.8
- nodeSelector
Required value
Selects nodes that will be used to configure iptables rules and to run the DHCP server.
The same as in the Pods’
spec.nodeSelector
parameter in Kubernetes. Instance Pods inherit this field as is.Example:
nodeSelector: type: network-gateway
- publicAddress
Required value
Replaces the src of the packets outgoing from the LAN.
Pattern:
^([0-9]{1,3}\.){3}[0-9]{1,3}$
Example:
publicAddress: 10.220.203.240
- storageClass
The name of the StorageClass to use for storing the DHCP lease.
If omitted, the StorageClass of the existing PVC is used. If there is no PVC yet, either the global StorageClass or
global.discovery.defaultStorageClass
is used, and if those are undefined, the emptyDir volume is used to store the data.global.discovery.defaultStorageClass
is applied during module activation, changing default StorageClass in cluster won’t result in disk re-provisioning.Dnsmasq (underlies our DHCP server) has its own mechanisms for protecting against the duplication of IP addresses if the lease database is lost (but it is better not to lose it).
- subnet
Required value
The address of a local subnet that gateway serves.
The DHCP options to pass to clients are generated based on this address:
- Address pool — numbers starting with 50 and up to the last one.
- Router — the subnet’s first address.
Pattern:
^([0-9]{1,3}\.){3}[0-9]{1,3}(\/([0-9]|[1-2][0-9]|3[0-2]))$
Example:
subnet: 192.168.42.0/24
- tolerations
Tolerations for DHCP Pods and iptables managers.
The same as in the Pods’
spec.tolerations
parameter in Kubernetes. The instance’s Pods inherit this field as is.- tolerations.effect
- tolerations.key
- tolerations.operator
- tolerations.tolerationSeconds
- tolerations.value