diff --git a/changelogs/unreleased/9165-Lyndon-Li b/changelogs/unreleased/9165-Lyndon-Li new file mode 100644 index 000000000..e7a371263 --- /dev/null +++ b/changelogs/unreleased/9165-Lyndon-Li @@ -0,0 +1 @@ +Fix issue #9140, add os=windows:NoSchedule toleration for Windows pods \ No newline at end of file diff --git a/pkg/exposer/csi_snapshot.go b/pkg/exposer/csi_snapshot.go index 25b670d5e..e404d5dcf 100644 --- a/pkg/exposer/csi_snapshot.go +++ b/pkg/exposer/csi_snapshot.go @@ -626,12 +626,20 @@ func (e *csiSnapshotExposer) createBackupPod( nodeSelector[kube.NodeOSLabel] = kube.NodeOSWindows podOS.Name = kube.NodeOSWindows - toleration = append(toleration, corev1api.Toleration{ - Key: "os", - Operator: "Equal", - Effect: "NoSchedule", - Value: "windows", - }) + toleration = append(toleration, []corev1api.Toleration{ + { + Key: "os", + Operator: "Equal", + Effect: "NoSchedule", + Value: "windows", + }, + { + Key: "os", + Operator: "Equal", + Effect: "NoExecute", + Value: "windows", + }, + }...) } else { userID := int64(0) securityCtx = &corev1api.PodSecurityContext{ diff --git a/pkg/exposer/generic_restore.go b/pkg/exposer/generic_restore.go index 3ac919a12..c8ac7fcce 100644 --- a/pkg/exposer/generic_restore.go +++ b/pkg/exposer/generic_restore.go @@ -501,12 +501,20 @@ func (e *genericRestoreExposer) createRestorePod( nodeSelector[kube.NodeOSLabel] = kube.NodeOSWindows podOS.Name = kube.NodeOSWindows - toleration = append(toleration, corev1api.Toleration{ - Key: "os", - Operator: "Equal", - Effect: "NoSchedule", - Value: "windows", - }) + toleration = append(toleration, []corev1api.Toleration{ + { + Key: "os", + Operator: "Equal", + Effect: "NoSchedule", + Value: "windows", + }, + { + Key: "os", + Operator: "Equal", + Effect: "NoExecute", + Value: "windows", + }, + }...) } else { userID := int64(0) securityCtx = &corev1api.PodSecurityContext{ diff --git a/pkg/exposer/pod_volume.go b/pkg/exposer/pod_volume.go index 012abb196..ea1fb2d1f 100644 --- a/pkg/exposer/pod_volume.go +++ b/pkg/exposer/pod_volume.go @@ -340,12 +340,20 @@ func (e *podVolumeExposer) createHostingPod(ctx context.Context, ownerObject cor nodeSelector[kube.NodeOSLabel] = kube.NodeOSWindows podOS.Name = kube.NodeOSWindows - toleration = append(toleration, corev1api.Toleration{ - Key: "os", - Operator: "Equal", - Effect: "NoSchedule", - Value: "windows", - }) + toleration = append(toleration, []corev1api.Toleration{ + { + Key: "os", + Operator: "Equal", + Effect: "NoSchedule", + Value: "windows", + }, + { + Key: "os", + Operator: "Equal", + Effect: "NoExecute", + Value: "windows", + }, + }...) } else { userID := int64(0) securityCtx = &corev1api.PodSecurityContext{ diff --git a/pkg/install/daemonset.go b/pkg/install/daemonset.go index 2c4bee090..98f30cc69 100644 --- a/pkg/install/daemonset.go +++ b/pkg/install/daemonset.go @@ -244,6 +244,12 @@ func DaemonSet(namespace string, opts ...podTemplateOption) *appsv1api.DaemonSet Effect: "NoSchedule", Value: "windows", }, + { + Key: "os", + Operator: "Equal", + Effect: "NoExecute", + Value: "windows", + }, } } else { daemonSet.Spec.Template.Spec.NodeSelector = map[string]string{