Available with limitations in: CE, BE, SE
Available without limitations in: SE+, EE
The module has 8 alerts.
The module is not enabled by default in any bundles.
Settings
The module is configured using the ModuleConfig custom resource named cni-cilium (learn more about setting up Deckhouse…).
Example of the ModuleConfig/cni-cilium resource for configuring the module:
apiVersion: deckhouse.io/v1alpha1
kind: ModuleConfig
metadata:
  name: cni-cilium
spec:
  version: 1
  enabled: true
  settings: # <-- Module parameters from the "Parameters" section below.
Parameters
Schema version: 1
- objectsettings- booleansettings.activeL2NeighborDiscoveryEnabledEnables the Cilium L2 neighbor discoverymechanism, which helps ensure that ARP table entries are kept up-to-date on all cluster nodes.Default: true
- stringsettings.bpfLBModeeBPF LoadBalancer mode: - SNAT— traffic from the client to the pod (and back) passes through NAT, and accordingly the sender’s address is lost.
- DSR— traffic from the client to the pod passes with the sender’s address preserved, and back - according to the routing rules (bypassing the balancer). This mode saves network traffic and reduces delays, but only works for TCP traffic.
- Hybrid— TCP traffic is processed in DSR mode, and UDP traffic is processed in SNAT mode.
 Default: HybridAllowed values: SNAT,Hybrid,DSR
- booleansettings.createNodeRoutesCreate routes to Pods on other Nodes. All Nodes must be located in the same L2 domain. 
- booleansettings.debugLoggingEnabled debug logging for Cilium components. Default: false
- objectsettings.encryptionCNI Cilium encryption settings. - stringsettings.encryption.modeEncryption mode: - Disabled— encryption is disabled.
- 
    WireGuard— enables traffic encryption between pods using WireGuard.Note! Before using WireGuard encryption, please ensure that the Linux kernel running on the cluster nodes has support WireGuard (either via the CONFIG_WIREGUARD=m kernel config option on Linux 5.6 and newer, or using an external WireGuard module for older kernels). Note! Using WireGuard may cause significant CPU consumption by Cilium agent pods. 
 Default: DisabledAllowed values: Disabled,WireGuard
- booleansettings.encryption.nodeToNodeModeEnabledEnabling traffic encryption between nodes and pods in HostNetwork. Note! The node-to-node traffic from and to the control-plane nodes is left unencrypted to prevent possible communication issues when renewing WireGuard public keys. At the same time, the traffic between control-plane components is still encrypted at the application layer. Note! When this mode is active, NodePortandHostPortare not available from thePodNetwork.Default: false
 
- booleansettings.exclusiveCNIPluginPrevents additional CNI plugins from being enabled on cluster nodes. If the Istio module’s dataPlane.trafficRedirectionSetupModesetting is set toCNIPlugin, the option will be automatically set tofalse.Explicitly disabling this option is recommended only when using an additional CNI or a specific CNI plugin in the cluster. An example of such a use case could be the Linkerd CNI plugin. Default: true
- booleansettings.extraLoadBalancerAlgorithmsEnabledAllows selectively overriding the load balancing algorithm using eBPF between backends for individual services. The annotation service.cilium.io/lb-algorithmis used for overriding with one of the following values:random,maglev, orleast-conn.Note! This option requires the Linux kernel version on the nodes to be at least 5.15. Default: false
- array of stringssettings.labelsRegexCilium creates security identifiers based on the k8s entity labels. The more labels are involved in this process, the higher the access granularity that can be achieved. However, in large clusters, excessive granularity can create a heavy load. You can use the labelsRegexoption to explicitly specify which labels are to be used for security policies, and which labels are to be neglected. Refer to the documentation to learn more about reducing the identity cardinalityEach label must be specified by a RegExp expression in YAML quoted string format. Note that special characters must be escaped. Example: labelsRegex: - k8s:!app\.kubernetes\.io - k8s:io\.cilium\.k8s\.policy
- booleansettings.loadBalancerSourceRangeAllTypesEnable loadBalancerSourceRanges CIDR filtering for all service types, not just LoadBalancer services. The corresponding NodePort and ClusterIP will also apply the CIDR filter. For more detailed information, please visit the link. Default: true
- stringsettings.masqueradeModeCilium masquerade work mode for pods traffic leaving the cluster. - 
    BPF- use cilium BPF. Basic operation mode.In this mode, masquerade will not be used if the destination IP address is within the podSubnetCIDRorInternalIP/ExternalIPof any of the cluster nodes.
- 
    Netfilter- use kernel Netfilter(iptables/nf_tables).In this mode, masquerade will not be used if the destination IP address is within the podSubnetCIDRorInternalIP/ExternalIPof any of the cluster nodes.
 In BPFmode, ifExternalIPother thanInternalIPis specified for a cluster node, and that IP address is not currently assigned to any interface on the node, it will not be reachable from neighboring nodes from pods network. TheNetfiltermode allows you to bypass this limitation, but some other features stop working, such asEgressGateway`.Default: BPFAllowed values: Netfilter,BPF
- 
    
- booleansettings.policyAuditModeDo not enforce any Network Policy. Just log allowed/disallowed connections. Default: false
- settings.resourcesManagementSettings for CPU and memory requests and limits by cilium agent pods. Examples: resourcesManagement: mode: VPA vpa: mode: Auto cpu: min: 50m max: 2 limitRatio: 1.5 memory: min: 256Mi max: 2Gi limitRatio: 1.5resourcesManagement: mode: Static static: requests: cpu: 55m memory: 256Mi limits: cpu: 2 memory: 2Gi- stringsettings.resourcesManagement.modeResource management mode: Default: VPAAllowed values: VPA,Static
- objectsettings.resourcesManagement.staticResource management options for the Staticmode.- objectsettings.resourcesManagement.static.limitsConfiguring CPU and memory limits. - settings.resourcesManagement.static.limits.cpuConfiguring CPU limits. 
- settings.resourcesManagement.static.limits.memoryConfiguring memory limits. 
 
- objectsettings.resourcesManagement.static.requestsResource requests settings for pods. - settings.resourcesManagement.static.requests.cpuConfiguring CPU requests. 
- settings.resourcesManagement.static.requests.memoryConfiguring memory requests. 
 
 
- objectsettings.resourcesManagement.vpaResource management options for the VPAmode.- objectsettings.resourcesManagement.vpa.cpuCPU-related VPA settings. - numbersettings.resourcesManagement.vpa.cpu.limitRatioThe CPU limits/requests ratio. This ratio is used for calculating the initial CPU limits for a pod. If this parameter is set, the VPA will recalculate the CPU limits while maintaining the specified limits/requests ratio. 
- settings.resourcesManagement.vpa.cpu.maxThe maximum value that the VPA can set for the CPU requests. Default: 4
- settings.resourcesManagement.vpa.cpu.minThe minimum value that the VPA can set for the CPU requests. Default: 100m
 
- objectsettings.resourcesManagement.vpa.memoryMemory-related VPA settings. - numbersettings.resourcesManagement.vpa.memory.limitRatioThe memory limits/requests ratio. This ratio is used for calculating the initial memory limits for a pod. If this parameter is set, the VPA will recalculate the memory limits while maintaining the specified limits/requests ratio. 
- settings.resourcesManagement.vpa.memory.maxThe maximum memory requests the VPA can set. Default: 4Gi
- settings.resourcesManagement.vpa.memory.minThe minimum memory requests the VPA can set. Default: 128Mi
 
- stringsettings.resourcesManagement.vpa.modeVPA operating mode. Default: InitialAllowed values: Initial,Auto
 
 
- booleansettings.svcSourceRangeCheckFor services of the loadBalancertype, enables checking the source IP for compliance with loadBalancer.sourceRanges. The check is not performed if access is made from within the cluster or thesourceRangesparameter is empty/not specified. Some cloud providers support filtering of incoming traffic based on thesourceRangesparameter in their loadBalancer implementations. In such cases, the cilium documentation recommends disabling thesvcSourceRangeCheckoption.Do not enable if another balancer or any type of SNAT is running in front of the services. Default: false
- stringsettings.tunnelModeTunnel mode. Note! After changing the parameter, it is necessary to restart all nodes, otherwise, there may be problems with the availability of Pods! Note! VXLAN mode is not compatible with following bpfLBMode modes: Hybrid, DSR. bpfLBMode will be overriden to SNAT if the tunnelMode is VXLAN. Default: DisabledAllowed values: Disabled,VXLAN