kpm (as the name suggests) is a program to manage kernel parameters. It reads
target values from the environment and sets them if they do not match.
To run as a DaemonSet on a Kubernetes cluster, to enforce a set of target
kernel parameters.
$ cargo install kpmFor each managed Kernel Parameter, set an environment variable to the target
value. The name of this variable should be the parameter name, prefixed with
sysctl-.
env sysctl-fs.inotify.max_queued_events=16384 \
sysctl-fs.inotify.max_user_instances=128 \
sysctl-fs.inotify.max_user_watches=8192 \
kpm enforceBy default, kpm only treats values that exactly match the target as
"correct". This can be overridden by prefixing the value with one of the
following identifiers:
| Prefix | Rule | Description |
|---|---|---|
| == | EqualTo | Value must be exactly equal to the target. |
| => | AtLeast | Value must be greater than or equal to the target. |
| =< | AtMost | Value must be less than or equal to the target. |
These do not work with non-integer parameters. Since the vast majority of kernel parameters are integers, this is unlikely to be a problem. Use with string parameters will report false negatives, and set the value every time.
| Name | Default Value | Examples | Description |
|---|---|---|---|
| KPM_LOG_FILTER | info | error, warn, info, debug, trace. | Configures log filtering |
| KPM_LOG_STYLE | auto | auto, always, never. | Configures log styling |
kpm is available under the MIT License, see LICENSE.txt for the full text.