Skip to content

Support for additional upstream use cases #7200

Open
@shaun-nx

Description

@shaun-nx

Overview

As a developer who manages an Ingress resource
I would like to have more control over my proxy settings
So that my applications can be more resilient, and highly available

Acceptance Criteria

  • Expose annotation to configure upstream_type to allow user to set either http or grpc as the type of upstream. Default must be http
  • Expose annotations to configure:
    • next-upstream
    • next-upstream-timeouts
    • next-upstream-tries
    • request-buffering
    • connection-timeout
    • send-timeout
    • read-timeout
  • Ensure, when these annotations are set, they will be set for all routes in the Ingress resource.

Engineering Context

In scenarios where upstream_type is set to http, the next-upstream annotation will set the proxy_next_upstream directive in NGINX

In scenarios where upstream_type is set to grpc, the next-upstream annotation will set the grpc_next_upstream directive in NGINX

NGINX Proxy Module: https://nginx.org/en/docs/http/ngx_http_proxy_module.html
NGINX GRPC Module: https://nginx.org/en/docs/http/ngx_http_grpc_module.html

This aligns with how the type settings works for VirtualServer.Upstream.Type
Image

References

Example of how we expose these kind of settings in VirtualServer today: https://docs.nginx.com/nginx-ingress-controller/configuration/virtualserver-and-virtualserverroute-resources/#upstream

Metadata

Metadata

Assignees

No one assigned

    Labels

    area/ingressIssues related to changes in `kind: Ingress`proposalAn issue that proposes a feature request

    Projects

    Status

    No status

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions