code: func NewManager(c clientset.Interface) *Manager {
  	m := &Manager{
  		getToken: func(name, namespace string, tr *authenticationv1.TokenRequest) (*authenticationv1.TokenRequest, error) {
  			if c == nil {
  				return nil, errors.New("cannot use TokenManager when kubelet is in standalone mode")
  			}
  			return c.CoreV1().ServiceAccounts(namespace).CreateToken(name, tr)
  		},
  		cache: make(map[string]*authenticationv1.TokenRequest),
  		clock: clock.RealClock{},
  	}
  	go wait.Forever(m.cleanup, gcPeriod)
  	return m
  }
docs: // NewManager returns a new token manager.