Taint based evictions not working

I want to use taint-based evictions in order to evict certain pods when DiskPressure condition is true, but keep other pods running. As I understand from https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/, this can be achieved by adding disk-pressure tolerations to the pod, which I have done:

  - effect: NoExecute
    key: node.kubernetes.io/disk-pressure
    operator: Exists

However, this seems to have no effect. If I disable kubelet evictions (removing certain settings from hard and soft evictions), disk pressure condition never happens, even when the disk is completely full. If I enable hard or soft eviction, pods get evicted, regardless of their tolerations.

I’ve inspected the taint manager code in the node lifecycle controller, and it seems that it only checks for NoExecute taints. Kubelet will only taint the node with DiskPressure when kubelet eviction are enabled, and it will taint only with NoSchedule, while it should be NoExecute?

Is this a bug or am I configuring something wrong?

Cluster information:

Kubernetes version: v1.21.6 (latest master code seems to behave in the same way)
Cloud being used: bare-metal
Host OS: Debian