Documentation ¶
Overview ¶
Package fake is a test-double implementation of cloudprovider Interface, LoadBalancer and Instances. It is useful for testing.
Index ¶
- type Balancer
- type Cloud
- func (f *Cloud) AddSSHKeyToAllInstances(ctx context.Context, user string, keyData []byte) error
- func (f *Cloud) ClearCalls()
- func (f *Cloud) Clusters() (cloudprovider.Clusters, bool)
- func (f *Cloud) CreateRoute(ctx context.Context, clusterName string, nameHint string, ...) error
- func (f *Cloud) CurrentNodeName(ctx context.Context, hostname string) (types.NodeName, error)
- func (f *Cloud) DeleteRoute(ctx context.Context, clusterName string, route *cloudprovider.Route) error
- func (f *Cloud) EnsureLoadBalancer(ctx context.Context, clusterName string, service *v1.Service, nodes []*v1.Node) (*v1.LoadBalancerStatus, error)
- func (f *Cloud) EnsureLoadBalancerDeleted(ctx context.Context, clusterName string, service *v1.Service) error
- func (f *Cloud) GetLabelsForVolume(ctx context.Context, pv *v1.PersistentVolume) (map[string]string, error)
- func (f *Cloud) GetLoadBalancer(ctx context.Context, clusterName string, service *v1.Service) (*v1.LoadBalancerStatus, bool, error)
- func (f *Cloud) GetLoadBalancerName(ctx context.Context, clusterName string, service *v1.Service) string
- func (f *Cloud) GetZone(ctx context.Context) (cloudprovider.Zone, error)
- func (f *Cloud) GetZoneByNodeName(ctx context.Context, nodeName types.NodeName) (cloudprovider.Zone, error)
- func (f *Cloud) GetZoneByProviderID(ctx context.Context, providerID string) (cloudprovider.Zone, error)
- func (f *Cloud) HasClusterID() bool
- func (f *Cloud) Initialize(clientBuilder cloudprovider.ControllerClientBuilder, stop <-chan struct{})
- func (f *Cloud) InstanceExists(ctx context.Context, node *v1.Node) (bool, error)
- func (f *Cloud) InstanceExistsByProviderID(ctx context.Context, providerID string) (bool, error)
- func (f *Cloud) InstanceID(ctx context.Context, nodeName types.NodeName) (string, error)
- func (f *Cloud) InstanceMetadata(ctx context.Context, node *v1.Node) (*cloudprovider.InstanceMetadata, error)
- func (f *Cloud) InstanceShutdown(ctx context.Context, node *v1.Node) (bool, error)
- func (f *Cloud) InstanceShutdownByProviderID(ctx context.Context, providerID string) (bool, error)
- func (f *Cloud) InstanceType(ctx context.Context, instance types.NodeName) (string, error)
- func (f *Cloud) InstanceTypeByProviderID(ctx context.Context, providerID string) (string, error)
- func (f *Cloud) Instances() (cloudprovider.Instances, bool)
- func (f *Cloud) InstancesV2() (cloudprovider.InstancesV2, bool)
- func (f *Cloud) List(filter string) ([]types.NodeName, error)
- func (f *Cloud) ListClusters(ctx context.Context) ([]string, error)
- func (f *Cloud) ListRoutes(ctx context.Context, clusterName string) ([]*cloudprovider.Route, error)
- func (f *Cloud) LoadBalancer() (cloudprovider.LoadBalancer, bool)
- func (f *Cloud) Master(ctx context.Context, name string) (string, error)
- func (f *Cloud) NodeAddresses(ctx context.Context, instance types.NodeName) ([]v1.NodeAddress, error)
- func (f *Cloud) NodeAddressesByProviderID(ctx context.Context, providerID string) ([]v1.NodeAddress, error)
- func (f *Cloud) ProviderName() string
- func (f *Cloud) Routes() (cloudprovider.Routes, bool)
- func (f *Cloud) SetNodeAddresses(nodeAddresses []v1.NodeAddress)
- func (f *Cloud) UpdateLoadBalancer(ctx context.Context, clusterName string, service *v1.Service, nodes []*v1.Node) error
- func (f *Cloud) Zones() (cloudprovider.Zones, bool)
- type Route
- type UpdateBalancerCall
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Balancer ¶
type Balancer struct { Name string Region string LoadBalancerIP string Ports []v1.ServicePort Hosts []*v1.Node }
Balancer is a fake storage of balancer information
type Cloud ¶
type Cloud struct { DisableInstances bool DisableRoutes bool DisableLoadBalancers bool DisableZones bool DisableClusters bool Exists bool Err error EnableInstancesV2 bool ExistsByProviderID bool ErrByProviderID error NodeShutdown bool ErrShutdownByProviderID error MetadataErr error Calls []string Addresses []v1.NodeAddress ExtID map[types.NodeName]string ExtIDErr map[types.NodeName]error InstanceTypes map[types.NodeName]string Machines []types.NodeName NodeResources *v1.NodeResources ClusterList []string MasterName string ExternalIP net.IP Balancers map[string]Balancer UpdateCalls []UpdateBalancerCall RouteMap map[string]*Route Lock sync.Mutex Provider string ProviderID map[types.NodeName]string cloudprovider.Zone VolumeLabelMap map[string]map[string]string RequestDelay time.Duration // contains filtered or unexported fields }
Cloud is a test-double implementation of Interface, LoadBalancer, Instances, and Routes. It is useful for testing.
func (*Cloud) AddSSHKeyToAllInstances ¶
AddSSHKeyToAllInstances adds an SSH public key as a legal identity for all instances expected format for the key is standard ssh-keygen format: <protocol> <blob>
func (*Cloud) ClearCalls ¶
func (f *Cloud) ClearCalls()
ClearCalls clears internal record of method calls to this Cloud.
func (*Cloud) Clusters ¶
func (f *Cloud) Clusters() (cloudprovider.Clusters, bool)
Clusters returns a clusters interface. Also returns true if the interface is supported, false otherwise.
func (*Cloud) CreateRoute ¶
func (f *Cloud) CreateRoute(ctx context.Context, clusterName string, nameHint string, route *cloudprovider.Route) error
CreateRoute creates the described managed route route.Name will be ignored, although the cloud-provider may use nameHint to create a more user-meaningful name.
func (*Cloud) CurrentNodeName ¶
CurrentNodeName returns the name of the node we are currently running on On most clouds (e.g. GCE) this is the hostname, so we provide the hostname
func (*Cloud) DeleteRoute ¶
func (f *Cloud) DeleteRoute(ctx context.Context, clusterName string, route *cloudprovider.Route) error
DeleteRoute deletes the specified managed route Route should be as returned by ListRoutes
func (*Cloud) EnsureLoadBalancer ¶
func (f *Cloud) EnsureLoadBalancer(ctx context.Context, clusterName string, service *v1.Service, nodes []*v1.Node) (*v1.LoadBalancerStatus, error)
EnsureLoadBalancer is a test-spy implementation of LoadBalancer.EnsureLoadBalancer. It adds an entry "create" into the internal method call record.
func (*Cloud) EnsureLoadBalancerDeleted ¶
func (f *Cloud) EnsureLoadBalancerDeleted(ctx context.Context, clusterName string, service *v1.Service) error
EnsureLoadBalancerDeleted is a test-spy implementation of LoadBalancer.EnsureLoadBalancerDeleted. It adds an entry "delete" into the internal method call record.
func (*Cloud) GetLabelsForVolume ¶
func (f *Cloud) GetLabelsForVolume(ctx context.Context, pv *v1.PersistentVolume) (map[string]string, error)
GetLabelsForVolume returns the labels for a PersistentVolume
func (*Cloud) GetLoadBalancer ¶
func (f *Cloud) GetLoadBalancer(ctx context.Context, clusterName string, service *v1.Service) (*v1.LoadBalancerStatus, bool, error)
GetLoadBalancer is a stub implementation of LoadBalancer.GetLoadBalancer.
func (*Cloud) GetLoadBalancerName ¶
func (f *Cloud) GetLoadBalancerName(ctx context.Context, clusterName string, service *v1.Service) string
GetLoadBalancerName is a stub implementation of LoadBalancer.GetLoadBalancerName.
func (*Cloud) GetZone ¶
GetZone returns the Zone containing the current failure zone and locality region that the program is running in In most cases, this method is called from the kubelet querying a local metadata service to acquire its zone. For the case of external cloud providers, use GetZoneByProviderID or GetZoneByNodeName since GetZone can no longer be called from the kubelets.
func (*Cloud) GetZoneByNodeName ¶
func (f *Cloud) GetZoneByNodeName(ctx context.Context, nodeName types.NodeName) (cloudprovider.Zone, error)
GetZoneByNodeName implements Zones.GetZoneByNodeName This is particularly useful in external cloud providers where the kubelet does not initialize node data.
func (*Cloud) GetZoneByProviderID ¶
func (f *Cloud) GetZoneByProviderID(ctx context.Context, providerID string) (cloudprovider.Zone, error)
GetZoneByProviderID implements Zones.GetZoneByProviderID This is particularly useful in external cloud providers where the kubelet does not initialize node data.
func (*Cloud) HasClusterID ¶
HasClusterID returns true if the cluster has a clusterID
func (*Cloud) Initialize ¶
func (f *Cloud) Initialize(clientBuilder cloudprovider.ControllerClientBuilder, stop <-chan struct{})
Initialize passes a Kubernetes clientBuilder interface to the cloud provider
func (*Cloud) InstanceExists ¶ added in v0.19.0
InstanceExists returns true if the instance corresponding to a node still exists and is running. If false is returned with no error, the instance will be immediately deleted by the cloud controller manager.
func (*Cloud) InstanceExistsByProviderID ¶
InstanceExistsByProviderID returns true if the instance with the given provider id still exists and is running. If false is returned with no error, the instance will be immediately deleted by the cloud controller manager.
func (*Cloud) InstanceID ¶
InstanceID returns the cloud provider ID of the node with the specified Name, unless an entry for the node exists in ExtIDError, in which case it returns the desired error (to facilitate testing of error handling).
func (*Cloud) InstanceMetadata ¶ added in v0.19.0
func (f *Cloud) InstanceMetadata(ctx context.Context, node *v1.Node) (*cloudprovider.InstanceMetadata, error)
InstanceMetadata returns metadata of the specified instance.
func (*Cloud) InstanceShutdown ¶ added in v0.19.0
InstanceShutdown returns true if the instances is in safe state to detach volumes
func (*Cloud) InstanceShutdownByProviderID ¶
InstanceShutdownByProviderID returns true if the instances is in safe state to detach volumes
func (*Cloud) InstanceType ¶
InstanceType returns the type of the specified instance.
func (*Cloud) InstanceTypeByProviderID ¶
InstanceTypeByProviderID returns the type of the specified instance.
func (*Cloud) Instances ¶
func (f *Cloud) Instances() (cloudprovider.Instances, bool)
Instances returns a fake implementation of Instances.
Actually it just returns f itself.
func (*Cloud) InstancesV2 ¶ added in v0.19.0
func (f *Cloud) InstancesV2() (cloudprovider.InstancesV2, bool)
InstancesV2 returns a fake implementation of InstancesV2.
Actually it just returns f itself.
func (*Cloud) List ¶
List is a test-spy implementation of Instances.List. It adds an entry "list" into the internal method call record.
func (*Cloud) ListClusters ¶
ListClusters lists the names of the available clusters.
func (*Cloud) ListRoutes ¶
ListRoutes lists all managed routes that belong to the specified clusterName
func (*Cloud) LoadBalancer ¶
func (f *Cloud) LoadBalancer() (cloudprovider.LoadBalancer, bool)
LoadBalancer returns a fake implementation of LoadBalancer. Actually it just returns f itself.
func (*Cloud) Master ¶
Master gets back the address (either DNS name or IP address) of the master node for the cluster.
func (*Cloud) NodeAddresses ¶
func (f *Cloud) NodeAddresses(ctx context.Context, instance types.NodeName) ([]v1.NodeAddress, error)
NodeAddresses is a test-spy implementation of Instances.NodeAddresses. It adds an entry "node-addresses" into the internal method call record.
func (*Cloud) NodeAddressesByProviderID ¶
func (f *Cloud) NodeAddressesByProviderID(ctx context.Context, providerID string) ([]v1.NodeAddress, error)
NodeAddressesByProviderID is a test-spy implementation of Instances.NodeAddressesByProviderID. It adds an entry "node-addresses-by-provider-id" into the internal method call record.
func (*Cloud) ProviderName ¶
ProviderName returns the cloud provider ID.
func (*Cloud) Routes ¶
func (f *Cloud) Routes() (cloudprovider.Routes, bool)
Routes returns a routes interface along with whether the interface is supported.
func (*Cloud) SetNodeAddresses ¶
func (f *Cloud) SetNodeAddresses(nodeAddresses []v1.NodeAddress)
SetNodeAddresses sets the addresses for a node
func (*Cloud) UpdateLoadBalancer ¶
func (f *Cloud) UpdateLoadBalancer(ctx context.Context, clusterName string, service *v1.Service, nodes []*v1.Node) error
UpdateLoadBalancer is a test-spy implementation of LoadBalancer.UpdateLoadBalancer. It adds an entry "update" into the internal method call record.
type Route ¶
type Route struct { ClusterName string Route cloudprovider.Route }
Route is a representation of an advanced routing rule.