Add some retry to the service proxy.

It won't let you do that with an int type variable without a cast, Go must
be doing something magical for 1*time.Second.

So the options are:

Duration[] { 1*time.Second, 2*time.Second, ...}

Or

time.Duration(timeout)*time.Second

Both of which are worse in my opinion.

Brendan

In pkg/proxy/proxier.go:

> @@ -56,8 +56,8 @@ func (si *serviceInfo) setActive(val bool) bool {
>  	return tmp
>  }
>
> -// How long we wait for a connection to a backend.
> -const endpointDialTimeout = 5 * time.Second
> +// How long we wait for a connection to a backend in seconds
> +var endpointDialTimeout = []time.Duration{1, 2, 4, 8}

I'm really sorry, I should have noticed this before-- can you either make
this an []int, or put the x*time.Second up here? It sort of breaks the
Duration concept to multiply a duration by a duration, like what happens
down on line 89.

—
Reply to this email directly or view it on GitHub
<https://github.com/GoogleCloudPlatform/kubernetes/pull/2281/files#r20266395>
.