Skip to content

Latest commit

 

History

History
220 lines (180 loc) · 10.5 KB

File metadata and controls

220 lines (180 loc) · 10.5 KB

Virtual Gateway Use Cases

Unless otherwise specified, these scenarios will assume the typical 3-cluster setup (mgmt, cluster1, cluster2) so that it will work in any environment. This also assumes the following pre-requisites:

  • Gloo Mesh Management Plane is installed
  • Remote Clusters are registered
  • Istio is installed with at least version 1.10

If there are any deviations from the above, then a README should be supplied along with scripts to take care of the changes.

Setup

A majority of the tests will utilize this simple setup of a frontend application running in the app namespace.

Single Cluster

  • The frontend application can be reached via
http://frontend.app.svc.cluster.local:8080

Multi Cluster

This is the multi-cluster setup we will be utilizing.

Gloo Mesh Enterprise 1.x

1. Ingress Gateway Scenarios

2. Connection Handling

3 Virtual Hosts

4 Route matching

5 Routing to Destination

6 Redirects

7 Direct Response

8 Routing delegation

9 Traffic Shifting

10 Fault Injection

11 Handling timeouts

12 CORS

13 Mirroring Traffic

  • 13.1 Send percentage of traffic to mirrored destination (kubeService only)

14 Outlier Detection

15 Istio mTLS Settings

16 Cross-Site Request Forgery (TrafficPolicy)

17 Rate Limiting (TrafficPolicy)

  • 17.1 Using raw Rate Limit definition
  • 17.2 Rate Limit on source cluster (TODO does this make sense)
  • 17.3 Rate Limit on destination cluster (TODO use istio cluster name?)
  • 17.4 Rate Limit on request headers
  • 17.5 Rate Limit on remote address
  • 17.6 Rate Limit on generic key
  • 17.7 Rate Limit on the existence of a requst header
  • 17.8 Rate Limit on metadata
  • 17.9 Using separate Rate Limit config

18 External Auth (TrafficPolicy)

  • 18.1 Using a custom auth server
  • 18.2 OIDC with AuthConfig
  • 18.3 Using an API token

19 Labeled routes (TrafficPolicy)

  • 19.1 Specifying route labels for a TrafficPolicy

20 Rate Limiting (RouteTable)

  • 20.1 Using raw Rate Limit definition
  • 20.2 Rate Limit on source cluster
  • 20.3 Rate Limit on destination cluster
  • 20.4 Rate Limit on request headers
  • 20.5 Rate Limit on remote address
  • 20.6 Rate Limit on generic key
  • 20.7 Rate Limit on the existence of a requst header
  • 20.8 Rate Limit on metadata
  • 20.9 Using separate Rate Limit config

21 External Auth (RouteTable)

  • 21.1 Using a custom auth server
  • 21.2 OIDC with AuthConfig
  • 21.3 Using an API token

22 Cross-Site Request Forgery (RouteTable)

  • 22.1 Setting CSRF Policy
  • 22.2 Setting CSRF Policy

23 TCP Destinations

  • 23.1 Configuring a static TCP Destination
  • 23.2 Configuring a virtual TCP Destination
  • 23.3 Configuring a kube TCP Destination
  • 23.4 Forwarding SNI
  • 23.5 Weighted routing

24 TCP Options

  • 24.1 Setting max connection attempts
  • 24.2 Setting idle timeout
  • 24.3 Using a TCP tunnel

25 Global Virtual Gateway options

  • 25.1 Setting a limit on connection buffers
  • 25.2 Setting the bind address