mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-24 12:15:52 +00:00
Clean shutdown of service integration tests
This commit is contained in:
parent
6ae4bbbfc2
commit
3b98f59e16
@ -26,9 +26,9 @@ import (
|
|||||||
utilfeature "k8s.io/apiserver/pkg/util/feature"
|
utilfeature "k8s.io/apiserver/pkg/util/feature"
|
||||||
"k8s.io/client-go/informers"
|
"k8s.io/client-go/informers"
|
||||||
clientset "k8s.io/client-go/kubernetes"
|
clientset "k8s.io/client-go/kubernetes"
|
||||||
restclient "k8s.io/client-go/rest"
|
|
||||||
servicecontroller "k8s.io/cloud-provider/controllers/service"
|
servicecontroller "k8s.io/cloud-provider/controllers/service"
|
||||||
fakecloud "k8s.io/cloud-provider/fake"
|
fakecloud "k8s.io/cloud-provider/fake"
|
||||||
|
kubeapiservertesting "k8s.io/kubernetes/cmd/kube-apiserver/app/testing"
|
||||||
"k8s.io/kubernetes/test/integration/framework"
|
"k8s.io/kubernetes/test/integration/framework"
|
||||||
utilpointer "k8s.io/utils/pointer"
|
utilpointer "k8s.io/utils/pointer"
|
||||||
)
|
)
|
||||||
@ -36,19 +36,16 @@ import (
|
|||||||
// Test_ServiceLoadBalancerAllocateNodePorts tests that a Service with spec.allocateLoadBalancerNodePorts=false
|
// Test_ServiceLoadBalancerAllocateNodePorts tests that a Service with spec.allocateLoadBalancerNodePorts=false
|
||||||
// does not allocate node ports for the Service.
|
// does not allocate node ports for the Service.
|
||||||
func Test_ServiceLoadBalancerDisableAllocateNodePorts(t *testing.T) {
|
func Test_ServiceLoadBalancerDisableAllocateNodePorts(t *testing.T) {
|
||||||
|
server := kubeapiservertesting.StartTestServerOrDie(t, nil, nil, framework.SharedEtcd())
|
||||||
|
defer server.TearDownFn()
|
||||||
|
|
||||||
controlPlaneConfig := framework.NewIntegrationTestControlPlaneConfig()
|
client, err := clientset.NewForConfig(server.ClientConfig)
|
||||||
_, server, closeFn := framework.RunAnAPIServer(controlPlaneConfig)
|
|
||||||
defer closeFn()
|
|
||||||
|
|
||||||
config := restclient.Config{Host: server.URL}
|
|
||||||
client, err := clientset.NewForConfig(&config)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("Error creating clientset: %v", err)
|
t.Fatalf("Error creating clientset: %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
ns := framework.CreateTestingNamespace("test-service-allocate-node-ports", t)
|
ns := framework.CreateNamespaceOrDie(client, "test-service-allocate-node-ports", t)
|
||||||
defer framework.DeleteTestingNamespace(ns, t)
|
defer framework.DeleteNamespaceOrDie(client, ns, t)
|
||||||
|
|
||||||
service := &corev1.Service{
|
service := &corev1.Service{
|
||||||
ObjectMeta: metav1.ObjectMeta{
|
ObjectMeta: metav1.ObjectMeta{
|
||||||
@ -79,19 +76,16 @@ func Test_ServiceLoadBalancerDisableAllocateNodePorts(t *testing.T) {
|
|||||||
// Test_ServiceUpdateLoadBalancerAllocateNodePorts tests that a Service that is updated from ClusterIP to LoadBalancer
|
// Test_ServiceUpdateLoadBalancerAllocateNodePorts tests that a Service that is updated from ClusterIP to LoadBalancer
|
||||||
// with spec.allocateLoadBalancerNodePorts=false does not allocate node ports for the Service
|
// with spec.allocateLoadBalancerNodePorts=false does not allocate node ports for the Service
|
||||||
func Test_ServiceUpdateLoadBalancerDisableAllocateNodePorts(t *testing.T) {
|
func Test_ServiceUpdateLoadBalancerDisableAllocateNodePorts(t *testing.T) {
|
||||||
|
server := kubeapiservertesting.StartTestServerOrDie(t, nil, nil, framework.SharedEtcd())
|
||||||
|
defer server.TearDownFn()
|
||||||
|
|
||||||
controlPlaneConfig := framework.NewIntegrationTestControlPlaneConfig()
|
client, err := clientset.NewForConfig(server.ClientConfig)
|
||||||
_, server, closeFn := framework.RunAnAPIServer(controlPlaneConfig)
|
|
||||||
defer closeFn()
|
|
||||||
|
|
||||||
config := restclient.Config{Host: server.URL}
|
|
||||||
client, err := clientset.NewForConfig(&config)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("Error creating clientset: %v", err)
|
t.Fatalf("Error creating clientset: %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
ns := framework.CreateTestingNamespace("test-service-allocate-node-ports", t)
|
ns := framework.CreateNamespaceOrDie(client, "test-service-allocate-node-ports", t)
|
||||||
defer framework.DeleteTestingNamespace(ns, t)
|
defer framework.DeleteNamespaceOrDie(client, ns, t)
|
||||||
|
|
||||||
service := &corev1.Service{
|
service := &corev1.Service{
|
||||||
ObjectMeta: metav1.ObjectMeta{
|
ObjectMeta: metav1.ObjectMeta{
|
||||||
@ -132,19 +126,16 @@ func Test_ServiceUpdateLoadBalancerDisableAllocateNodePorts(t *testing.T) {
|
|||||||
// Test_ServiceLoadBalancerSwitchToDeallocatedNodePorts test that switching a Service
|
// Test_ServiceLoadBalancerSwitchToDeallocatedNodePorts test that switching a Service
|
||||||
// to spec.allocateLoadBalancerNodePorts=false, does not de-allocate existing node ports.
|
// to spec.allocateLoadBalancerNodePorts=false, does not de-allocate existing node ports.
|
||||||
func Test_ServiceLoadBalancerEnableThenDisableAllocatedNodePorts(t *testing.T) {
|
func Test_ServiceLoadBalancerEnableThenDisableAllocatedNodePorts(t *testing.T) {
|
||||||
|
server := kubeapiservertesting.StartTestServerOrDie(t, nil, nil, framework.SharedEtcd())
|
||||||
|
defer server.TearDownFn()
|
||||||
|
|
||||||
controlPlaneConfig := framework.NewIntegrationTestControlPlaneConfig()
|
client, err := clientset.NewForConfig(server.ClientConfig)
|
||||||
_, server, closeFn := framework.RunAnAPIServer(controlPlaneConfig)
|
|
||||||
defer closeFn()
|
|
||||||
|
|
||||||
config := restclient.Config{Host: server.URL}
|
|
||||||
client, err := clientset.NewForConfig(&config)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("Error creating clientset: %v", err)
|
t.Fatalf("Error creating clientset: %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
ns := framework.CreateTestingNamespace("test-service-deallocate-node-ports", t)
|
ns := framework.CreateNamespaceOrDie(client, "test-service-deallocate-node-ports", t)
|
||||||
defer framework.DeleteTestingNamespace(ns, t)
|
defer framework.DeleteNamespaceOrDie(client, ns, t)
|
||||||
|
|
||||||
service := &corev1.Service{
|
service := &corev1.Service{
|
||||||
ObjectMeta: metav1.ObjectMeta{
|
ObjectMeta: metav1.ObjectMeta{
|
||||||
@ -185,19 +176,16 @@ func Test_ServiceLoadBalancerEnableThenDisableAllocatedNodePorts(t *testing.T) {
|
|||||||
// Test_ServiceLoadBalancerDisableThenEnableAllocatedNodePorts test that switching a Service
|
// Test_ServiceLoadBalancerDisableThenEnableAllocatedNodePorts test that switching a Service
|
||||||
// to spec.allocateLoadBalancerNodePorts=true from false, allocate new node ports.
|
// to spec.allocateLoadBalancerNodePorts=true from false, allocate new node ports.
|
||||||
func Test_ServiceLoadBalancerDisableThenEnableAllocatedNodePorts(t *testing.T) {
|
func Test_ServiceLoadBalancerDisableThenEnableAllocatedNodePorts(t *testing.T) {
|
||||||
|
server := kubeapiservertesting.StartTestServerOrDie(t, nil, nil, framework.SharedEtcd())
|
||||||
|
defer server.TearDownFn()
|
||||||
|
|
||||||
controlPlaneConfig := framework.NewIntegrationTestControlPlaneConfig()
|
client, err := clientset.NewForConfig(server.ClientConfig)
|
||||||
_, server, closeFn := framework.RunAnAPIServer(controlPlaneConfig)
|
|
||||||
defer closeFn()
|
|
||||||
|
|
||||||
config := restclient.Config{Host: server.URL}
|
|
||||||
client, err := clientset.NewForConfig(&config)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("Error creating clientset: %v", err)
|
t.Fatalf("Error creating clientset: %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
ns := framework.CreateTestingNamespace("test-service-reallocate-node-ports", t)
|
ns := framework.CreateNamespaceOrDie(client, "test-service-reallocate-node-ports", t)
|
||||||
defer framework.DeleteTestingNamespace(ns, t)
|
defer framework.DeleteNamespaceOrDie(client, ns, t)
|
||||||
|
|
||||||
service := &corev1.Service{
|
service := &corev1.Service{
|
||||||
ObjectMeta: metav1.ObjectMeta{
|
ObjectMeta: metav1.ObjectMeta{
|
||||||
@ -248,19 +236,16 @@ func serviceHasNodePorts(svc *corev1.Service) bool {
|
|||||||
// Test_ServiceLoadBalancerEnableLoadBalancerClass tests that when a LoadBalancer
|
// Test_ServiceLoadBalancerEnableLoadBalancerClass tests that when a LoadBalancer
|
||||||
// type of service has spec.LoadBalancerClass set, cloud provider should not create default load balancer.
|
// type of service has spec.LoadBalancerClass set, cloud provider should not create default load balancer.
|
||||||
func Test_ServiceLoadBalancerEnableLoadBalancerClass(t *testing.T) {
|
func Test_ServiceLoadBalancerEnableLoadBalancerClass(t *testing.T) {
|
||||||
|
server := kubeapiservertesting.StartTestServerOrDie(t, nil, nil, framework.SharedEtcd())
|
||||||
|
defer server.TearDownFn()
|
||||||
|
|
||||||
controlPlaneConfig := framework.NewIntegrationTestControlPlaneConfig()
|
client, err := clientset.NewForConfig(server.ClientConfig)
|
||||||
_, server, closeFn := framework.RunAnAPIServer(controlPlaneConfig)
|
|
||||||
defer closeFn()
|
|
||||||
|
|
||||||
config := restclient.Config{Host: server.URL}
|
|
||||||
client, err := clientset.NewForConfig(&config)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("Error creating clientset: %v", err)
|
t.Fatalf("Error creating clientset: %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
ns := framework.CreateTestingNamespace("test-service-load-balancer-class", t)
|
ns := framework.CreateNamespaceOrDie(client, "test-service-load-balancer-class", t)
|
||||||
defer framework.DeleteTestingNamespace(ns, t)
|
defer framework.DeleteNamespaceOrDie(client, ns, t)
|
||||||
|
|
||||||
controller, cloud, informer := newServiceController(t, client)
|
controller, cloud, informer := newServiceController(t, client)
|
||||||
|
|
||||||
@ -297,19 +282,16 @@ func Test_ServiceLoadBalancerEnableLoadBalancerClass(t *testing.T) {
|
|||||||
// type of service has spec.LoadBalancerClass set, it should be immutable as long as the service type
|
// type of service has spec.LoadBalancerClass set, it should be immutable as long as the service type
|
||||||
// is still LoadBalancer.
|
// is still LoadBalancer.
|
||||||
func Test_SetLoadBalancerClassThenUpdateLoadBalancerClass(t *testing.T) {
|
func Test_SetLoadBalancerClassThenUpdateLoadBalancerClass(t *testing.T) {
|
||||||
|
server := kubeapiservertesting.StartTestServerOrDie(t, nil, nil, framework.SharedEtcd())
|
||||||
|
defer server.TearDownFn()
|
||||||
|
|
||||||
controlPlaneConfig := framework.NewIntegrationTestControlPlaneConfig()
|
client, err := clientset.NewForConfig(server.ClientConfig)
|
||||||
_, server, closeFn := framework.RunAnAPIServer(controlPlaneConfig)
|
|
||||||
defer closeFn()
|
|
||||||
|
|
||||||
config := restclient.Config{Host: server.URL}
|
|
||||||
client, err := clientset.NewForConfig(&config)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("Error creating clientset: %v", err)
|
t.Fatalf("Error creating clientset: %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
ns := framework.CreateTestingNamespace("test-service-immutable-load-balancer-class", t)
|
ns := framework.CreateNamespaceOrDie(client, "test-service-immutable-load-balancer-class", t)
|
||||||
defer framework.DeleteTestingNamespace(ns, t)
|
defer framework.DeleteNamespaceOrDie(client, ns, t)
|
||||||
|
|
||||||
controller, cloud, informer := newServiceController(t, client)
|
controller, cloud, informer := newServiceController(t, client)
|
||||||
|
|
||||||
@ -351,19 +333,16 @@ func Test_SetLoadBalancerClassThenUpdateLoadBalancerClass(t *testing.T) {
|
|||||||
// Test_UpdateLoadBalancerWithLoadBalancerClass tests that when a Load Balancer type of Service that
|
// Test_UpdateLoadBalancerWithLoadBalancerClass tests that when a Load Balancer type of Service that
|
||||||
// is updated from non loadBalancerClass set to loadBalancerClass set, it should be not allowed.
|
// is updated from non loadBalancerClass set to loadBalancerClass set, it should be not allowed.
|
||||||
func Test_UpdateLoadBalancerWithLoadBalancerClass(t *testing.T) {
|
func Test_UpdateLoadBalancerWithLoadBalancerClass(t *testing.T) {
|
||||||
|
server := kubeapiservertesting.StartTestServerOrDie(t, nil, nil, framework.SharedEtcd())
|
||||||
|
defer server.TearDownFn()
|
||||||
|
|
||||||
controlPlaneConfig := framework.NewIntegrationTestControlPlaneConfig()
|
client, err := clientset.NewForConfig(server.ClientConfig)
|
||||||
_, server, closeFn := framework.RunAnAPIServer(controlPlaneConfig)
|
|
||||||
defer closeFn()
|
|
||||||
|
|
||||||
config := restclient.Config{Host: server.URL}
|
|
||||||
client, err := clientset.NewForConfig(&config)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("Error creating clientset: %v", err)
|
t.Fatalf("Error creating clientset: %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
ns := framework.CreateTestingNamespace("test-service-update-load-balancer-class", t)
|
ns := framework.CreateNamespaceOrDie(client, "test-service-update-load-balancer-class", t)
|
||||||
defer framework.DeleteTestingNamespace(ns, t)
|
defer framework.DeleteNamespaceOrDie(client, ns, t)
|
||||||
|
|
||||||
controller, cloud, informer := newServiceController(t, client)
|
controller, cloud, informer := newServiceController(t, client)
|
||||||
|
|
||||||
|
@ -23,7 +23,7 @@ import (
|
|||||||
corev1 "k8s.io/api/core/v1"
|
corev1 "k8s.io/api/core/v1"
|
||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
clientset "k8s.io/client-go/kubernetes"
|
clientset "k8s.io/client-go/kubernetes"
|
||||||
restclient "k8s.io/client-go/rest"
|
kubeapiservertesting "k8s.io/kubernetes/cmd/kube-apiserver/app/testing"
|
||||||
"k8s.io/kubernetes/test/integration/framework"
|
"k8s.io/kubernetes/test/integration/framework"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -32,18 +32,16 @@ import (
|
|||||||
// the internalTrafficPolicy field was being defaulted in older versions. New versions stop defauting the
|
// the internalTrafficPolicy field was being defaulted in older versions. New versions stop defauting the
|
||||||
// field and drop on read, but for compatibility reasons we still accept the field.
|
// field and drop on read, but for compatibility reasons we still accept the field.
|
||||||
func Test_ExternalNameServiceStopsDefaultingInternalTrafficPolicy(t *testing.T) {
|
func Test_ExternalNameServiceStopsDefaultingInternalTrafficPolicy(t *testing.T) {
|
||||||
controlPlaneConfig := framework.NewIntegrationTestControlPlaneConfig()
|
server := kubeapiservertesting.StartTestServerOrDie(t, nil, nil, framework.SharedEtcd())
|
||||||
_, server, closeFn := framework.RunAnAPIServer(controlPlaneConfig)
|
defer server.TearDownFn()
|
||||||
defer closeFn()
|
|
||||||
|
|
||||||
config := restclient.Config{Host: server.URL}
|
client, err := clientset.NewForConfig(server.ClientConfig)
|
||||||
client, err := clientset.NewForConfig(&config)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("Error creating clientset: %v", err)
|
t.Fatalf("Error creating clientset: %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
ns := framework.CreateTestingNamespace("test-external-name-drops-internal-traffic-policy", t)
|
ns := framework.CreateNamespaceOrDie(client, "test-external-name-drops-internal-traffic-policy", t)
|
||||||
defer framework.DeleteTestingNamespace(ns, t)
|
defer framework.DeleteNamespaceOrDie(client, ns, t)
|
||||||
|
|
||||||
service := &corev1.Service{
|
service := &corev1.Service{
|
||||||
ObjectMeta: metav1.ObjectMeta{
|
ObjectMeta: metav1.ObjectMeta{
|
||||||
@ -78,18 +76,16 @@ func Test_ExternalNameServiceStopsDefaultingInternalTrafficPolicy(t *testing.T)
|
|||||||
// but drops the field on read. This test exists due to historic reasons where the internalTrafficPolicy field was being defaulted
|
// but drops the field on read. This test exists due to historic reasons where the internalTrafficPolicy field was being defaulted
|
||||||
// in older versions. New versions stop defauting the field and drop on read, but for compatibility reasons we still accept the field.
|
// in older versions. New versions stop defauting the field and drop on read, but for compatibility reasons we still accept the field.
|
||||||
func Test_ExternalNameServiceDropsInternalTrafficPolicy(t *testing.T) {
|
func Test_ExternalNameServiceDropsInternalTrafficPolicy(t *testing.T) {
|
||||||
controlPlaneConfig := framework.NewIntegrationTestControlPlaneConfig()
|
server := kubeapiservertesting.StartTestServerOrDie(t, nil, nil, framework.SharedEtcd())
|
||||||
_, server, closeFn := framework.RunAnAPIServer(controlPlaneConfig)
|
defer server.TearDownFn()
|
||||||
defer closeFn()
|
|
||||||
|
|
||||||
config := restclient.Config{Host: server.URL}
|
client, err := clientset.NewForConfig(server.ClientConfig)
|
||||||
client, err := clientset.NewForConfig(&config)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("Error creating clientset: %v", err)
|
t.Fatalf("Error creating clientset: %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
ns := framework.CreateTestingNamespace("test-external-name-drops-internal-traffic-policy", t)
|
ns := framework.CreateNamespaceOrDie(client, "test-external-name-drops-internal-traffic-policy", t)
|
||||||
defer framework.DeleteTestingNamespace(ns, t)
|
defer framework.DeleteNamespaceOrDie(client, ns, t)
|
||||||
|
|
||||||
internalTrafficPolicy := corev1.ServiceInternalTrafficPolicyCluster
|
internalTrafficPolicy := corev1.ServiceInternalTrafficPolicyCluster
|
||||||
service := &corev1.Service{
|
service := &corev1.Service{
|
||||||
@ -127,18 +123,16 @@ func Test_ExternalNameServiceDropsInternalTrafficPolicy(t *testing.T) {
|
|||||||
// field was being defaulted in older versions. New versions stop defauting the field and drop on read, but for compatibility reasons
|
// field was being defaulted in older versions. New versions stop defauting the field and drop on read, but for compatibility reasons
|
||||||
// we still accept the field.
|
// we still accept the field.
|
||||||
func Test_ConvertingToExternalNameServiceDropsInternalTrafficPolicy(t *testing.T) {
|
func Test_ConvertingToExternalNameServiceDropsInternalTrafficPolicy(t *testing.T) {
|
||||||
controlPlaneConfig := framework.NewIntegrationTestControlPlaneConfig()
|
server := kubeapiservertesting.StartTestServerOrDie(t, nil, nil, framework.SharedEtcd())
|
||||||
_, server, closeFn := framework.RunAnAPIServer(controlPlaneConfig)
|
defer server.TearDownFn()
|
||||||
defer closeFn()
|
|
||||||
|
|
||||||
config := restclient.Config{Host: server.URL}
|
client, err := clientset.NewForConfig(server.ClientConfig)
|
||||||
client, err := clientset.NewForConfig(&config)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("Error creating clientset: %v", err)
|
t.Fatalf("Error creating clientset: %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
ns := framework.CreateTestingNamespace("test-external-name-drops-internal-traffic-policy", t)
|
ns := framework.CreateNamespaceOrDie(client, "test-external-name-drops-internal-traffic-policy", t)
|
||||||
defer framework.DeleteTestingNamespace(ns, t)
|
defer framework.DeleteNamespaceOrDie(client, ns, t)
|
||||||
|
|
||||||
service := &corev1.Service{
|
service := &corev1.Service{
|
||||||
ObjectMeta: metav1.ObjectMeta{
|
ObjectMeta: metav1.ObjectMeta{
|
||||||
|
@ -31,8 +31,7 @@ import (
|
|||||||
|
|
||||||
func Test_UpgradeService(t *testing.T) {
|
func Test_UpgradeService(t *testing.T) {
|
||||||
etcdOptions := framework.SharedEtcd()
|
etcdOptions := framework.SharedEtcd()
|
||||||
apiServerOptions := kubeapiservertesting.NewDefaultTestServerOptions()
|
s := kubeapiservertesting.StartTestServerOrDie(t, nil, nil, etcdOptions)
|
||||||
s := kubeapiservertesting.StartTestServerOrDie(t, apiServerOptions, nil, etcdOptions)
|
|
||||||
defer s.TearDownFn()
|
defer s.TearDownFn()
|
||||||
serviceName := "test-old-service"
|
serviceName := "test-old-service"
|
||||||
ns := "old-service-ns"
|
ns := "old-service-ns"
|
||||||
|
Loading…
Reference in New Issue
Block a user