Developer Story
As a WMCO Developer, I want to explicitly set hard-eviction thresholds for kubelet configuration so that the node allocatable is calculated correctly without defaulting to Linux-only signals.
Description
Update the Windows node configuration to explicitly set available
Hard-eviction thresholds are not fully supported in Windows. However, passed threshold values are getting subtracted from node Capacity to determine the allocatable resources.
The upstream recommendation is to explicit configure the supported signals (e.g., "nodefs.available": "10%" and "imagefs.available": "15%") to ensures that node resource calculations are accurate. This change avoids the pitfalls of default Linux-specific signals that may not be supported.
Required
- Modify the kubelet configuration to explicitly set hard-eviction thresholds for Windows using the default values:
- "nodefs.available": "10%"
- "imagefs.available": "15%"
- check that these values are subtracted from the node Capacity to compute the allocatable resources.
- Update relevant documentation to reflect the changes and rationale based on Kubernetes eviction guidelines.
Engineering Details
- Reference the Kubernetes documentation on node pressure eviction signals: Node Pressure Eviction.
- Note that while "containerfs.available" works on Windows, it does not support threshold overrides, hence it is not configurable here.
- Avoid using default Linux-only signals.
Acceptance Criteria
- Kubelet configurations must explicitly set hard-eviction default thresholds ("nodefs.available": "10%" and "imagefs.available": "15%").
- Check the allocatable resource calculation on Windows nodes accurately subtracts these thresholds from the total Capacity.
- Update documentation with configuration details