fake

package
v0.0.0-...-9a7f165 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 23, 2020 License: Apache-2.0 Imports: 8 Imported by: 0

Documentation

Overview

Package fake is a test-double implementation of cloudprovider Interface, LoadBalancer and Instances. It is useful for testing.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type FakeBalancer

type FakeBalancer struct {
	Name           string
	Region         string
	LoadBalancerIP string
	Ports          []v1.ServicePort
	Hosts          []*v1.Node
}

FakeBalancer is a fake storage of balancer information

type FakeCloud

type FakeCloud struct {
	Exists bool
	Err    error

	ExistsByProviderID bool
	ErrByProviderID    error

	Calls         []string
	Addresses     []v1.NodeAddress
	ExtID         map[types.NodeName]string
	InstanceTypes map[types.NodeName]string
	Machines      []types.NodeName
	NodeResources *v1.NodeResources
	ClusterList   []string
	MasterName    string
	ExternalIP    net.IP
	Balancers     map[string]FakeBalancer
	UpdateCalls   []FakeUpdateBalancerCall
	RouteMap      map[string]*FakeRoute
	Lock          sync.Mutex
	Provider      string

	cloudprovider.Zone
	VolumeLabelMap map[string]map[string]string
	// contains filtered or unexported fields
}

FakeCloud is a test-double implementation of Interface, LoadBalancer, Instances, and Routes. It is useful for testing.

func (*FakeCloud) AddSSHKeyToAllInstances

func (f *FakeCloud) AddSSHKeyToAllInstances(user string, keyData []byte) error

func (*FakeCloud) ClearCalls

func (f *FakeCloud) ClearCalls()

ClearCalls clears internal record of method calls to this FakeCloud.

func (*FakeCloud) Clusters

func (f *FakeCloud) Clusters() (cloudprovider.Clusters, bool)

func (*FakeCloud) CreateRoute

func (f *FakeCloud) CreateRoute(clusterName string, nameHint string, route *cloudprovider.Route) error

func (*FakeCloud) CurrentNodeName

func (f *FakeCloud) CurrentNodeName(hostname string) (types.NodeName, error)

Implementation of Instances.CurrentNodeName

func (*FakeCloud) DeleteRoute

func (f *FakeCloud) DeleteRoute(clusterName string, route *cloudprovider.Route) error

func (*FakeCloud) EnsureLoadBalancer

func (f *FakeCloud) EnsureLoadBalancer(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 (*FakeCloud) EnsureLoadBalancerDeleted

func (f *FakeCloud) EnsureLoadBalancerDeleted(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 (*FakeCloud) ExternalID

func (f *FakeCloud) ExternalID(nodeName types.NodeName) (string, error)

ExternalID is a test-spy implementation of Instances.ExternalID. It adds an entry "external-id" into the internal method call record. It returns an external id to the mapped instance name, if not found, it will return "ext-{instance}"

func (*FakeCloud) GetLabelsForVolume

func (c *FakeCloud) GetLabelsForVolume(pv *v1.PersistentVolume) (map[string]string, error)

func (*FakeCloud) GetLoadBalancer

func (f *FakeCloud) GetLoadBalancer(clusterName string, service *v1.Service) (*v1.LoadBalancerStatus, bool, error)

GetLoadBalancer is a stub implementation of LoadBalancer.GetLoadBalancer.

func (*FakeCloud) GetZone

func (f *FakeCloud) GetZone() (cloudprovider.Zone, error)

func (*FakeCloud) GetZoneByNodeName

func (f *FakeCloud) GetZoneByNodeName(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 (*FakeCloud) GetZoneByProviderID

func (f *FakeCloud) GetZoneByProviderID(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 (*FakeCloud) HasClusterID

func (f *FakeCloud) HasClusterID() bool

HasClusterID returns true if the cluster has a clusterID

func (*FakeCloud) Initialize

func (f *FakeCloud) Initialize(clientBuilder controller.ControllerClientBuilder)

Initialize passes a Kubernetes clientBuilder interface to the cloud provider

func (*FakeCloud) InstanceExistsByProviderID

func (f *FakeCloud) InstanceExistsByProviderID(providerID string) (bool, error)

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 (*FakeCloud) InstanceID

func (f *FakeCloud) InstanceID(nodeName types.NodeName) (string, error)

InstanceID returns the cloud provider ID of the node with the specified Name.

func (*FakeCloud) InstanceType

func (f *FakeCloud) InstanceType(instance types.NodeName) (string, error)

InstanceType returns the type of the specified instance.

func (*FakeCloud) InstanceTypeByProviderID

func (f *FakeCloud) InstanceTypeByProviderID(providerID string) (string, error)

InstanceTypeByProviderID returns the type of the specified instance.

func (*FakeCloud) Instances

func (f *FakeCloud) Instances() (cloudprovider.Instances, bool)

Instances returns a fake implementation of Instances.

Actually it just returns f itself.

func (*FakeCloud) List

func (f *FakeCloud) List(filter string) ([]types.NodeName, error)

List is a test-spy implementation of Instances.List. It adds an entry "list" into the internal method call record.

func (*FakeCloud) ListClusters

func (f *FakeCloud) ListClusters() ([]string, error)

func (*FakeCloud) ListRoutes

func (f *FakeCloud) ListRoutes(clusterName string) ([]*cloudprovider.Route, error)

func (*FakeCloud) LoadBalancer

func (f *FakeCloud) LoadBalancer() (cloudprovider.LoadBalancer, bool)

LoadBalancer returns a fake implementation of LoadBalancer. Actually it just returns f itself.

func (*FakeCloud) Master

func (f *FakeCloud) Master(name string) (string, error)

func (*FakeCloud) NodeAddresses

func (f *FakeCloud) NodeAddresses(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 (*FakeCloud) NodeAddressesByProviderID

func (f *FakeCloud) NodeAddressesByProviderID(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 (*FakeCloud) ProviderName

func (f *FakeCloud) ProviderName() string

ProviderName returns the cloud provider ID.

func (*FakeCloud) Routes

func (f *FakeCloud) Routes() (cloudprovider.Routes, bool)

func (*FakeCloud) ScrubDNS

func (f *FakeCloud) ScrubDNS(nameservers, searches []string) (nsOut, srchOut []string)

ScrubDNS filters DNS settings for pods.

func (*FakeCloud) UpdateLoadBalancer

func (f *FakeCloud) UpdateLoadBalancer(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.

func (*FakeCloud) Zones

func (f *FakeCloud) Zones() (cloudprovider.Zones, bool)

type FakeRoute

type FakeRoute struct {
	ClusterName string
	Route       cloudprovider.Route
}

type FakeUpdateBalancerCall

type FakeUpdateBalancerCall struct {
	Service *v1.Service
	Hosts   []*v1.Node
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL