diff --git a/pkg/apis/core/validation/validation.go b/pkg/apis/core/validation/validation.go index 16bfec7b1a4..d841ea3223b 100644 --- a/pkg/apis/core/validation/validation.go +++ b/pkg/apis/core/validation/validation.go @@ -5526,12 +5526,12 @@ func ValidateSecurityContext(sc *core.SecurityContext, fldPath *field.Path) fiel // is the max character length for the USER itself. Both the DOMAIN and USER have their // own restrictions, and more information about them can be found here: // https://support.microsoft.com/en-us/help/909264/naming-conventions-in-active-directory-for-computers-domains-sites-and -// https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.localaccounts/new-localuser?view=powershell-5.1 +// https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-2000-server/bb726984(v=technet.10) const ( maxGMSACredentialSpecLengthInKiB = 64 maxGMSACredentialSpecLength = maxGMSACredentialSpecLengthInKiB * 1024 maxRunAsUserNameDomainLength = 256 - maxRunAsUserNameUserLength = 21 + maxRunAsUserNameUserLength = 104 ) var ( @@ -5612,8 +5612,8 @@ func validateWindowsSecurityContextOptions(windowsOptions *core.WindowsSecurityC if l := len(user); l == 0 { errMsg := fmt.Sprintf("runAsUserName's User cannot be empty") allErrs = append(allErrs, field.Invalid(fieldPath.Child("runAsUserName"), windowsOptions.RunAsUserName, errMsg)) - } else if l >= maxRunAsUserNameUserLength { - errMsg := fmt.Sprintf("runAsUserName's User length must be under %d characters", maxRunAsUserNameUserLength) + } else if l > maxRunAsUserNameUserLength { + errMsg := fmt.Sprintf("runAsUserName's User length must not be longer than %d characters", maxRunAsUserNameUserLength) allErrs = append(allErrs, field.Invalid(fieldPath.Child("runAsUserName"), windowsOptions.RunAsUserName, errMsg)) } diff --git a/pkg/apis/core/validation/validation_test.go b/pkg/apis/core/validation/validation_test.go index fd10c767e4d..da385344d41 100644 --- a/pkg/apis/core/validation/validation_test.go +++ b/pkg/apis/core/validation/validation_test.go @@ -14204,9 +14204,9 @@ func TestValidateWindowsSecurityContextOptions(t *testing.T) { { testName: "RunAsUserName's User is too long", windowsOptions: &core.WindowsSecurityContextOptions{ - RunAsUserName: toPtr(strings.Repeat("a", maxRunAsUserNameUserLength)), + RunAsUserName: toPtr(strings.Repeat("a", maxRunAsUserNameUserLength+1)), }, - expectedErrorSubstring: "runAsUserName's User length must be under", + expectedErrorSubstring: "runAsUserName's User length must not be longer than", }, { testName: "RunAsUserName's User cannot contain only spaces or periods",