Timeouts on routes and ingress

Looks like openshift requires a timeout on the route. Maybe also the ingress.

I increaaed the action timeout to 5 minutes but looks like any requests always times out in 1 minute.

It is a problem in the openshift route

We should add the appropriate configuration in the operator.

Nuvolaris operators currently exposes OW api as

  • route on openshift
  • traefik ingress on K3s
  • nginx ingress on all the other supported platforms

So we need to take into account the different deployment scenarios to properly set an OW api timeout

Openshift route
it possible to use the annotation haproxy.router.openshift.io/timeout=2s taking into account that supported time units are microseconds (us), milliseconds (ms), seconds (s), minutes (m), hours (h), or days (d).

Nginx ingress
these annotations can be use to control the timeout

  • nginx.ingress.kubernetes.io/proxy-connect-timeout
  • nginx.ingress.kubernetes.io/proxy-send-timeout
  • nginx.ingress.kubernetes.io/proxy-read-timeout
    All timeout values are unitless and in seconds

Traefik ingress
these annotations can be used
traefik.ingress.kubernetes.io/transport.respondingTimeouts.readTimeout
traefik.ingress.kubernetes.io/transport.respondingTimeouts.writeTimeout
traefik.ingress.kubernetes.io/transport.respondingTimeouts.idleTimeout

if omitted they default to 0 which means no timeouts is setโ€ฆ

There is the need to identify with parameters needs to be used to configure the timeout and find a common pattern to speficy the timeouts units, as nginx supports only seconds and openshit/traefik gives the possibility to specify different formats

The most common pattern seems to be to use seconds as time units for the timeouts. If we are going to use the openwhisk action max allowed timeout we need to use a value in seconds or convert the given input in seconds.