-
Notifications
You must be signed in to change notification settings - Fork 452
/
validation.go
31 lines (25 loc) · 1.02 KB
/
validation.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
// SPDX-FileCopyrightText: 2024 SAP SE or an SAP affiliate company and Gardener contributors
//
// SPDX-License-Identifier: Apache-2.0
// Package validation contains methods to validate kinds in the
// authentication.k8s.io API group.
package validation
import (
"math"
"time"
"k8s.io/apimachinery/pkg/util/validation/field"
"github.com/gardener/gardener/pkg/apis/authentication"
)
// ValidateKubeconfigRequest validates a KubeconfigRequest.
func ValidateKubeconfigRequest(req *authentication.KubeconfigRequest) field.ErrorList {
allErrs := field.ErrorList{}
specPath := field.NewPath("spec")
const min = 10 * time.Minute
if req.Spec.ExpirationSeconds < int64(min.Seconds()) {
allErrs = append(allErrs, field.Invalid(specPath.Child("expirationSeconds"), req.Spec.ExpirationSeconds, "may not specify a duration less than 10 minutes"))
}
if req.Spec.ExpirationSeconds > math.MaxUint32 {
allErrs = append(allErrs, field.TooLong(specPath.Child("expirationSeconds"), req.Spec.ExpirationSeconds, math.MaxUint32))
}
return allErrs
}