Validate Kubernetes Resource Limits and Requests

Check resources.limits and resources.requests in Helm values.yaml. Detect missing requests, limits, and inconsistent resource configurations.

Resource Management

Detailed Explanation

Resource Limits and Requests

Properly configured resource requests and limits are essential for Kubernetes pod scheduling, stability, and cost management. The Helm Values Validator checks for common misconfigurations in this critical section.

Recommended Pattern

resources:
  limits:
    cpu: 500m
    memory: 512Mi
  requests:
    cpu: 250m
    memory: 256Mi

What Gets Validated

  1. Both sections present: Having limits without requests means requests default to limits (wasteful). Having requests without limits means no upper bound (risky).
  2. Section structure: Both limits and requests should be mappings (objects), not strings or arrays.
  3. Missing resources: When no resources section exists at all, an informational message suggests adding one.

Resource Units Reference

Resource Unit Examples
CPU millicores 100m, 250m, 1000m (= 1 core)
Memory bytes 128Mi, 512Mi, 1Gi, 2Gi

Common Anti-Patterns

No resources defined (dangerous in production):

# resources: {}  -- or completely missing

Pods can consume unlimited resources, causing node instability and evictions.

Limits without requests:

resources:
  limits:
    cpu: 500m
    memory: 512Mi
  # requests missing - defaults to limits values

This wastes cluster capacity because the scheduler reserves the full limit amount.

Requests exceeding limits:

resources:
  limits:
    cpu: 100m
  requests:
    cpu: 500m  # ERROR: request > limit

Kubernetes will reject this pod spec.

Use Case

Auditing resource configurations across multiple Helm releases to ensure all deployments have proper limits set before enabling cluster autoscaling or implementing resource quotas.

Try It — Helm Values Validator

Open full tool