func()

in readers/apiserver/watchlist/internal/watchlist/watchlist.go [243:269]


func (r *Reader) mapCreators() {
	rtMapOnce.Do(func() {
		m := map[RetrieveType]func(ctx context.Context) []spawnWatcher{
			RTNode:              r.createNodesWatcher,
			RTPod:               r.createPodsWatcher,
			RTNamespace:         r.createNamespaceWatcher,
			RTPersistentVolume:  r.createPersistentVolumesWatcher,
			RTRBAC:              r.createRBACWatcher,
			RTService:           r.createServicesWatcher,
			RTDeployment:        r.createDeploymentsWatcher,
			RTIngressController: r.createIngressesWatcher,
			RTEndpoint:          r.createEndpointsWatcher,
		}

		if len(m) != len(rtMap) {
			mapCreationErr = fmt.Errorf("Bug: create watcher map length does not equal RetrieveType map length")
		}

		for rt, creator := range m {
			if _, ok := rtMap[rt]; !ok {
				mapCreationErr = fmt.Errorf("Bug: RetrieveType %s not found in rtMap", rt.String())
				return
			}
			rtMap[rt] = creator
		}
	})
}