code: func NewCachingConfigMapManager(kubeClient clientset.Interface, getTTL manager.GetObjectTTLFunc) Manager {
  	getConfigMap := func(namespace, name string, opts metav1.GetOptions) (runtime.Object, error) {
  		return kubeClient.CoreV1().ConfigMaps(namespace).Get(name, opts)
  	}
  	configMapStore := manager.NewObjectStore(getConfigMap, clock.RealClock{}, getTTL, defaultTTL)
  	return &configMapManager{
  		manager: manager.NewCacheBasedManager(configMapStore, getConfigMapNames),
  	}
  }
docs: // NewCachingConfigMapManager creates a manager that keeps a cache of all configmaps
  // necessary for registered pods.
  // It implement the following logic:
  // - whenever a pod is create or updated, the cached versions of all configmaps
  //   are invalidated
  // - every GetObject() call tries to fetch the value from local cache; if it is
  //   not there, invalidated or too old, we fetch it from apiserver and refresh the
  //   value in cache; otherwise it is just fetched from cache