Kubernetes resource calculator
Add up the CPU and memory requests and limits of your Kubernetes workloads, multiplied by replicas and grouped by namespace. Containers without requests or limits are listed so you can fix them.
Up to 1,000,000 characters, 100 YAML documents and 100,000 values, with DaemonSet node counts from 0 to 5,000. Everything runs on your device in a background worker. Downloads: a JSON report and a CSV table of workloads. Paste Deployments, StatefulSets, DaemonSets, Jobs, CronJobs or Pods. Separate documents with ---. Up to 1,000,000 characters. Review the settings before running.
Your result
How to use Kubernetes resource calculator
- Paste one or more manifests separated by ---.
- Enter how many nodes each DaemonSet runs on.
- Run the calculation and review totals per namespace and per workload.
- Download the JSON report or the CSV table.
Useful next steps
How a pod is counted
For each workload Happytails.ai follows the Kubernetes rule for effective pod requests from the "Sidecar containers" page on kubernetes.io (read on 16 October 2026): the larger of the sum of app and sidecar containers, or the largest ordinary init container plus the sidecars started before it. If a container sets a limit but no request, the request equals the limit, as Kubernetes does. Pod-level resources in spec.resources (the "Assign Pod-level CPU and memory resources" page on kubernetes.io, read on 16 October 2026; on by default from Kubernetes 1.34) replace the container totals: a pod-level request or limit is used as it is, and with a pod-level limit but no pod-level request the request is the container total, or the limit when no container sets a request. Any pod overhead is then added. A container is not listed as missing a request when the pod sets a pod-level request or limit for that resource, or a limit when the pod sets a pod-level limit.
Exact quantities
Quantities such as 250m, 0.5, 512Mi and 1e3 are parsed with the Kubernetes quantity grammar and added as exact fractions, so totals never drift from rounding. CPU is shown in cores and memory in bytes as exact decimals. A limit is unbounded when any container in the pod has no limit and the pod sets no pod-level limit.
Assumptions
Replicas come from the manifest, defaulting to 1. Job and CronJob use parallelism, which defaults to 1, or completions when that is smaller, because a Job never runs more pods at once than the completions it still needs. DaemonSets use the node count you enter. Three mistakes that the Kubernetes API refuses are rejected with a message: a request above its limit, container requests that add up to more than the pod-level request or limit, and a container limit above the pod-level limit. HorizontalPodAutoscaler ranges, LimitRange defaults and ResourceQuota objects are not applied, and objects that are not workloads are skipped.