Skip to content

docs: incorrect terminology and misleading capacity-type explanation in NodePools minValues documentation #8800

@moko-poi

Description

@moko-poi

Problem Description

The NodePools documentation for minValues contains two inaccuracies that can mislead users:

  1. Incorrect terminology
    Uses "instance families" when referring to [c,m,r], which are actually instance categories

  2. Misleading capacity-type behavior
    States "will use spot instance type for all provisioned instances" but the YAML example doesn't specify capacity-type, meaning both Spot and On-Demand instances can be used

Current Documentation (Incorrect)

Location
website/content/en/{docs,preview,v1.0,v1.6,v1.7,v1.8}/concepts/nodepools.md

For example, the below spec will use spot instance type for all provisioned instances and enforces `minValues` to various keys where it is defined
i.e at least 2 unique instance families from [c,m,r], 5 unique instance families [eg: "m5","m5d","r4","c5","c5d","c4" etc], 10 unique instance types [eg: "c5.2xlarge","c4.xlarge" etc] is required for scheduling the pods.

Issues

1. Terminology Error

  • Says:
    "2 unique instance families from [c,m,r]"

  • Should be:
    "2 unique instance categories from [c,m,r]"

  • Explanation:

    • karpenter.k8s.aws/instance-category: c, m, r (categories)
    • karpenter.k8s.aws/instance-family: c4, c5, m4, m5, r4, r5 (families)

2. Misleading Capacity Type Behavior

  • Says:
    will use spot instance type for all provisioned instances"

  • Reality:
    The YAML does not specify karpenter.sh/capacity-type, so Karpenter will consider both Spot and On-Demand instances.

  • Impact:
    Users may incorrectly assume only Spot instances will be used.
    If Spot capacity is unavailable (ICE), On-Demand instances can be provisioned.

Suggested Fix

For example, the below spec enforces `minValues` to various keys where it is defined:
at least 2 unique instance categories from [c,m,r], 5 unique instance families
[eg: "m5","m5d","r4","c5","c5d","c4" etc], and 10 unique instance types
[eg: "c5.2xlarge","c4.xlarge" etc] are required for scheduling the pods.

{{% alert title="Note" color="primary" %}}
This example does not specify karpenter.sh/capacity-type, so Karpenter will consider both Spot and On-Demand instances, preferring Spot when available due to lower cost.
If Spot capacity is unavailable, On-Demand instances may be used.

To explicitly use only Spot instances, add the following requirement:
{{% /alert %}}

- key: karpenter.sh/capacity-type
  operator: In
  values: ["spot"]

Affected Files

All versions of the documentation contain this error:

  • website/content/en/docs/concepts/nodepools.md (latest)
  • website/content/en/preview/concepts/nodepools.md
  • website/content/en/v1.8/concepts/nodepools.md
  • website/content/en/v1.7/concepts/nodepools.md
  • website/content/en/v1.6/concepts/nodepools.md
  • website/content/en/v1.0/concepts/nodepools.md

Related Issue

This issue is related to:
kubernetes-sigs/karpenter#2435

Contribution & Voting

  • 👍 Please vote by adding a reaction to the original issue to help prioritize this request
  • ❌ Avoid "+1" or "me too" comments
  • 💬 If you are working on this issue or have submitted a PR, please leave a comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    documentationImprovements or additions to documentationneeds-triageIssues that need to be triaged

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions