SUMMARY
<!--- Explain the problem briefly below -->
https://gerrit.onap.org/r/gitweb?p=oom.git;a=blob_plain;f=kubernetes/policy/components/policy-drools-pdp/values.yaml;hb=refs/heads/master
resources:
small:
limits:
cpu: 1
memory: 0.8Gi
requests:
cpu: 0.5
memory: 0.8Gi
In our case we changed it to
resources:
small:
limits:
cpu: 1
memory: 0.8Gi
requests:
cpu: 0.5
memory: 0.8Gi
large:
limits:
cpu: 2
memory: 1.6Gi
requests:
cpu: 1
memory: 1.6Gi
This results into
{
"pod_name": "onap-policy-drools-pdp-0",
"requests": [
"128Mi",
"1932735283200m"
]
}
"1932735283200m" translates to approximately 1,832,735.28 GiB (or about 1.79 TiB), which is an extraordinarily high amount of memory that far exceeds typical node capacities in Kubernetes environments.
OS / ENVIRONMENT
- Kubernetes version: Doesn't matter
OOM VERSION
master!
CONFIGURATION
not needed
STEPS TO REPRODUCE
just deploy
EXPECTED RESULTS
<!--- Describe what you expected to happen when running the steps above -->
I expect "" marks and therefore a memory usage of 1.6Gi and not 1.79 TiB
ACTUAL RESULTS
The k8s documentation states:
https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
https://argo-cd.readthedocs.io/en/stable/faq/#why-are-my-resource-limits-out-of-sync
Therefore all k8s resources should be described in a normalized form, like
E.g.
- '1000m' normalized to '1'
- '0.1' normalized to '100m'
- '3072Mi' normalized to '3Gi'
- 3072 normalized to '3072'
And most important, to not make any mistakes, have quotes added everywhere.
Therefore the example from above should look like
resources:
small:
limits:
cpu: "1"
memory: "0.8Gi"
requests:
cpu: "500m" # because smaller than 1, otherwise it could be something like "1.2"
memory: "0.8Gi"
large:
limits:
cpu: "2"
memory: "1.6Gi"
requests:
cpu: "1"
memory: "1.6Gi"