Categoryk8s.io/cloud-provider
modulepackage
0.33.0-alpha.1
Repository: https://github.com/kubernetes/cloud-provider.git
Documentation: pkg.go.dev

# README

cloud-provider

This repository defines the cloud-provider interface and mechanism to initialize a cloud-provider implementation into Kubernetes. Currently multiple processes use this code although the intent is that it will eventually only be cloud controller manager.

Note: go-get or vendor this package as k8s.io/cloud-provider.

Purpose

This library is a shared dependency for processes which need to be able to integrate with cloud-provider specific functionality.

Compatibility

Cloud Providers are expected to keep the HEAD of their implementations in sync with the HEAD of this repository.

Where does it come from?

cloud-provider is synced from https://github.com/kubernetes/kubernetes/blob/master/staging/src/k8s.io/cloud-provider. Code changes are made in that location, merged into k8s.io/kubernetes and later synced here.

Things you should NOT do

  1. Add an cloud provider specific code to this repo.
  2. Directly modify anything under vendor/k8s.io/cloud-provider in this repo. Those are driven from k8s.io/kubernetes/staging/src/k8s.io/cloud-provider.
  3. Make interface changes without first discussing them with sig-cloudprovider.

# Packages

No description provided by the author
Package app implements a server that runs a set of active components.
No description provided by the author
No description provided by the author
No description provided by the author
Package fake is a test-double implementation of cloudprovider Interface, LoadBalancer and Instances.
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author

# Functions

(DEPRECATED) DefaultLoadBalancerName is the default load balancer name that is called from LoadBalancer.GetLoadBalancerName.
DisableWarningForProvider logs information about disabled cloud provider state.
ErrorForDisabledProvider returns an error formatted with the supplied provider name.
GetCloudProvider creates an instance of the named cloud provider, or nil if the name is unknown.
GetInstanceProviderID builds a ProviderID for a node in a cloud.
InitCloudProvider creates an instance of the named cloud provider.
IsCloudProvider returns true if name corresponds to an already registered cloud provider.
Detects if the string is an external cloud provider.
RegisterCloudProvider registers a cloudprovider.Factory by name.

# Constants

CloudControllerManagerPort is the default port for the cloud controller manager server.

# Variables

No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author

# Structs

InstanceMetadata contains metadata about a specific instance.
Route is a representation of an advanced routing rule.
Zone represents the location of a particular machine.

# Interfaces

Clusters is an abstract, pluggable interface for clusters of containers.
ControllerClientBuilder allows you to get clients and configs for controllers Please note a copy also exists in pkg/controller/client_builder.go TODO: Make this depend on the separate controller utilities repo (issues/68947).
No description provided by the author
Instances is an abstract, pluggable interface for sets of instances.
InstancesV2 is an abstract, pluggable interface for cloud provider instances.
Interface is an abstract, pluggable interface for cloud providers.
LoadBalancer is an abstract, pluggable interface for load balancers.
PVLabeler is an abstract, pluggable interface for fetching labels for volumes DEPRECATED: PVLabeler is deprecated in favor of CSI topology feature.
Routes is an abstract, pluggable interface for advanced routing rules.
Zones is an abstract, pluggable interface for zone enumeration.

# Type aliases

Factory is a function that returns a cloudprovider.Interface.