anchor.diff:  ====
   
   
  -[[route-specific-timeouts]]
  -== Route-specific Timeouts
  -
  -By default, a server-side timeout is set across all routes. It is possible to
  -change that timeout using an annotation in the route configuration.
  +[[route-specific-annotations]]
  +== Route-specific Annotations
  +
  +Using environment variables as defined in xref:env-variables[Configuration Parameters],
  +a router can set the default options for all the routes it exposes. An individual route can
  +override some of these defaults by providing specific configuration in its annotations.
  +
  +
  +*Route Annotations*
  +
  +For all the items outlined in this section, you can set annotations on the
  +*route definition* for the route to alter its configuration
  +
  +.Route Annotations
  +[cols="3*", options="header"]
  +|===
  +|Variable | Description | Environment Variable used as default
  +|`*haproxy.router.openshift.io/balance*`| Sets the load-balancing algorithm. Available options are `source`, `roundrobin`, or `leastconn`. | `*ROUTER_TCP_BALANCE_SCHEME*` for passthrough routes overwise `*ROUTER_LOAD_BALANCE_ALGORITHM*`.
  +|`*haproxy.router.openshift.io/disable_cookies*`| Disables the use of cookies to track related connections. If set to `*true*` the balance algorithm is used to choose which back-end serves connections for each incoming HTTP request. | 
  +|`*haproxy.router.openshift.io/rate-limit-connections*`| Setting to `*true*` enables rate limiting functionality. |
  +|`*haproxy.router.openshift.io/rate-limit-connections.concurrent-tcp*`| Limits the number of concurrent TCP connections shared by an IP address. |
  +|`*haproxy.router.openshift.io/rate-limit-connections.rate-http*`| Limits the rate at which an IP address can make HTTP requests. |
  +|`*haproxy.router.openshift.io/rate-limit-connections.rate-tcp*`| Limits the rate at which an IP address can make TCP connections. |
  +|`*haproxy.router.openshift.io/timeout*` | Sets a server-side timeout. | `*ROUTER_DEFAULT_SERVER_TIMEOUT*`
  +|`*router.openshift.io/haproxy.health.check.interval*`| Sets the interval for the back-end health checks. | `*ROUTER_BACKEND_CHECK_INTERVAL*`
  +|===
   
   
   .A Route Setting Custom Timeout
  
positive.code: |`*ROUTER_ENABLE_COMPRESSION*`| false | If `true`, compress responses when possible.
  |`*ROUTER_LOG_LEVEL*` | warning | The log level to send to the syslog server.
  |`*ROUTER_OVERRIDE_HOSTNAME*`|  | If set, override the spec.host value for a route with the template in ROUTER_SUBDOMAIN.
  |`*ROUTER_SERVICE_HTTPS_PORT*` | 443 | Port to listen for https requests.
  |`*ROUTER_SERVICE_HTTP_PORT*` | 80 | Port to listen for http requests.
  |`*ROUTER_SERVICE_NAME*` | public | The name that the router will identify itself with in route statuses.
  |`*ROUTER_SERVICE_NAMESPACE*` |  | The namespace the router will identify itself with in route statuses.  Required if `ROUTER_SERVICE_NAME` is used.
  |`*ROUTER_SERVICE_NO_SNI_PORT*` | 10443 | Internal port for some front-end to back-end communication (see note below).
  
negative.code: |`*ROUTER_SUBDOMAIN*`|  | The template that should be used to generate the hostname for a route without spec.host (e.g. `${name}-${namespace}.myapps.mycompany.com`).
  |`*ROUTER_SYSLOG_ADDRESS*` |  | Address to send log messages. Disabled if empty.
  |`*ROUTER_TCP_BALANCE_SCHEME*` | source | Load-balancing strategy for multiple endpoints for pass-through routes. Available options are `source`, `roundrobin`, or `leastconn`.
  |`*ROUTER_LOAD_BALANCE_ALGORITHM*` | leastconn | Load-balanceing strategy routes with multiple endpoints. Available options are `source`, `roundrobin`, or `leastconn`.
  |`*ROUTE_FIELDS*` |  | A field selector to apply to routes to watch, empty means all.
  |`*ROUTE_LABELS*` |  | A label selector to apply to the routes to watch, empty means all.
  |`*STATS_PASSWORD*` |  | The password needed to access router stats (if the router implementation supports it).
  