mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-04 01:40:07 +00:00
test loadbalancer resources created & deleted
This commit is contained in:
parent
aeba01a287
commit
95bd67a18e
@ -26,9 +26,10 @@ import (
|
|||||||
compute "google.golang.org/api/compute/v1"
|
compute "google.golang.org/api/compute/v1"
|
||||||
|
|
||||||
"k8s.io/api/core/v1"
|
"k8s.io/api/core/v1"
|
||||||
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
|
"k8s.io/kubernetes/pkg/cloudprovider"
|
||||||
"k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud"
|
"k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud"
|
||||||
kubeletapis "k8s.io/kubernetes/pkg/kubelet/apis"
|
kubeletapis "k8s.io/kubernetes/pkg/kubelet/apis"
|
||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestEnsureStaticIP(t *testing.T) {
|
func TestEnsureStaticIP(t *testing.T) {
|
||||||
@ -242,6 +243,9 @@ func TestDeleteAddressWithWrongTier(t *testing.T) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const gceProjectId = "test-project"
|
||||||
|
const gceRegion = "test-region"
|
||||||
|
const zone = "zone1"
|
||||||
const nodeName = "test-node-1"
|
const nodeName = "test-node-1"
|
||||||
const clusterName = "Test Cluster Name"
|
const clusterName = "Test Cluster Name"
|
||||||
const clusterID = "test-cluster-id"
|
const clusterID = "test-cluster-id"
|
||||||
@ -249,8 +253,8 @@ const clusterID = "test-cluster-id"
|
|||||||
var apiService = &v1.Service{
|
var apiService = &v1.Service{
|
||||||
Spec: v1.ServiceSpec{
|
Spec: v1.ServiceSpec{
|
||||||
SessionAffinity: v1.ServiceAffinityClientIP,
|
SessionAffinity: v1.ServiceAffinityClientIP,
|
||||||
Type: v1.ServiceTypeClusterIP,
|
Type: v1.ServiceTypeClusterIP,
|
||||||
Ports: []v1.ServicePort{{Protocol: v1.ProtocolTCP, Port: int32(123)}},
|
Ports: []v1.ServicePort{{Protocol: v1.ProtocolTCP, Port: int32(123)}},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -271,10 +275,6 @@ var nodes = []*v1.Node{
|
|||||||
}
|
}
|
||||||
|
|
||||||
func fakeGCECloud() (*GCECloud, error) {
|
func fakeGCECloud() (*GCECloud, error) {
|
||||||
gceProjectId := "test-project"
|
|
||||||
gceRegion := "test-region"
|
|
||||||
zone := "zone1"
|
|
||||||
|
|
||||||
client, err := newOauthClient(nil)
|
client, err := newOauthClient(nil)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
@ -296,15 +296,15 @@ func fakeGCECloud() (*GCECloud, error) {
|
|||||||
zonesWithNodes := createNodeZones([]string{zone})
|
zonesWithNodes := createNodeZones([]string{zone})
|
||||||
|
|
||||||
gce := GCECloud{
|
gce := GCECloud{
|
||||||
region: gceRegion,
|
region: gceRegion,
|
||||||
service: service,
|
service: service,
|
||||||
manager: fakeManager,
|
manager: fakeManager,
|
||||||
managedZones: []string{zone},
|
managedZones: []string{zone},
|
||||||
projectID: gceProjectId,
|
projectID: gceProjectId,
|
||||||
AlphaFeatureGate: alphaFeatureGate,
|
AlphaFeatureGate: alphaFeatureGate,
|
||||||
nodeZones: zonesWithNodes,
|
nodeZones: zonesWithNodes,
|
||||||
nodeInformerSynced: func() bool { return true },
|
nodeInformerSynced: func() bool { return true },
|
||||||
c: cloud,
|
c: cloud,
|
||||||
}
|
}
|
||||||
|
|
||||||
gce.InsertInstance(
|
gce.InsertInstance(
|
||||||
@ -322,13 +322,11 @@ func fakeGCECloud() (*GCECloud, error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func createExternalLoadBalancer(gce *GCECloud) (*v1.LoadBalancerStatus, error) {
|
func createExternalLoadBalancer(gce *GCECloud) (*v1.LoadBalancerStatus, error) {
|
||||||
existingFwdRule := &compute.ForwardingRule{}
|
|
||||||
|
|
||||||
status, err := gce.ensureExternalLoadBalancer(
|
status, err := gce.ensureExternalLoadBalancer(
|
||||||
clusterName,
|
clusterName,
|
||||||
clusterID,
|
clusterID,
|
||||||
apiService,
|
apiService,
|
||||||
existingFwdRule,
|
nil,
|
||||||
nodes,
|
nodes,
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -337,11 +335,33 @@ func createExternalLoadBalancer(gce *GCECloud) (*v1.LoadBalancerStatus, error) {
|
|||||||
|
|
||||||
func TestEnsureExternalLoadBalancer(t *testing.T) {
|
func TestEnsureExternalLoadBalancer(t *testing.T) {
|
||||||
gce, err := fakeGCECloud()
|
gce, err := fakeGCECloud()
|
||||||
assert.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
status, err := createExternalLoadBalancer(gce)
|
status, err := createExternalLoadBalancer(gce)
|
||||||
assert.NotNil(t, status)
|
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
|
assert.NotEmpty(t, status.Ingress)
|
||||||
|
|
||||||
|
lbName := cloudprovider.GetLoadBalancerName(apiService)
|
||||||
|
|
||||||
|
// Check that Firewall is created
|
||||||
|
firewall, err := gce.GetFirewall(MakeFirewallName(lbName))
|
||||||
|
require.NoError(t, err)
|
||||||
|
assert.Equal(t, []string{nodeName}, firewall.TargetTags)
|
||||||
|
assert.Equal(t, []string{"0.0.0.0/0"}, firewall.SourceRanges)
|
||||||
|
|
||||||
|
// Check that TargetPool is Created
|
||||||
|
pool, err := gce.GetTargetPool(lbName, gceRegion)
|
||||||
|
require.NoError(t, err)
|
||||||
|
assert.Equal(t, lbName, pool.Name)
|
||||||
|
assert.NotEmpty(t, pool.HealthChecks)
|
||||||
|
assert.NotEmpty(t, pool.Instances)
|
||||||
|
|
||||||
|
// Check that ForwardingRule is created
|
||||||
|
fwdRule, err := gce.GetRegionForwardingRule(lbName, gceRegion)
|
||||||
|
require.NoError(t, err)
|
||||||
|
assert.Equal(t, lbName, fwdRule.Name)
|
||||||
|
assert.Equal(t, "TCP", fwdRule.IPProtocol)
|
||||||
|
assert.Equal(t, "123-123", fwdRule.PortRange)
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestUpdateExternalLoadBalancer(t *testing.T) {
|
func TestUpdateExternalLoadBalancer(t *testing.T) {
|
||||||
@ -351,8 +371,6 @@ func TestUpdateExternalLoadBalancer(t *testing.T) {
|
|||||||
|
|
||||||
err = gce.updateExternalLoadBalancer(clusterName, apiService, nodes)
|
err = gce.updateExternalLoadBalancer(clusterName, apiService, nodes)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
|
|
||||||
// Assert pool is modified
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestEnsureExternalLoadBalancerDeleted(t *testing.T) {
|
func TestEnsureExternalLoadBalancerDeleted(t *testing.T) {
|
||||||
@ -362,4 +380,21 @@ func TestEnsureExternalLoadBalancerDeleted(t *testing.T) {
|
|||||||
|
|
||||||
err = gce.ensureExternalLoadBalancerDeleted(clusterName, clusterID, apiService)
|
err = gce.ensureExternalLoadBalancerDeleted(clusterName, clusterID, apiService)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
|
|
||||||
|
lbName := cloudprovider.GetLoadBalancerName(apiService)
|
||||||
|
|
||||||
|
// Check that Firewall is deleted
|
||||||
|
firewall, err := gce.GetFirewall(MakeFirewallName(lbName))
|
||||||
|
require.Error(t, err)
|
||||||
|
assert.Nil(t, firewall)
|
||||||
|
|
||||||
|
// Check that TargetPool is deleted
|
||||||
|
pool, err := gce.GetTargetPool(lbName, gceRegion)
|
||||||
|
require.Error(t, err)
|
||||||
|
assert.Nil(t, pool)
|
||||||
|
|
||||||
|
// Check forwarding rule is deleted
|
||||||
|
fwdRule, err := gce.GetRegionForwardingRule(lbName, gceRegion)
|
||||||
|
require.Error(t, err)
|
||||||
|
assert.Nil(t, fwdRule)
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user