in pkg/cmd/serviceaccount/phases/create/serviceaccount.go [44:72]
func (p *serviceAccountPhase) prerun(data workflow.RunData) error {
createData, ok := data.(CreateData)
if !ok {
return errors.Errorf("invalid data type %T", data)
}
if createData.ServiceAccountNamespace() == "" {
return options.FlagIsRequiredError(options.ServiceAccountNamespace.Flag)
}
if createData.ServiceAccountName() == "" {
return options.FlagIsRequiredError(options.ServiceAccountName.Flag)
}
minTokenExpirationDuration := time.Duration(webhook.MinServiceAccountTokenExpiration) * time.Second
maxTokenExpirationDuration := time.Duration(webhook.MaxServiceAccountTokenExpiration) * time.Second
if createData.ServiceAccountTokenExpiration() < minTokenExpirationDuration {
return errors.Errorf("--service-account-token-expiration must be greater than or equal to %s", minTokenExpirationDuration.String())
}
if createData.ServiceAccountTokenExpiration() > maxTokenExpirationDuration {
return errors.Errorf("--service-account-token-expiration must be less than or equal to %s", maxTokenExpirationDuration.String())
}
var err error
if p.kubeClient, err = createData.KubeClient(); err != nil {
return errors.Wrap(err, "failed to get kubernetes client")
}
return nil
}