func()

in pkg/agent/agent.go [127:150]


func (a *Agent) Run(ctx context.Context) error {
	if err := a.checkProviders(); err != nil {
		return errors.WithMessage(err, "misconfigured")
	}
	a.log.Debug("starting")
	defer a.log.Debug("finished")
	group := workgroup.WithContext(ctx)

	ns := nodestream.New(a.log.WithField("worker", "informer"), a.kube, nodestream.Config{
		NodeName: a.nodeName,
	}, a.handler())

	err := a.checkNodePreflight()
	if err != nil {
		return err
	}

	group.Work(ns.Run)
	group.Work(a.periodicUpdateChecker)

	<-ctx.Done()
	a.log.Info("waiting on workers to finish")
	return group.Wait()
}