diff --git a/pkg/kubelet/eviction/helpers.go b/pkg/kubelet/eviction/helpers.go index 322f618bf1b..3585b6565e9 100644 --- a/pkg/kubelet/eviction/helpers.go +++ b/pkg/kubelet/eviction/helpers.go @@ -203,7 +203,8 @@ func parseThresholdStatement(signal evictionapi.Signal, val string) (*evictionap if percentage < 0 { return nil, fmt.Errorf("eviction percentage threshold %v must be >= 0%%: %s", signal, val) } - if percentage > 100 { + // percentage is a float and should not be greater than 1 (100%) + if percentage > 1 { return nil, fmt.Errorf("eviction percentage threshold %v must be <= 100%%: %s", signal, val) } return &evictionapi.Threshold{ diff --git a/pkg/kubelet/eviction/helpers_test.go b/pkg/kubelet/eviction/helpers_test.go index 5b4e729fe6c..c6a76b0d2e1 100644 --- a/pkg/kubelet/eviction/helpers_test.go +++ b/pkg/kubelet/eviction/helpers_test.go @@ -387,6 +387,15 @@ func TestParseThresholdConfig(t *testing.T) { expectErr: true, expectThresholds: []evictionapi.Threshold{}, }, + "hard-signal-percentage-greater-than-100%": { + allocatableConfig: []string{}, + evictionHard: map[string]string{"memory.available": "150%"}, + evictionSoft: map[string]string{}, + evictionSoftGracePeriod: map[string]string{}, + evictionMinReclaim: map[string]string{}, + expectErr: true, + expectThresholds: []evictionapi.Threshold{}, + }, "soft-signal-negative": { allocatableConfig: []string{}, evictionHard: map[string]string{},