2019-10-23 21:06:03 +00:00
# Require pod resource requests and limits
2020-11-11 20:55:02 +00:00
Application workloads share cluster resources. Hence, it is important to manage resources assigned to each pod. It is recommended that `resources.requests` and `resources.limits` are configured per pod and include CPU and memory resources. Other resources such as GPUs may also be specified as needed.
2019-10-23 22:36:37 +00:00
2020-11-11 20:55:02 +00:00
If a namespace level request or limit is specified, defaults will automatically be applied to each pod based on the `LimitRange` configuration.
2019-10-23 21:06:03 +00:00
2020-11-11 20:55:02 +00:00
## Policy YAML
2019-10-23 21:06:03 +00:00
[require_pod_requests_limits.yaml ](best_practices/require_pod_requests_limits.yaml )
````yaml
2019-11-13 21:56:20 +00:00
apiVersion: kyverno.io/v1
2019-10-23 21:06:03 +00:00
kind: ClusterPolicy
metadata:
2019-11-11 05:06:49 +00:00
name: require-pod-requests-limits
2019-10-23 21:06:03 +00:00
spec:
2020-08-19 21:04:58 +00:00
validationFailureAction: audit
2019-10-23 21:06:03 +00:00
rules:
2019-11-11 05:06:49 +00:00
- name: validate-resources
2019-10-23 21:06:03 +00:00
match:
resources:
kinds:
- Pod
validate:
message: "CPU and memory resource requests and limits are required"
pattern:
spec:
containers:
- resources:
requests:
memory: "?*"
cpu: "?*"
limits:
memory: "?*"
````