diff --git a/samples/KubernetesIngress.Sample/README.md b/samples/KubernetesIngress.Sample/README.md index 416505bca..7076d5947 100644 --- a/samples/KubernetesIngress.Sample/README.md +++ b/samples/KubernetesIngress.Sample/README.md @@ -93,18 +93,23 @@ The table below lists the available annotations. |yarp.ingress.kubernetes.io/output-cache-policy|string| |yarp.ingress.kubernetes.io/backend-protocol|string| |yarp.ingress.kubernetes.io/cors-policy|string| -|yarp.ingress.kubernetes.io/health-check|[ActivateHealthCheckConfig](https://learn.microsoft.com/dotnet/api/yarp.reverseproxy.configuration.activehealthcheckconfig)| -|yarp.ingress.kubernetes.io/http-client|[HttpClientConfig](https://learn.microsoft.com/dotnet/api/yarp.reverseproxy.configuration.httpclientconfig)| -|yarp.ingress.kubernetes.io/http-request|[ForwarderRequestConfig](https://learn.microsoft.com/en-us/dotnet/api/yarp.reverseproxy.forwarder.forwarderrequestconfig)| -|yarp.ingress.kubernetes.io/load-balancing|string| +|yarp.ingress.kubernetes.io/health-check [\*](#cluster-level-annotations)|[ActivateHealthCheckConfig](https://learn.microsoft.com/dotnet/api/yarp.reverseproxy.configuration.activehealthcheckconfig)| +|yarp.ingress.kubernetes.io/http-client [\*](#cluster-level-annotations)|[HttpClientConfig](https://learn.microsoft.com/dotnet/api/yarp.reverseproxy.configuration.httpclientconfig)| +|yarp.ingress.kubernetes.io/http-request [\*](#cluster-level-annotations)|[ForwarderRequestConfig](https://learn.microsoft.com/en-us/dotnet/api/yarp.reverseproxy.forwarder.forwarderrequestconfig)| +|yarp.ingress.kubernetes.io/load-balancing [\*](#cluster-level-annotations)|string| |yarp.ingress.kubernetes.io/route-metadata|Dictionary<string, string>| -|yarp.ingress.kubernetes.io/session-affinity|[SessionAffinityConfig](https://learn.microsoft.com/dotnet/api/yarp.reverseproxy.configuration.sessionaffinityconfig)| +|yarp.ingress.kubernetes.io/session-affinity [\*](#cluster-level-annotations)|[SessionAffinityConfig](https://learn.microsoft.com/dotnet/api/yarp.reverseproxy.configuration.sessionaffinityconfig)| |yarp.ingress.kubernetes.io/transforms|List<Dictionary<string, string>>| |yarp.ingress.kubernetes.io/route-headers|List<[RouteHeader](https://learn.microsoft.com/dotnet/api/yarp.reverseproxy.configuration.routeheader)>| |yarp.ingress.kubernetes.io/route-queryparameters|List<[RouteQueryParameter](https://learn.microsoft.com/dotnet/api/yarp.reverseproxy.configuration.routequeryparameter)>| |yarp.ingress.kubernetes.io/route-order|int| |yarp.ingress.kubernetes.io/route-methods|List<string>| +#### Cluster-level annotations + +> [!NOTE] +> Annotations marked with **\*** configure the YARP cluster, not the route. A cluster is identified by backend service name, namespace, and port. Multiple ingress rules targeting the same backend share the cluster, so conflicting values result in non-deterministic behavior. Ensure consistent values across all ingress rules for the same backend. + #### Authorization Policy See https://learn.microsoft.com/aspnet/core/fundamentals/servers/yarp/authn-authz for a list of available policies, or how to add your own custom policies.