Skip to content

Commit

Permalink
Modify rule S6873: Add examples for LimitRange (#4015)
Browse files Browse the repository at this point in the history
  • Loading branch information
jonas-wielage-sonarsource authored Jun 27, 2024
1 parent 7a7c79e commit 2d06669
Showing 1 changed file with 42 additions and 2 deletions.
44 changes: 42 additions & 2 deletions rules/S6873/kubernetes/rule.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,9 @@ might crash, causing downtime for all containers running on that node.

=== Code examples

To avoid potential issues specify a memory request for each container with `resources.requests.memory`.
To avoid potential issues, either specify a memory request for each container in a pod specification
or create a resource of a kind, `LimitRange`,
that sets a default memory request for all containers in all pod specifications belonging to the same namespace.

==== Noncompliant code example

Expand All @@ -53,6 +55,19 @@ spec:
image: nginx
----

[source,yaml,diff-id=2,diff-type=noncompliant]
----
apiVersion: v1
kind: Pod
metadata:
name: example
spec:
containers:
- name: web # Noncompliant
image: nginx
----


==== Compliant solution

[source,yaml,diff-id=1,diff-type=compliant]
Expand All @@ -70,11 +85,36 @@ spec:
memory: 100Mi
----

[source,yaml,diff-id=2,diff-type=compliant]
----
apiVersion: v1
kind: LimitRange
metadata:
name: mem-limit-range
namespace: default-mem-example
spec:
limits:
- type: Container
defaultRequest:
memory: 100Mi
---
apiVersion: v1
kind: Pod
metadata:
name: example
namespace: default-mem-example
spec:
containers:
- name: web
image: nginx
----


=== How does this work?

A request can be set through the property `resources.requests.memory` of a
container. Alternatively, a default request for a namespace can be set with
`LimitRange`.
`LimitRange` through `spec.limits[].defaultRequest.memory`.

== Resources

Expand Down

0 comments on commit 2d06669

Please sign in to comment.