package
0.0.0-20190319231021-e6272b887b81
Repository: https://github.com/marun/kubernetes.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
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.
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.

# Variables

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

# Structs

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.
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.
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.