code: func (c *clientCache) setClient(issuer, clientID string, client *oidcAuthProvider) *oidcAuthProvider {
  	c.mu.Lock()
  	defer c.mu.Unlock()
  	key := cacheKey{issuer, clientID}
  
  	// If another client has already initialized a client for the given provider we want
  	// to use that client instead of the one we're trying to set. This is so all transports
  	// share a client and can coordinate around the same mutex when refreshing and writing
  	// to the kubeconfig.
  	if oldClient, ok := c.cache[key]; ok {
  		return oldClient
  	}
  
  	c.cache[key] = client
  	return client
  }
docs: // setClient attempts to put the client in the cache but may return any clients
  // with the same keys set before. This is so there's only ever one client for a provider.