-
Bug
-
Resolution: Done
-
Undefined
-
None
-
4.9
-
Moderate
-
None
-
False
-
Description of problem:
When configuring memory manager in a KubeletConfig, it errors when using lower case "static" policy (like CPUManager uses), ex: apiVersion: machineconfiguration.openshift.io/v1 kind: KubeletConfig metadata: name: pin spec: machineConfigPoolSelector: matchLabels: custom-kubelet: cpumanager-enabled kubeletConfig: cpuManagerPolicy: static cpuManagerReconcilePeriod: 5s reservedSystemCPUs: "0,1,2,3,112,113,114,115" topologyManagerPolicy: single-numa-node memoryManagerPolicy: static reservedMemory: - numaNode: 0 limits: memory: "1124Mi" Resulted in the node not starting kubelet due to: Oct 13 16:13:02 worker-perf52 hyperkube[17970]: E1013 16:13:02.747246 17970 container_manager_linux.go:360] "Failed to initialize memory manager" err="unknown policy: \"static\"" Oct 13 16:13:02 worker-perf52 hyperkube[17970]: E1013 16:13:02.747255 17970 server.go:294] "Failed to run kubelet" err="failed to run Kubelet: unknown policy: \"static\"" Oct 13 16:13:02 worker-perf52 systemd[1]: kubelet.service: Main process exited, code=exited, status=1/FAILURE This was only resolved by changing the policy to upper case "Static" Ideally it could accept "static" or "Static", but at least it would be less confusing if it matched the example CPUManager lower case "static" syntax, ex: https://docs.openshift.com/container-platform/4.11/scalability_and_performance/using-cpu-manager.html
Version-Release number of selected component (if applicable):
4.9
How reproducible:
Every time "static" is used for memory manager policy the node will not become Ready due to kubelet failure.
Steps to Reproduce:
1. oc create -f KubeletConfig.yaml (from above) 2. check node journal logs to confirm why kubelet is failing 3. recover by manually editing the policy to be "Static"
Actual results:
Kubelet fails to start
Expected results:
Policy is not case sensitive or at least matches the long used CPUManager lower case
Additional info:
Also OpenShift docs showing an example memory manager KubeletConfig could be very helpful!
- links to