istio.io/istio@v0.0.0-20240520182934-d79c90f27776/pilot/pkg/xds/testdata/benchmarks/knative-gateway.yaml (about)

     1  # Simulate the same configuration knative would generate from some basic KServices
     2  # Set up a Service associated with our proxy, which will run as 1.1.1.1 IP
     3  apiVersion: networking.istio.io/v1alpha3
     4  kind: ServiceEntry
     5  metadata:
     6    name: external
     7    namespace: istio-system
     8  spec:
     9    hosts:
    10    - istio-ingressgateway.istio-system.svc.cluster.local
    11    ports:
    12    - number: 80
    13      targetPort: 8080
    14      name: http
    15      protocol: HTTP
    16    resolution: STATIC
    17    endpoints:
    18    - address: 1.1.1.1
    19      labels:
    20        istio.io/benchmark: "true"
    21  ---
    22  apiVersion: networking.istio.io/v1alpha3
    23  kind: ServiceEntry
    24  metadata:
    25    name: internal
    26    namespace: istio-system
    27  spec:
    28    hosts:
    29    - knative-local-gateway.istio-system.svc.cluster.local
    30    ports:
    31    - number: 80
    32      targetPort: 8081
    33      name: http
    34      protocol: HTTP
    35    resolution: STATIC
    36    endpoints:
    37    - address: 1.1.1.1
    38      labels:
    39        istio.io/benchmark: "true"
    40  ---
    41  apiVersion: networking.istio.io/v1alpha3
    42  kind: Gateway
    43  metadata:
    44    name: knative-ingress-gateway
    45    namespace: knative-serving
    46  spec:
    47    selector:
    48      istio.io/benchmark: "true"
    49    servers:
    50    - hosts:
    51      - '*'
    52      port:
    53        name: http
    54        number: 80
    55        protocol: HTTP
    56  ---
    57  apiVersion: networking.istio.io/v1alpha3
    58  kind: Gateway
    59  metadata:
    60    name: knative-local-gateway
    61    namespace: knative-serving
    62  spec:
    63    selector:
    64      istio.io/benchmark: "true"
    65    servers:
    66    - hosts:
    67      - '*'
    68      port:
    69        name: http
    70        number: 8081
    71        protocol: HTTP
    72  ---
    73  {{- range $i := until .Services }}
    74  apiVersion: networking.istio.io/v1alpha3
    75  kind: VirtualService
    76  metadata:
    77    name: hello-ingress-{{$i}}
    78    namespace: default
    79  spec:
    80    gateways:
    81    - knative-serving/knative-ingress-gateway
    82    - knative-serving/knative-local-gateway
    83    hosts:
    84    - hello.default
    85    - hello.default.external.domain
    86    - hello.default.svc
    87    - hello.default.svc.cluster.local
    88    http:
    89    - headers:
    90        request:
    91          set:
    92            K-Network-Hash: 0647dfaebda7111f09cd1ee30dfb4cbdf540bcd47575c5f948106757b7110384
    93      match:
    94      - authority:
    95          prefix: hello.default
    96        gateways:
    97        - knative-serving/knative-local-gateway
    98        headers:
    99          K-Network-Hash:
   100            exact: override
   101      route:
   102      - destination:
   103          host: hello-{{$i}}.default.svc.cluster.local
   104          port:
   105            number: 80
   106        headers:
   107          request:
   108            set:
   109              Knative-Serving-Namespace: default
   110              Knative-Serving-Revision: hello-{{$i}}
   111        weight: 100
   112    - match:
   113      - authority:
   114          prefix: hello.default
   115        gateways:
   116        - knative-serving/knative-local-gateway
   117      route:
   118      - destination:
   119          host: hello-{{$i}}.default.svc.cluster.local
   120          port:
   121            number: 80
   122        headers:
   123          request:
   124            set:
   125              Knative-Serving-Namespace: default
   126              Knative-Serving-Revision: hello-{{$i}}
   127        weight: 100
   128    - headers:
   129        request:
   130          set:
   131            K-Network-Hash: 0647dfaebda7111f09cd1ee30dfb4cbdf540bcd47575c5f948106757b7110384
   132      match:
   133      - authority:
   134          prefix: hello.default.external.domain
   135        gateways:
   136        - knative-serving/knative-ingress-gateway
   137        headers:
   138          K-Network-Hash:
   139            exact: override
   140      route:
   141      - destination:
   142          host: hello-{{$i}}.default.svc.cluster.local
   143          port:
   144            number: 80
   145        headers:
   146          request:
   147            set:
   148              Knative-Serving-Namespace: default
   149              Knative-Serving-Revision: hello-{{$i}}
   150        weight: 100
   151    - match:
   152      - authority:
   153          prefix: hello.default.external.domain
   154        gateways:
   155        - knative-serving/knative-ingress-gateway
   156      route:
   157      - destination:
   158          host: hello-{{$i}}.default.svc.cluster.local
   159          port:
   160            number: 80
   161        headers:
   162          request:
   163            set:
   164              Knative-Serving-Namespace: default
   165              Knative-Serving-Revision: hello-{{$i}}
   166        weight: 100
   167  ---
   168  apiVersion: networking.istio.io/v1alpha3
   169  kind: VirtualService
   170  metadata:
   171    name: hello-private-ingress-{{$i}}
   172    namespace: default
   173  spec:
   174    gateways:
   175    - knative-serving/knative-local-gateway
   176    hosts:
   177    - hello-private.default
   178    - hello-private.default.svc
   179    - hello-private.default.svc.cluster.local
   180    http:
   181    - headers:
   182        request:
   183          set:
   184            K-Network-Hash: 1235d057c5abf876f0b1fa3cb9e5d04730d98fb236badc4705aecc1159309b2b
   185      match:
   186      - authority:
   187          prefix: hello-private.default
   188        gateways:
   189        - knative-serving/knative-local-gateway
   190        headers:
   191          K-Network-Hash:
   192            exact: override
   193      route:
   194      - destination:
   195          host: hello-private-{{$i}}.default.svc.cluster.local
   196          port:
   197            number: 80
   198        headers:
   199          request:
   200            set:
   201              Knative-Serving-Namespace: default
   202              Knative-Serving-Revision: hello-private-{{$i}}
   203        weight: 100
   204    - match:
   205      - authority:
   206          prefix: hello-private.default
   207        gateways:
   208        - knative-serving/knative-local-gateway
   209      route:
   210      - destination:
   211          host: hello-private-{{$i}}.default.svc.cluster.local
   212          port:
   213            number: 80
   214        headers:
   215          request:
   216            set:
   217              Knative-Serving-Namespace: default
   218              Knative-Serving-Revision: hello-private-{{$i}}
   219        weight: 100
   220  {{- end }}