Limits and troubleshooting¶
Quota and container limits¶
All projects of a tenant share one quota. It counts resource requests, not limits.
| Resource | Default quota for a tenant |
|---|---|
| CPU requests | 4 |
| Memory requests | 8Gi |
| Storage requests | 100Gi |
A pod that does not fit in the CPU or memory quota is not rejected. It is held: the pod
exists, stays in the status SchedulingGated, and has an event that starts with
exceeded quota. It starts when usage drops or the quota is raised. Workloads that already
run are not stopped.
Each project also has defaults and maximums for one container and one volume claim:
| Setting | Value |
|---|---|
| Default request of a container that sets none | 100m CPU, 256Mi memory |
| Default limit of a container that sets none | 1 CPU, 2Gi memory |
| Maximum limit of one container | 16 CPU, 48Gi memory |
| Maximum size of one volume claim | 1Ti |
To get a larger quota, ask support.
Where to read the error¶
The Sync Status tab of the application in the console shows the
error of the last deployment. The same text with oc:
oc -n <tenant> get applications.argoproj.io <application> \
-o jsonpath='{.status.operationState.message}{"\n"}{.status.conditions}{"\n"}'
The Resources tab shows which resource is not Healthy.
Common errors¶
| Message contains | Cause | Fix |
|---|---|---|
exceeded quota |
The application asks for more CPU, memory or storage than the quota of your tenant has left | Lower the setting that you raised, or ask for a larger quota |
error converting YAML to JSON, or failed to parse |
The settings block is not valid YAML, usually wrong indentation | Correct the block in the YAML tab and save |
do not match any of the allowed destinations in project, or is not permitted |
A field outside the settings was changed | Set the field back. If you do not know the earlier value, ask support. |
is forbidden |
The settings ask for something that a tenant may not deploy | Set the value back. If the application needs it, ask support. |
I changed a setting and nothing happened
Look at Sync Status on the Details tab. Synced with the old behaviour means
that the name of the setting is wrong: a setting that the application does not know is
ignored without an error. Check the spelling and the indentation.
The application is Synced but Degraded or Progressing
The deployment was applied, and a pod does not start. Open the Resources tab to see which one. A pod that waits for quota is described under Quota and container limits.
My manual change is gone
A manual change on a resource of a managed application is reverted within seconds. Make the change in the settings - see Change the settings.
The application stays OutOfSync
Automatic deployment was switched off in the Application. Ask support to restore it.
Related¶
- Managed applications - who does what
- Versions, upgrades and removal
- Troubleshooting - pods, services and volumes in general