1
0
Fork 0
mirror of https://github.com/kyverno/kyverno.git synced 2025-03-06 07:57:07 +00:00
kyverno/pkg/validation/resource/validate.go
Charles-Edouard Brétéché 767e576a9a
refactor: ttl label validation (#7960)
Signed-off-by: Charles-Edouard Brétéché <charles.edouard@nirmata.com>
2023-08-03 12:48:10 +08:00

32 lines
668 B
Go

package resource
import (
"context"
"time"
"github.com/kyverno/kyverno/api/kyverno"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
)
func ValidateTtlLabel(_ context.Context, object metav1.Object) error {
labels := object.GetLabels()
if labels == nil {
return nil
}
if ttl, ok := labels[kyverno.LabelCleanupTtl]; !ok {
return nil
} else {
_, err := time.ParseDuration(ttl)
if err != nil {
// Try parsing ttlValue as a time in ISO 8601 format
_, err := time.Parse(kyverno.ValueTtlDateTimeLayout, ttl)
if err != nil {
_, err = time.Parse(kyverno.ValueTtlDateLayout, ttl)
if err != nil {
return err
}
}
}
}
return nil
}