MCPcopy
hub / github.com/kubernetes-sigs/karpenter

github.com/kubernetes-sigs/karpenter @v1.13.0 sqlite

repository ↗ · DeepWiki ↗ · release v1.13.0 ↗
2,009 symbols 9,831 edges 309 files 819 documented · 41%
README

Build Status GitHub stars GitHub forks GitHub License Go Report Card Coverage Status contributions welcome

Karpenter

Karpenter improves the efficiency and cost of running workloads on Kubernetes clusters by:

  • Watching for pods that the Kubernetes scheduler has marked as unschedulable
  • Evaluating scheduling constraints (resource requests, nodeselectors, affinities, tolerations, and topology spread constraints) requested by the pods
  • Provisioning nodes that meet the requirements of the pods
  • Removing the nodes when the nodes are no longer needed

Karpenter Implementations

Karpenter is a multi-cloud project with implementations by the following cloud providers: - AWS - Azure - AlibabaCloud - Bizfly Cloud - Cluster API - Exoscale - GCP - Huawei Cloud - IBM Cloud - Proxmox - Oracle Cloud Infrastructure (OCI) - Officially supported and maintained by Oracle - Maintained by Zoom - Akamai/Linode (Alpha)

Community, discussion, contribution, and support

If you have any questions or want to get the latest project news, you can connect with us in the following ways: - Using and Deploying Karpenter? Reach out in the #karpenter channel in the Kubernetes slack to ask questions about configuring or troubleshooting Karpenter. - Contributing to or Developing with Karpenter? Join the #karpenter-dev channel in the Kubernetes slack to ask in-depth questions about contribution or to get involved in design discussions.

Working Group Meetings

Bi-weekly meetings alternating between Thursdays @ 9:00 PT (convert to your timezone) and Thursdays @ 15:00 PT (convert to your timezone)

Issue Triage Meetings

Weekly meetings alternating between repositories and time slots. Please check the calendar invite for specific dates:

kubernetes-sigs/karpenter: - Alternating Mondays @ 9:00 PT (convert to your timezone) and @ 15:00 PT (convert to your timezone) monthly

aws/karpenter-provider-aws: - Alternating Mondays @ 9:00 PT (convert to your timezone) and @ 15:00 PT (convert to your timezone) monthly

Meeting Resources

Pull Requests and feedback on issues are very welcome! See the issue tracker if you're unsure where to start, especially the Good first issue and Help wanted tags, and also feel free to reach out to discuss.

See also our contributor guide and the Kubernetes community page for more details on how to get involved.

Code of conduct

Participation in the Kubernetes community is governed by the Kubernetes Code of Conduct.

Talks

Extension points exported contracts — how you extend this code

Validator (Interface)
(no doc) [6 implementers]
pkg/controllers/disruption/validation.go
CloudProvider (Interface)
CloudProvider interface is implemented by cloud providers to support provisioning. [2 implementers]
pkg/cloudprovider/types.go
Injectable (Interface)
Injectable defines a set of flag based options to be parsed and injected into Karpenter's contexts [2 implementers]
pkg/operator/options/injectable.go
DeploymentOptionModifier (FuncType)
DeploymentOptionModifier is a function that modifies DeploymentOptions
pkg/test/deployment.go
Recorder (Interface)
(no doc) [2 implementers]
pkg/events/recorder.go
Method (Interface)
(no doc) [3 implementers]
pkg/controllers/disruption/types.go
NodeLifecycleHook (Interface)
NodeLifecycleHook is implemented by cloud providers to gate node registration. All registered hooks must return an empty [2 …
pkg/cloudprovider/types.go
Check (Interface)
(no doc) [1 implementers]
pkg/controllers/nodeclaim/consistency/controller.go

Core symbols most depended-on inside this repo

ExpectApplied
called by 1511
pkg/test/expectations/expectations.go
Get
called by 744
pkg/cloudprovider/types.go
UnschedulablePod
called by 565
pkg/test/pods.go
ExpectObjectReconciled
called by 509
pkg/test/expectations/expectations.go
ExpectProvisioned
called by 487
pkg/test/expectations/expectations.go
Compatible
called by 460
pkg/scheduling/requirements.go
StatusConditions
called by 452
pkg/apis/v1/nodepool_status.go
ExpectExists
called by 425
pkg/test/expectations/expectations.go

Shape

Method 966
Function 763
Struct 239
TypeAlias 25
Interface 9
FuncType 5
Class 2

Languages

Go99%
Python1%

Modules by API surface

test/pkg/environment/common/expectations.go82 symbols
pkg/cloudprovider/types.go70 symbols
pkg/test/expectations/expectations.go54 symbols
pkg/controllers/state/cluster.go47 symbols
pkg/controllers/state/statenode.go43 symbols
pkg/controllers/provisioning/scheduling/scheduler.go40 symbols
pkg/apis/v1/zz_generated.deepcopy.go40 symbols
pkg/scheduling/requirements.go27 symbols
pkg/controllers/disruption/validation.go27 symbols
pkg/controllers/provisioning/scheduling/scheduling_benchmark_test.go26 symbols
pkg/test/pods.go25 symbols
test/pkg/environment/common/monitor.go24 symbols

Dependencies from manifests, versioned

github.com/Masterminds/semver/v3v3.4.0 · 1×
github.com/Pallinder/go-randomdatav1.2.0 · 1×
github.com/avast/retry-gov3.0.0+incompatible · 1×
github.com/awslabs/operatorpkgv0.0.0-2026050120433 · 1×
github.com/beorn7/perksv1.0.1 · 1×
github.com/cespare/xxhash/v2v2.3.0 · 1×
github.com/davecgh/go-spewv1.1.2-0.20180830191 · 1×
github.com/evanphx/json-patch/v5v5.9.11 · 1×
github.com/fxamacker/cbor/v2v2.9.0 · 1×
github.com/go-logr/logrv1.4.3 · 1×

For agents

$ claude mcp add karpenter \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact