diff --git a/checks/cpuLimitsRange.yaml b/checks/cpuLimitsRange.yaml new file mode 100644 index 00000000..4e8fcf1e --- /dev/null +++ b/checks/cpuLimitsRange.yaml @@ -0,0 +1,25 @@ +successMessage: CPU limits are within the required range +failureMessage: CPU limits should be within the required range +category: Efficiency +target: Container +containers: + exclude: + - initContainer +schema: + '$schema': http://json-schema.org/draft-07/schema + type: object + required: + - resources + properties: + resources: + type: object + required: + - limits + properties: + limits: + required: + - cpu + properties: + cpu: + resourceMinimum: 200m + resourceMaximum: "2" diff --git a/pkg/config/checks.go b/pkg/config/checks.go index 83d463ed..cb253e03 100644 --- a/pkg/config/checks.go +++ b/pkg/config/checks.go @@ -38,6 +38,7 @@ var ( "memoryRequestsMissing", "cpuLimitsMissing", "cpuRequestsMissing", + "cpuLimitsRange", "readinessProbeMissing", "livenessProbeMissing", "pullPolicyNotAlways", diff --git a/test/checks/cpuLimitsRange/failure.number.yaml b/test/checks/cpuLimitsRange/failure.number.yaml new file mode 100644 index 00000000..4f76f4b5 --- /dev/null +++ b/test/checks/cpuLimitsRange/failure.number.yaml @@ -0,0 +1,14 @@ +apiVersion: v1 +kind: Pod +metadata: + name: nginx + labels: + app.kubernetes.io/name: nginx +spec: + containers: + - name: nginx + image: nginx + resources: + limits: + memory: 128Mi + cpu: 5 diff --git a/test/checks/cpuLimitsRange/success.number.yaml b/test/checks/cpuLimitsRange/success.number.yaml new file mode 100644 index 00000000..ce530e2c --- /dev/null +++ b/test/checks/cpuLimitsRange/success.number.yaml @@ -0,0 +1,14 @@ +apiVersion: v1 +kind: Pod +metadata: + name: nginx + labels: + app.kubernetes.io/name: nginx +spec: + containers: + - name: nginx + image: nginx + resources: + limits: + memory: 128Mi + cpu: 1