Skip to content

Commit 8c49d79

Browse files
committed
test: fix windows 2022 test failure
1 parent 68fed09 commit 8c49d79

File tree

6 files changed

+50
-27
lines changed

6 files changed

+50
-27
lines changed

deploy/example/windows/deployment.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ spec:
3131
"kubernetes.io/os": windows
3232
containers:
3333
- name: busybox
34-
image: e2eteam/busybox:1.29
34+
image: mcr.microsoft.com/windows/servercore:ltsc2022
3535
command:
3636
- "powershell.exe"
3737
- "-Command"

deploy/example/windows/statefulset.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ spec:
1818
"kubernetes.io/os": windows
1919
containers:
2020
- name: busybox-smb
21-
image: e2eteam/busybox:1.29
21+
image: mcr.microsoft.com/windows/servercore:ltsc2022
2222
command:
2323
- "powershell.exe"
2424
- "-Command"

test/e2e/dynamic_provisioning_test.go

+24-13
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,8 @@ var _ = ginkgo.Describe("Dynamic Provisioning", func() {
7171
},
7272
},
7373
},
74-
IsWindows: isWindowsCluster,
74+
IsWindows: isWindowsCluster,
75+
WinServerVer: winServerVer,
7576
}
7677

7778
podCheckCmd := []string{"cat", "/mnt/test-1/data"}
@@ -123,7 +124,8 @@ var _ = ginkgo.Describe("Dynamic Provisioning", func() {
123124
},
124125
},
125126
},
126-
IsWindows: isWindowsCluster,
127+
IsWindows: isWindowsCluster,
128+
WinServerVer: winServerVer,
127129
},
128130
}
129131
test := testsuites.DynamicallyProvisionedCmdVolumeTest{
@@ -148,7 +150,8 @@ var _ = ginkgo.Describe("Dynamic Provisioning", func() {
148150
},
149151
},
150152
},
151-
IsWindows: isWindowsCluster,
153+
IsWindows: isWindowsCluster,
154+
WinServerVer: winServerVer,
152155
},
153156
{
154157
Cmd: convertToPowershellCommandIfNecessary("while true; do echo $(date -u) >> /mnt/test-1/data; sleep 100; done"),
@@ -161,7 +164,8 @@ var _ = ginkgo.Describe("Dynamic Provisioning", func() {
161164
},
162165
},
163166
},
164-
IsWindows: isWindowsCluster,
167+
IsWindows: isWindowsCluster,
168+
WinServerVer: winServerVer,
165169
},
166170
}
167171
test := testsuites.DynamicallyProvisionedCollocatedPodTest{
@@ -190,7 +194,8 @@ var _ = ginkgo.Describe("Dynamic Provisioning", func() {
190194
},
191195
},
192196
},
193-
IsWindows: isWindowsCluster,
197+
IsWindows: isWindowsCluster,
198+
WinServerVer: winServerVer,
194199
},
195200
}
196201
test := testsuites.DynamicallyProvisionedReadOnlyVolumeTest{
@@ -217,7 +222,8 @@ var _ = ginkgo.Describe("Dynamic Provisioning", func() {
217222
},
218223
},
219224
},
220-
IsWindows: isWindowsCluster,
225+
IsWindows: isWindowsCluster,
226+
WinServerVer: winServerVer,
221227
}
222228

223229
podCheckCmd := []string{"cat", "/mnt/test-1/data"}
@@ -286,9 +292,10 @@ var _ = ginkgo.Describe("Dynamic Provisioning", func() {
286292

287293
pods := []testsuites.PodDetails{
288294
{
289-
Cmd: convertToPowershellCommandIfNecessary("echo 'hello world' > /mnt/test-1/data && grep 'hello world' /mnt/test-1/data"),
290-
Volumes: volumes,
291-
IsWindows: isWindowsCluster,
295+
Cmd: convertToPowershellCommandIfNecessary("echo 'hello world' > /mnt/test-1/data && grep 'hello world' /mnt/test-1/data"),
296+
Volumes: volumes,
297+
IsWindows: isWindowsCluster,
298+
WinServerVer: winServerVer,
292299
},
293300
}
294301
test := testsuites.DynamicallyProvisionedPodWithMultiplePVsTest{
@@ -312,7 +319,8 @@ var _ = ginkgo.Describe("Dynamic Provisioning", func() {
312319
},
313320
},
314321
},
315-
IsWindows: isWindowsCluster,
322+
IsWindows: isWindowsCluster,
323+
WinServerVer: winServerVer,
316324
},
317325
}
318326
test := testsuites.DynamicallyProvisionedVolumeSubpathTester{
@@ -381,7 +389,8 @@ var _ = ginkgo.Describe("Dynamic Provisioning", func() {
381389
},
382390
},
383391
},
384-
IsWindows: isWindowsCluster,
392+
IsWindows: isWindowsCluster,
393+
WinServerVer: winServerVer,
385394
},
386395
}
387396
test := testsuites.DynamicallyProvisionedCmdVolumeTest{
@@ -414,7 +423,8 @@ var _ = ginkgo.Describe("Dynamic Provisioning", func() {
414423
},
415424
},
416425
},
417-
IsWindows: isWindowsCluster,
426+
IsWindows: isWindowsCluster,
427+
WinServerVer: winServerVer,
418428
},
419429
}
420430
test := testsuites.DynamicallyProvisionedCmdVolumeTest{
@@ -447,7 +457,8 @@ var _ = ginkgo.Describe("Dynamic Provisioning", func() {
447457
},
448458
},
449459
},
450-
IsWindows: isWindowsCluster,
460+
IsWindows: isWindowsCluster,
461+
WinServerVer: winServerVer,
451462
},
452463
}
453464
test := testsuites.DynamicallyProvisionedCmdVolumeTest{

test/e2e/suite_test.go

+3
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ const (
4040
kubeconfigEnvVar = "KUBECONFIG"
4141
reportDirEnv = "ARTIFACTS"
4242
testWindowsEnvVar = "TEST_WINDOWS"
43+
testWinServerVerEnvVar = "WINDOWS_SERVER_VERSION"
4344
defaultReportDir = "test/e2e"
4445
testSmbSourceEnvVar = "TEST_SMB_SOURCE"
4546
testSmbSecretNameEnvVar = "TEST_SMB_SECRET_NAME"
@@ -52,6 +53,7 @@ const (
5253
var (
5354
smbDriver *smb.Driver
5455
isWindowsCluster = os.Getenv(testWindowsEnvVar) != ""
56+
winServerVer = os.Getenv(testWinServerVerEnvVar)
5557
defaultStorageClassParameters = map[string]string{
5658
"source": getSmbTestEnvVarValue(testSmbSourceEnvVar, defaultSmbSource),
5759
"csi.storage.k8s.io/provisioner-secret-name": getSmbTestEnvVarValue(testSmbSecretNameEnvVar, defaultSmbSecretName),
@@ -117,6 +119,7 @@ var _ = ginkgo.BeforeSuite(func() {
117119
framework.AfterReadingAllFlags(&framework.TestContext)
118120

119121
kubeconfig := os.Getenv(kubeconfigEnvVar)
122+
log.Println(testWinServerVerEnvVar, os.Getenv(testWinServerVerEnvVar), fmt.Sprintf("%v", winServerVer))
120123

121124
// Install SMB provisioner on cluster
122125
installSMBProvisioner := testCmd{

test/e2e/testsuites/specs.go

+9-8
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,10 @@ import (
2929
)
3030

3131
type PodDetails struct {
32-
Cmd string
33-
Volumes []VolumeDetails
34-
IsWindows bool
32+
Cmd string
33+
Volumes []VolumeDetails
34+
IsWindows bool
35+
WinServerVer string
3536
}
3637

3738
type VolumeDetails struct {
@@ -86,7 +87,7 @@ type DataSource struct {
8687

8788
//nolint:dupl
8889
func (pod *PodDetails) SetupWithDynamicVolumes(ctx context.Context, client clientset.Interface, namespace *v1.Namespace, csiDriver driver.DynamicPVTestDriver, storageClassParameters map[string]string) (*TestPod, []func(ctx context.Context)) {
89-
tpod := NewTestPod(client, namespace, pod.Cmd, pod.IsWindows)
90+
tpod := NewTestPod(client, namespace, pod.Cmd, pod.IsWindows, pod.WinServerVer)
9091
cleanupFuncs := make([]func(ctx context.Context), 0)
9192
for n, v := range pod.Volumes {
9293
tpvc, funcs := v.SetupDynamicPersistentVolumeClaim(ctx, client, namespace, csiDriver, storageClassParameters)
@@ -104,7 +105,7 @@ func (pod *PodDetails) SetupWithDynamicVolumes(ctx context.Context, client clien
104105
//
105106
//nolint:dupl
106107
func (pod *PodDetails) SetupWithDynamicMultipleVolumes(ctx context.Context, client clientset.Interface, namespace *v1.Namespace, csiDriver driver.DynamicPVTestDriver, storageClassParameters map[string]string) (*TestPod, []func(ctx context.Context)) {
107-
tpod := NewTestPod(client, namespace, pod.Cmd, pod.IsWindows)
108+
tpod := NewTestPod(client, namespace, pod.Cmd, pod.IsWindows, pod.WinServerVer)
108109
cleanupFuncs := make([]func(ctx context.Context), 0)
109110
for n, v := range pod.Volumes {
110111
tpvc, funcs := v.SetupDynamicPersistentVolumeClaim(ctx, client, namespace, csiDriver, storageClassParameters)
@@ -119,7 +120,7 @@ func (pod *PodDetails) SetupWithDynamicMultipleVolumes(ctx context.Context, clie
119120
}
120121

121122
func (pod *PodDetails) SetupWithPreProvisionedVolumes(ctx context.Context, client clientset.Interface, namespace *v1.Namespace, csiDriver driver.PreProvisionedVolumeTestDriver) (*TestPod, []func(ctx context.Context)) {
122-
tpod := NewTestPod(client, namespace, pod.Cmd, pod.IsWindows)
123+
tpod := NewTestPod(client, namespace, pod.Cmd, pod.IsWindows, pod.WinServerVer)
123124
cleanupFuncs := make([]func(ctx context.Context), 0)
124125
for n, v := range pod.Volumes {
125126
tpvc, funcs := v.SetupPreProvisionedPersistentVolumeClaim(ctx, client, namespace, csiDriver)
@@ -149,14 +150,14 @@ func (pod *PodDetails) SetupDeployment(ctx context.Context, client clientset.Int
149150
tpvc.ValidateProvisionedPersistentVolume(ctx)
150151
cleanupFuncs = append(cleanupFuncs, tpvc.Cleanup)
151152
ginkgo.By("setting up the Deployment")
152-
tDeployment := NewTestDeployment(client, namespace, pod.Cmd, tpvc.persistentVolumeClaim, fmt.Sprintf("%s%d", volume.VolumeMount.NameGenerate, 1), fmt.Sprintf("%s%d", volume.VolumeMount.MountPathGenerate, 1), volume.VolumeMount.ReadOnly, pod.IsWindows)
153+
tDeployment := NewTestDeployment(client, namespace, pod.Cmd, tpvc.persistentVolumeClaim, fmt.Sprintf("%s%d", volume.VolumeMount.NameGenerate, 1), fmt.Sprintf("%s%d", volume.VolumeMount.MountPathGenerate, 1), volume.VolumeMount.ReadOnly, pod.IsWindows, pod.WinServerVer)
153154

154155
cleanupFuncs = append(cleanupFuncs, tDeployment.Cleanup)
155156
return tDeployment, cleanupFuncs
156157
}
157158

158159
func (pod *PodDetails) SetupWithDynamicVolumesWithSubpath(ctx context.Context, client clientset.Interface, namespace *v1.Namespace, csiDriver driver.DynamicPVTestDriver, storageClassParameters map[string]string) (*TestPod, []func(ctx context.Context)) {
159-
tpod := NewTestPod(client, namespace, pod.Cmd, pod.IsWindows)
160+
tpod := NewTestPod(client, namespace, pod.Cmd, pod.IsWindows, pod.WinServerVer)
160161
cleanupFuncs := make([]func(ctx context.Context), 0)
161162
for n, v := range pod.Volumes {
162163
tpvc, funcs := v.SetupDynamicPersistentVolumeClaim(ctx, client, namespace, csiDriver, storageClassParameters)

test/e2e/testsuites/testsuites.go

+12-4
Original file line numberDiff line numberDiff line change
@@ -335,7 +335,7 @@ type TestDeployment struct {
335335
podName string
336336
}
337337

338-
func NewTestDeployment(c clientset.Interface, ns *v1.Namespace, command string, pvc *v1.PersistentVolumeClaim, volumeName, mountPath string, readOnly, isWindows bool) *TestDeployment {
338+
func NewTestDeployment(c clientset.Interface, ns *v1.Namespace, command string, pvc *v1.PersistentVolumeClaim, volumeName, mountPath string, readOnly, isWindows bool, winServerVer string) *TestDeployment {
339339
generateName := "smb-volume-tester-"
340340
selectorValue := fmt.Sprintf("%s%d", generateName, rand.Int())
341341
replicas := int32(1)
@@ -400,7 +400,7 @@ func NewTestDeployment(c clientset.Interface, ns *v1.Namespace, command string,
400400
Value: "win1809",
401401
},
402402
}
403-
testDeployment.deployment.Spec.Template.Spec.Containers[0].Image = "e2eteam/busybox:1.29"
403+
testDeployment.deployment.Spec.Template.Spec.Containers[0].Image = "mcr.microsoft.com/windows/servercore:" + getWinImageTag(winServerVer)
404404
testDeployment.deployment.Spec.Template.Spec.Containers[0].Command = []string{"powershell.exe"}
405405
testDeployment.deployment.Spec.Template.Spec.Containers[0].Args = []string{"-Command", command}
406406
}
@@ -502,7 +502,7 @@ type TestPod struct {
502502
namespace *v1.Namespace
503503
}
504504

505-
func NewTestPod(c clientset.Interface, ns *v1.Namespace, command string, isWindows bool) *TestPod {
505+
func NewTestPod(c clientset.Interface, ns *v1.Namespace, command string, isWindows bool, winServerVer string) *TestPod {
506506
testPod := &TestPod{
507507
client: c,
508508
namespace: ns,
@@ -537,14 +537,22 @@ func NewTestPod(c clientset.Interface, ns *v1.Namespace, command string, isWindo
537537
Value: "win1809",
538538
},
539539
}
540-
testPod.pod.Spec.Containers[0].Image = "e2eteam/busybox:1.29"
540+
testPod.pod.Spec.Containers[0].Image = "mcr.microsoft.com/windows/servercore:" + getWinImageTag(winServerVer)
541541
testPod.pod.Spec.Containers[0].Command = []string{"powershell.exe"}
542542
testPod.pod.Spec.Containers[0].Args = []string{"-Command", command}
543543
}
544544

545545
return testPod
546546
}
547547

548+
func getWinImageTag(winServerVer string) string {
549+
testWinImageTag := "ltsc2019"
550+
if winServerVer == "windows-2022" {
551+
testWinImageTag = "ltsc2022"
552+
}
553+
return testWinImageTag
554+
}
555+
548556
func (t *TestPod) Create(ctx context.Context) {
549557
var err error
550558

0 commit comments

Comments
 (0)