func()

in pkg/server/server.go [82:114]


func (s *Server) RunUntil(ctx context.Context, kubeconfig string) error {
	ctx, cancel := context.WithCancel(ctx)
	defer cancel()

	go s.graceshutdown(ctx)
	klog.Infof("starting the server with config: %+v\n", s.Config)

	var err error
	s.clientSet = k8s.ClientOrDie(kubeconfig)
	s.provider, err = metrics.StartGCM(ctx, s.Config)
	if err != nil {
		panic(err.Error())
	}

	if s.Config.Mode == common.ModeCluster {
		s.cr = s.provider.ClusterRecorder()
		s.cw = k8s.NewClusterWatcher(s.clientSet)
		// start informers
		s.cw.StartClusterWatches(ctx.Done())
		if s.Config.ClusterProbes {
			s.pr = s.provider.ProbeRecorder()
		}
		go s.runScrape(ctx)
	} else {
		s.nr = s.provider.NodeRecorder()
		s.nw = k8s.NewNodeWatcher(s.clientSet, s.Config.NodeName)
		s.nw.StartNodeWatches(ctx.Done())
		go s.runScrape(ctx)
	}

	klog.V(1).Infof("[gke-prober Livenes and Readiness Server]: Lisenting on %s \n", s.httpserver.Addr)
	return s.httpserver.ListenAndServe()
}