Documentation
¶
Index ¶
Constants ¶
View Source
const ( AddressFamilyDualStack addressFamily = iota AddressFamilyIPv6 AddressFamilyIPv4 )
Variables ¶
This section is empty.
Functions ¶
func RunLoadBalancerTests ¶
func RunLoadBalancerTests(t *testing.T, tests []LoadBalancerTestCase)
Types ¶
type LoadBalancerOps ¶
type LoadBalancerOps interface {
GetByName(ctx context.Context, name string) (*hcloud.LoadBalancer, error)
GetByID(ctx context.Context, id int) (*hcloud.LoadBalancer, error)
GetByK8SServiceUID(ctx context.Context, svc *v1.Service) (*hcloud.LoadBalancer, error)
Create(ctx context.Context, lbName string, service *v1.Service) (*hcloud.LoadBalancer, error)
Delete(ctx context.Context, lb *hcloud.LoadBalancer) error
ReconcileHCLB(ctx context.Context, lb *hcloud.LoadBalancer, svc *v1.Service) (bool, error)
ReconcileHCLBTargets(ctx context.Context, lb *hcloud.LoadBalancer, svc *v1.Service, nodes []*v1.Node, disableIPV6 bool) (bool, error)
ReconcileHCLBServices(ctx context.Context, lb *hcloud.LoadBalancer, svc *v1.Service) (bool, error)
}
LoadBalancerOps defines the Load Balancer related operations required by the hcloud-cloud-controller-manager.
type LoadBalancerTestCase ¶
type LoadBalancerTestCase struct {
Name string
// Defined in test case as needed
ClusterName string
NetworkID int
ServiceUID string
ServiceAnnotations map[annotation.Name]interface{}
DisablePrivateIngressDefault bool
DisableIPv6Default bool
Nodes []*v1.Node
LB *hcloud.LoadBalancer
LBCreateResult *hcloud.LoadBalancerCreateResult
Mock func(t *testing.T, tt *LoadBalancerTestCase)
// Defines the actual test
Perform func(t *testing.T, tt *LoadBalancerTestCase)
Ctx context.Context // Set to context.Background by run if not defined in test
// Set by run
LBOps *hcops.MockLoadBalancerOps
LBClient *mocks.LoadBalancerClient
ActionClient *mocks.ActionClient
LoadBalancers *loadBalancers
Service *v1.Service
}
Click to show internal directories.
Click to hide internal directories.