Use cases
- Custom pricing — account for savings plans or reserved instance commitments by overriding instance prices so consolidation decisions reflect your actual costs
- Extended resources — add custom capacity (e.g.,
hugepages-2Mi, custom device slices) to instance types so pods requesting those resources can be scheduled - Licensing costs — adjust instance prices to reflect software licensing overhead
NodeOverlay configuration
Field reference
Priority for conflict resolution when multiple NodeOverlays match the same instance type. Higher weight takes precedence. When weights are equal, alphabetical ordering by name applies. Defaults to
0.Requirements that determine which instance types this overlay applies to. Uses the same format as NodePool requirements and supports all standard Kubernetes label selectors.An empty requirements array applies the overlay to all instance types.Supports all well-known labels and AWS-specific labels.
There is a limit of 100 on the total number of requirements per NodeOverlay.
Absolute price override. Completely replaces the cloud provider’s reported price. Karpenter is currency-agnostic.Mutually exclusive with
priceAdjustment.Modifies the existing price. Accepts:
- Percentage:
"+15%"or"-10%" - Absolute:
"+5.00"or"-2.50"
price.Extended resources to add to matching instance types. These are added to existing capacity — they do not replace or modify standard resources (CPU, memory, storage).
Conflict resolution
When multiple NodeOverlays match the same instance type:- Weight-based precedence — higher
weightvalues take precedence - Alphabetical ordering — when weights are equal, overlays are applied alphabetically by name
- Field-level merging — higher-weight overlays override
price/priceAdjustmentfrom lower-weight overlays;capacityfields from different overlays are merged
Conflict resolution example
m5.large:
- Price adjustment:
-20%(fromoverlay-b, overridesoverlay-a) - Capacity:
hugepages-2Mi: 50Mi(fromoverlay-a) +custom-device/gpu: 1(fromoverlay-b)
Integration with consolidation
NodeOverlay modifications are automatically incorporated into Karpenter’s consolidation process:- Price adjustments affect consolidation decisions by changing the cost calculations used for replacement evaluation
- Capacity additions are considered when evaluating whether workloads can move between nodes
- Changes take effect through normal consolidation cycles — no additional drift detection or forced node replacement is required
Status and observability
| Condition | Description |
|---|---|
Ready=True | Overlay is applied to matching instance types |
Ready=False | Configuration conflict, requirement mismatch, or other error |
Limitations
- NodeOverlays can only add extended resources — they cannot modify or remove standard resources (CPU, memory, storage)
- Capacity modifications only affect Karpenter’s scheduling simulation; actual node resources must be configured through other means (e.g., device plugins, DaemonSets)
- Price adjustments influence scheduling decisions but do not affect actual cloud provider billing
- The
karpenter.sh/v1alpha1API may change in future releases