Fix kubelet to not accept negative eviction (hard, soft) thresholds
and add unit tests
This commit is contained in:
		| @@ -157,6 +157,10 @@ func parseThresholdStatement(statement string) (Threshold, error) { | ||||
| 	if err != nil { | ||||
| 		return Threshold{}, err | ||||
| 	} | ||||
| 	if quantity.Sign() < 0 { | ||||
| 		return Threshold{}, fmt.Errorf("eviction threshold %v cannot be negative: %s", signal, &quantity) | ||||
| 	} | ||||
|  | ||||
| 	return Threshold{ | ||||
| 		Signal:   signal, | ||||
| 		Operator: operator, | ||||
|   | ||||
| @@ -83,6 +83,22 @@ func TestParseThresholdConfig(t *testing.T) { | ||||
| 			expectErr:               true, | ||||
| 			expectThresholds:        []Threshold{}, | ||||
| 		}, | ||||
| 		"hard-signal-negative": { | ||||
| 			evictionHard:            "memory.available<-150Mi", | ||||
| 			evictionSoft:            "", | ||||
| 			evictionSoftGracePeriod: "", | ||||
| 			evictionMinReclaim:      "", | ||||
| 			expectErr:               true, | ||||
| 			expectThresholds:        []Threshold{}, | ||||
| 		}, | ||||
| 		"soft-signal-negative": { | ||||
| 			evictionHard:            "", | ||||
| 			evictionSoft:            "memory.available<-150Mi", | ||||
| 			evictionSoftGracePeriod: "", | ||||
| 			evictionMinReclaim:      "", | ||||
| 			expectErr:               true, | ||||
| 			expectThresholds:        []Threshold{}, | ||||
| 		}, | ||||
| 		"duplicate-signal": { | ||||
| 			evictionHard:            "memory.available<150Mi,memory.available<100Mi", | ||||
| 			evictionSoft:            "", | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Avesh Agarwal
					Avesh Agarwal