in pkg/webhook/webhook.go [325:343]
func getServiceAccountTokenExpiration(pod *corev1.Pod, sa *corev1.ServiceAccount) (int64, error) {
serviceAccountTokenExpiration := DefaultServiceAccountTokenExpiration
var err error
// check if expiry defined in the pod with annotation
if pod.Annotations != nil && pod.Annotations[ServiceAccountTokenExpiryAnnotation] != "" {
if serviceAccountTokenExpiration, err = strconv.ParseInt(pod.Annotations[ServiceAccountTokenExpiryAnnotation], 10, 64); err != nil {
return 0, err
}
} else if sa.Annotations != nil && sa.Annotations[ServiceAccountTokenExpiryAnnotation] != "" {
if serviceAccountTokenExpiration, err = strconv.ParseInt(sa.Annotations[ServiceAccountTokenExpiryAnnotation], 10, 64); err != nil {
return 0, err
}
}
// validate expiration time
if !validServiceAccountTokenExpiry(serviceAccountTokenExpiration) {
return 0, errors.Errorf("token expiration %d not valid. Expected value to be between 3600 and 86400", serviceAccountTokenExpiration)
}
return serviceAccountTokenExpiration, nil
}