func()

in pkg/mesh/app.go [165:180]


func (kr *KRun) WaitEnvoyReady(addr string, max time.Duration) error {
	t0 := time.Now()
	for {
		serverStateReady, serverStateErr := kr.envoyServerStateCheck(addr)
		listenerReady, listenerErr := kr.envoyListenerWorkersStartedCheck(addr)
		if serverStateErr == nil && listenerErr == nil && serverStateReady && listenerReady {
			log.Println("Envoy is ready")
			return nil
		}

		if time.Since(t0) > max {
			return fmt.Errorf("Timeout waiting for ready from envoy")
		}
		time.Sleep(100 * time.Millisecond)
	}
}