MCPcopy Index your code
hub / github.com/cloudpilot-ai/karpenter-provider-gcp

github.com/cloudpilot-ai/karpenter-provider-gcp @v0.4.1

Chat with this repo
repository ↗ · DeepWiki ↗ · release v0.4.1 ↗ · + Follow
930 symbols 3,739 edges 112 files 275 documented · 30%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README
<img src="https://github.com/cloudpilot-ai/karpenter-provider-gcp/raw/v0.4.1/docs/images/banner.png" width="65%" alt="Karpenter Provider GCP Banner">





<i>Autoscale GKE cluster nodes efficiently and cost-effectively.</i>

GitHub stars GitHub forks GitHub License contributions welcome Artifact Hub

[!NOTE] A live version is now available.

Feedback welcome! Join our Slack to share your ideas, ask questions, and discuss with the community.

Introduction

Karpenter is an open-source node provisioning project built for Kubernetes. 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

How it works

Karpenter observes the aggregate resource requests of unscheduled pods and makes decisions to launch and terminate nodes to minimize scheduling latencies and infrastructure cost.

<img src="https://github.com/cloudpilot-ai/karpenter-provider-gcp/raw/v0.4.1/docs/images/karpenter-overview.jpg" width="100%">

Managed optimization for production Kubernetes

For teams running Karpenter in production, CloudPilot AI adds managed cost optimization, reliability automation, deeper cluster visibility, and advanced production features.

<a href="https://www.cloudpilot.ai/en/">
  <img src="https://github.com/cloudpilot-ai/karpenter-provider-gcp/raw/v0.4.1/docs/images/cloudpilot-hero.gif" width="100%" alt="CloudPilot AI Kubernetes optimization overview" style="border-radius: 16px;">
</a>

Learn more about CloudPilot AI or get in touch for production support.

Documentation

See docs/ for installation, configuration, networking, troubleshooting, and contributing guides. See proposals/ for accepted and in-progress design proposals.

Release notes / upgrades

See GitHub Releases for the full changelog. See MIGRATION.md for breaking changes and upgrade steps.

Community

We want your contributions and suggestions! One of the easiest ways to contribute is to participate in discussions on the Github Issues/Discussion or chat on Slack.

Attribution Notice

This project includes code derived from karpenter-provider-aws, used under the Apache License, Version 2.0 terms. We acknowledge the contributions of the original authors and thank them for making their work available. For more details, see the karpenter-provider-aws.

Code Of Conduct

Karpenter GCP Cloud Provider adopts CNCF code of conduct.

License

Karpenter GCP Cloud Provider is under the Apache 2.0 license. See the LICENSE file for details.

Extension points exported contracts — how you extend this code

PricingClient (Interface)
PricingClient is the interface used to fetch live prices from the GCP Billing API. Pass nil to NewDefaultProvider to dis [2 …
pkg/providers/pricing/pricing.go
ImageFamily (Interface)
ImageFamily can be implemented to override the default logic for generating dynamic launch template parameters [2 implementers]
pkg/providers/imagefamily/types.go
Provider (Interface)
Provider is the interface for managing the bootstrap source pool and its instance template.
pkg/providers/nodepooltemplate/nodepooltemplate.go
Provider (Interface)
(no doc)
pkg/providers/gke/gke.go
Provider (Interface)
(no doc)
pkg/providers/version/version.go

Core symbols most depended-on inside this repo

Get
called by 87
pkg/providers/instance/instance.go
Error
called by 85
pkg/providers/instance/instance.go
Run
called by 43
pkg/controllers/telemetry/controller.go
Close
called by 42
pkg/providers/pricing/instanceprice/instanceprice.go
List
called by 37
pkg/providers/instance/instance.go
Delete
called by 22
pkg/providers/instance/instance.go
FromContext
called by 22
pkg/operator/options/options.go
WaitForNodeRemoval
called by 21
test/pkg/environment/environment.go

Shape

Function 544
Method 291
Struct 76
Interface 10
TypeAlias 9

Languages

Go100%

Modules by API surface

pkg/providers/instance/instance_test.go81 symbols
pkg/providers/instance/instance.go67 symbols
test/pkg/environment/helpers.go48 symbols
pkg/providers/metadata/utils.go39 symbols
pkg/providers/metadata/utils_test.go38 symbols
pkg/controllers/nodeclaim/garbagecollection/controller_test.go26 symbols
pkg/apis/v1alpha1/zz_generated.deepcopy.go26 symbols
hack/price_validate/gcpweb.go25 symbols
pkg/providers/nodepooltemplate/nodepooltemplate.go23 symbols
pkg/controllers/telemetry/controller.go21 symbols
pkg/apis/v1alpha1/gcenodeclass.go20 symbols
pkg/providers/pricing/instanceprice/instanceprice_test.go19 symbols

For agents

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

⬇ download graph artifact

Ask about this repo answers extend the page