in internal/credsretriever/refreshing_cache.go [100:117]
func NewCachedCredentialRetriever(opts CachedCredentialRetrieverOpts) credentials.CredentialRetriever {
if opts.Delegate == nil {
panic("Delegate is not allowed to be empty")
}
if opts.CleanupInterval <= 0 {
opts.CleanupInterval = defaultCleanupInterval
}
if opts.RefreshQPS <= 0 {
opts.RefreshQPS = 3
}
if opts.RefreshQPS*int(opts.CredentialsRenewalTtl.Seconds()) < opts.MaxCacheSize/2 {
panic(fmt.Sprintf(
"Refresh QPS is too small (%d) or credentials renewal to small (%0.2fs) to keep up with cache's size (%d)",
opts.RefreshQPS, opts.CredentialsRenewalTtl.Seconds(), opts.MaxCacheSize))
}
return newCachedCredentialRetriever(opts)
}