diff --git a/test/e2e/framework/volume/fixtures.go b/test/e2e/framework/volume/fixtures.go index 30d0000f75d..03d1635bb7d 100644 --- a/test/e2e/framework/volume/fixtures.go +++ b/test/e2e/framework/volume/fixtures.go @@ -128,12 +128,8 @@ type TestConfig struct { // Wait for the pod to terminate successfully // False indicates that the pod is long running WaitForCompletion bool - // ServerNodeName is the spec.nodeName to run server pod on. Default is any node. - ServerNodeName string - // ClientNodeName is the spec.nodeName to run client pod on. Default is any node. - ClientNodeName string - // NodeSelector to use in pod spec (server, client and injector pods). - NodeSelector map[string]string + // ClientNodeSelection restricts where the client pod runs on. Default is any node. + ClientNodeSelection e2epod.NodeSelection } // Test contains a volume to mount into a client pod and its @@ -297,8 +293,6 @@ func startVolumeServer(client clientset.Interface, config TestConfig) *v1.Pod { }, Volumes: volumes, RestartPolicy: restartPolicy, - NodeName: config.ServerNodeName, - NodeSelector: config.NodeSelector, }, } @@ -389,10 +383,9 @@ func runVolumeTesterPod(client clientset.Interface, config TestConfig, podSuffix TerminationGracePeriodSeconds: &gracePeriod, SecurityContext: GeneratePodSecurityContext(fsGroup, seLinuxOptions), Volumes: []v1.Volume{}, - NodeName: config.ClientNodeName, - NodeSelector: config.NodeSelector, }, } + e2epod.SetNodeSelection(clientPod, config.ClientNodeSelection) for i, test := range tests { volumeName := fmt.Sprintf("%s-%s-%d", config.Prefix, "volume", i) diff --git a/test/e2e/storage/drivers/in_tree.go b/test/e2e/storage/drivers/in_tree.go index 9639ae87036..99a8e3c0080 100644 --- a/test/e2e/storage/drivers/in_tree.go +++ b/test/e2e/storage/drivers/in_tree.go @@ -442,7 +442,7 @@ func (i *iSCSIDriver) CreateVolume(config *testsuites.PerTestConfig, volType tes c, serverPod, serverIP, iqn := newISCSIServer(cs, ns.Name) config.ServerConfig = &c - config.ClientNodeSelection = e2epod.NodeSelection{Name: c.ClientNodeName} + config.ClientNodeSelection = c.ClientNodeSelection return &iSCSIVolume{ serverPod: serverPod, serverIP: serverIP, @@ -473,7 +473,7 @@ func newISCSIServer(cs clientset.Interface, namespace string) (config volume.Tes } pod, ip = volume.CreateStorageServer(cs, config) // Make sure the client runs on the same node as server so we don't need to open any firewalls. - config.ClientNodeName = pod.Spec.NodeName + config.ClientNodeSelection = e2epod.NodeSelection{Name: pod.Spec.NodeName} return config, pod, ip, iqn } diff --git a/test/e2e/storage/external/BUILD b/test/e2e/storage/external/BUILD index b87cd0d4ff1..a469aff19e1 100644 --- a/test/e2e/storage/external/BUILD +++ b/test/e2e/storage/external/BUILD @@ -15,6 +15,7 @@ go_library( "//staging/src/k8s.io/client-go/kubernetes/scheme:go_default_library", "//test/e2e/framework:go_default_library", "//test/e2e/framework/config:go_default_library", + "//test/e2e/framework/pod:go_default_library", "//test/e2e/framework/skipper:go_default_library", "//test/e2e/framework/volume:go_default_library", "//test/e2e/storage/testpatterns:go_default_library", diff --git a/test/e2e/storage/flexvolume.go b/test/e2e/storage/flexvolume.go index bf4cc74950f..1d512e4ea94 100644 --- a/test/e2e/storage/flexvolume.go +++ b/test/e2e/storage/flexvolume.go @@ -29,6 +29,7 @@ import ( clientset "k8s.io/client-go/kubernetes" "k8s.io/kubernetes/test/e2e/framework" e2enode "k8s.io/kubernetes/test/e2e/framework/node" + e2epod "k8s.io/kubernetes/test/e2e/framework/pod" e2eskipper "k8s.io/kubernetes/test/e2e/framework/skipper" e2essh "k8s.io/kubernetes/test/e2e/framework/ssh" "k8s.io/kubernetes/test/e2e/framework/testfiles" @@ -177,9 +178,9 @@ var _ = utils.SIGDescribe("Flexvolumes", func() { node, err = e2enode.GetRandomReadySchedulableNode(f.ClientSet) framework.ExpectNoError(err) config = volume.TestConfig{ - Namespace: ns.Name, - Prefix: "flex", - ClientNodeName: node.Name, + Namespace: ns.Name, + Prefix: "flex", + ClientNodeSelection: e2epod.NodeSelection{Name: node.Name}, } suffix = ns.Name }) diff --git a/test/e2e/storage/testsuites/base.go b/test/e2e/storage/testsuites/base.go index 3f7bafa0c74..0ace7c28119 100644 --- a/test/e2e/storage/testsuites/base.go +++ b/test/e2e/storage/testsuites/base.go @@ -429,11 +429,9 @@ func convertTestConfig(in *PerTestConfig) volume.TestConfig { } return volume.TestConfig{ - Namespace: in.Framework.Namespace.Name, - Prefix: in.Prefix, - // TODO: fix this to use NodeSelection - ClientNodeName: in.ClientNodeSelection.Name, - NodeSelector: in.ClientNodeSelection.Selector, + Namespace: in.Framework.Namespace.Name, + Prefix: in.Prefix, + ClientNodeSelection: in.ClientNodeSelection, } } diff --git a/test/e2e/storage/testsuites/volume_io.go b/test/e2e/storage/testsuites/volume_io.go index aea21e4100a..699d1d2c7c6 100644 --- a/test/e2e/storage/testsuites/volume_io.go +++ b/test/e2e/storage/testsuites/volume_io.go @@ -241,10 +241,7 @@ func makePodSpec(config volume.TestConfig, initCmd string, volsrc v1.VolumeSourc }, } - e2epod.SetNodeSelection(pod, e2epod.NodeSelection{ - Name: config.ClientNodeName, - Selector: config.NodeSelector, - }) + e2epod.SetNodeSelection(pod, config.ClientNodeSelection) return pod }