mirror of
https://github.com/alibaba/higress.git
synced 2026-05-24 04:37:25 +08:00
424 lines
9.3 KiB
YAML
424 lines
9.3 KiB
YAML
apiVersion: gateway.networking.k8s.io/v1beta1
|
|
kind: GatewayClass
|
|
metadata:
|
|
name: higress
|
|
spec:
|
|
controllerName: higress.io/gateway-controller
|
|
---
|
|
apiVersion: gateway.networking.k8s.io/v1beta1
|
|
kind: Gateway
|
|
metadata:
|
|
name: gateway
|
|
namespace: higress-system
|
|
spec:
|
|
addresses:
|
|
- value: higress-gateway
|
|
type: Hostname
|
|
gatewayClassName: higress
|
|
listeners:
|
|
- name: default
|
|
hostname: "*.domain.example"
|
|
port: 80
|
|
protocol: HTTP
|
|
allowedRoutes:
|
|
namespaces:
|
|
from: All
|
|
---
|
|
apiVersion: gateway.networking.k8s.io/v1beta1
|
|
kind: HTTPRoute
|
|
metadata:
|
|
name: http
|
|
namespace: default
|
|
spec:
|
|
parentRefs:
|
|
- name: gateway
|
|
namespace: higress-system
|
|
hostnames: ["first.domain.example", "another.domain.example"]
|
|
rules:
|
|
- matches:
|
|
- path:
|
|
type: PathPrefix
|
|
value: /get
|
|
headers:
|
|
- name: my-header
|
|
value: some-value
|
|
type: Exact
|
|
filters:
|
|
- type: RequestHeaderModifier
|
|
requestHeaderModifier:
|
|
add:
|
|
- name: my-added-header
|
|
value: added-value
|
|
remove: [my-removed-header]
|
|
- type: ResponseHeaderModifier
|
|
responseHeaderModifier:
|
|
add:
|
|
- name: my-added-resp-header
|
|
value: added-resp-value
|
|
remove: [my-removed-header]
|
|
backendRefs:
|
|
- name: httpbin
|
|
port: 80
|
|
---
|
|
apiVersion: gateway.networking.k8s.io/v1beta1
|
|
kind: HTTPRoute
|
|
metadata:
|
|
name: http2
|
|
namespace: default
|
|
spec:
|
|
parentRefs:
|
|
- name: gateway
|
|
namespace: higress-system
|
|
hostnames: ["second.domain.example"]
|
|
rules:
|
|
- matches:
|
|
- path:
|
|
type: PathPrefix
|
|
value: /second
|
|
backendRefs:
|
|
- name: httpbin-second
|
|
port: 80
|
|
- matches:
|
|
- path:
|
|
type: PathPrefix
|
|
value: /
|
|
backendRefs:
|
|
- name: httpbin-wildcard
|
|
port: 80
|
|
---
|
|
apiVersion: gateway.networking.k8s.io/v1beta1
|
|
kind: HTTPRoute
|
|
metadata:
|
|
name: redirect
|
|
namespace: default
|
|
spec:
|
|
parentRefs:
|
|
- name: gateway
|
|
namespace: higress-system
|
|
rules:
|
|
- filters:
|
|
- type: RequestRedirect
|
|
requestRedirect:
|
|
port: 8080
|
|
statusCode: 302
|
|
scheme: https
|
|
path:
|
|
type: ReplaceFullPath
|
|
replaceFullPath: /replace-full
|
|
---
|
|
apiVersion: gateway.networking.k8s.io/v1beta1
|
|
kind: HTTPRoute
|
|
metadata:
|
|
name: redirect-prefix-replace
|
|
namespace: default
|
|
spec:
|
|
parentRefs:
|
|
- name: gateway
|
|
namespace: higress-system
|
|
hostnames: ["redirect.domain.example"]
|
|
rules:
|
|
- matches:
|
|
- path:
|
|
type: PathPrefix
|
|
value: /original
|
|
filters:
|
|
- type: RequestRedirect
|
|
requestRedirect:
|
|
port: 8080
|
|
statusCode: 302
|
|
scheme: https
|
|
path:
|
|
type: ReplacePrefixMatch
|
|
replacePrefixMatch: /replacement
|
|
---
|
|
apiVersion: gateway.networking.k8s.io/v1beta1
|
|
kind: HTTPRoute
|
|
metadata:
|
|
name: rewrite
|
|
namespace: default
|
|
spec:
|
|
parentRefs:
|
|
- name: gateway
|
|
namespace: higress-system
|
|
rules:
|
|
- name: route1
|
|
matches:
|
|
- path:
|
|
type: PathPrefix
|
|
value: /prefix-original
|
|
filters:
|
|
- type: URLRewrite
|
|
urlRewrite:
|
|
hostname: "new.example.com"
|
|
path:
|
|
type: ReplacePrefixMatch
|
|
replacePrefixMatch: "/replacement"
|
|
backendRefs:
|
|
- name: httpbin
|
|
port: 80
|
|
- matches:
|
|
- path:
|
|
type: PathPrefix
|
|
value: /prefix-to-be-removed
|
|
filters:
|
|
- type: URLRewrite
|
|
urlRewrite:
|
|
path:
|
|
type: ReplacePrefixMatch
|
|
replacePrefixMatch: ""
|
|
backendRefs:
|
|
- name: httpbin
|
|
port: 80
|
|
- matches:
|
|
- path:
|
|
type: PathPrefix
|
|
value: /full-original
|
|
filters:
|
|
- type: URLRewrite
|
|
urlRewrite:
|
|
hostname: "new.example.com"
|
|
path:
|
|
type: ReplaceFullPath
|
|
replaceFullPath: "/replacement"
|
|
backendRefs:
|
|
- name: httpbin
|
|
port: 80
|
|
---
|
|
apiVersion: gateway.networking.k8s.io/v1beta1
|
|
kind: HTTPRoute
|
|
metadata:
|
|
name: mirror
|
|
namespace: default
|
|
spec:
|
|
parentRefs:
|
|
- name: gateway
|
|
namespace: higress-system
|
|
rules:
|
|
- filters:
|
|
- type: RequestMirror
|
|
requestMirror:
|
|
fraction:
|
|
numerator: 4
|
|
denominator: 8
|
|
backendRef:
|
|
name: httpbin-mirror
|
|
port: 80
|
|
- type: RequestMirror
|
|
requestMirror:
|
|
percent: 80
|
|
backendRef:
|
|
name: httpbin-second
|
|
port: 80
|
|
backendRefs:
|
|
- name: httpbin
|
|
port: 80
|
|
---
|
|
apiVersion: gateway.networking.k8s.io/v1beta1
|
|
kind: HTTPRoute
|
|
metadata:
|
|
name: http-not-selected
|
|
namespace: default
|
|
spec:
|
|
parentRefs:
|
|
- name: gateway
|
|
namespace: higress-system
|
|
hostnames: ["should.not.select"]
|
|
rules:
|
|
- matches:
|
|
- path:
|
|
type: PathPrefix
|
|
value: /get
|
|
backendRefs:
|
|
- name: httpbin-bad
|
|
port: 80
|
|
---
|
|
apiVersion: gateway.networking.k8s.io/v1beta1
|
|
kind: HTTPRoute
|
|
metadata:
|
|
name: http-timeout-request
|
|
namespace: default
|
|
spec:
|
|
parentRefs:
|
|
- name: gateway
|
|
namespace: higress-system
|
|
hostnames: ["timeout.domain.example"]
|
|
rules:
|
|
- matches:
|
|
- path:
|
|
type: PathPrefix
|
|
value: /get
|
|
backendRefs:
|
|
- name: httpbin
|
|
port: 80
|
|
timeouts:
|
|
request: 1ms
|
|
---
|
|
apiVersion: gateway.networking.k8s.io/v1beta1
|
|
kind: HTTPRoute
|
|
metadata:
|
|
name: http-timeout-backend-request
|
|
namespace: default
|
|
spec:
|
|
parentRefs:
|
|
- name: gateway
|
|
namespace: higress-system
|
|
hostnames: ["timeout-backend.domain.example"]
|
|
rules:
|
|
- matches:
|
|
- path:
|
|
type: PathPrefix
|
|
value: /get
|
|
backendRefs:
|
|
- name: httpbin
|
|
port: 80
|
|
timeouts:
|
|
request: 2ms
|
|
backendRequest: 1ms
|
|
---
|
|
apiVersion: gateway.networking.k8s.io/v1beta1
|
|
kind: HTTPRoute
|
|
metadata:
|
|
name: http-retry-request
|
|
namespace: default
|
|
spec:
|
|
parentRefs:
|
|
- name: gateway
|
|
namespace: higress-system
|
|
hostnames: ["retry.domain.example"]
|
|
rules:
|
|
- matches:
|
|
- path:
|
|
type: PathPrefix
|
|
value: /explicit
|
|
backendRefs:
|
|
- name: httpbin
|
|
port: 80
|
|
retry:
|
|
attempts: 3
|
|
backoff: 3ms
|
|
codes:
|
|
- 503
|
|
- 429
|
|
- matches:
|
|
- path:
|
|
type: PathPrefix
|
|
value: /empty
|
|
backendRefs:
|
|
- name: httpbin
|
|
port: 80
|
|
retry: {}
|
|
- matches:
|
|
- path:
|
|
type: PathPrefix
|
|
value: /disable
|
|
backendRefs:
|
|
- name: httpbin
|
|
port: 80
|
|
retry:
|
|
attempts: 0
|
|
---
|
|
apiVersion: gateway.networking.k8s.io/v1beta1
|
|
kind: HTTPRoute
|
|
metadata:
|
|
name: http-route-cors
|
|
namespace: default
|
|
spec:
|
|
hostnames:
|
|
- "cors.domain.example"
|
|
parentRefs:
|
|
- name: gateway
|
|
namespace: higress-system
|
|
rules:
|
|
- backendRefs:
|
|
- kind: Service
|
|
name: httpbin
|
|
port: 80
|
|
filters:
|
|
- cors:
|
|
allowCredentials: true
|
|
allowOrigins:
|
|
# - '*' # This will be allowed in the future, probably https://github.com/kubernetes-sigs/gateway-api/issues/3648#issuecomment-2735208553
|
|
# - '*.com'
|
|
- "https://example.com"
|
|
allowMethods:
|
|
- GET
|
|
- HEAD
|
|
- POST
|
|
allowHeaders:
|
|
- Accept
|
|
- Accept-Language
|
|
- Content-Language
|
|
- Content-Type
|
|
- Range
|
|
type: CORS
|
|
---
|
|
apiVersion: gateway.networking.k8s.io/v1beta1
|
|
kind: HTTPRoute
|
|
metadata:
|
|
name: multiple-inferencepool-backend-refs
|
|
namespace: default
|
|
spec:
|
|
parentRefs:
|
|
- name: gateway
|
|
namespace: higress-system
|
|
hostnames: ["infpool-multi.domain.example"]
|
|
rules:
|
|
- matches:
|
|
- path:
|
|
type: PathPrefix
|
|
value: /infpool
|
|
headers:
|
|
- name: my-header
|
|
value: some-value
|
|
type: Exact
|
|
backendRefs:
|
|
- name: infpool-gen
|
|
group: inference.networking.k8s.io
|
|
kind: InferencePool
|
|
port: 80
|
|
- matches:
|
|
- path:
|
|
type: PathPrefix
|
|
value: /infpool
|
|
headers:
|
|
- name: my-header
|
|
value: some-value-2
|
|
type: Exact
|
|
backendRefs:
|
|
- name: infpool-gen2
|
|
group: inference.networking.k8s.io
|
|
kind: InferencePool
|
|
port: 80
|
|
---
|
|
apiVersion: inference.networking.k8s.io/v1
|
|
kind: InferencePool
|
|
metadata:
|
|
name: infpool-gen
|
|
namespace: default
|
|
spec:
|
|
targetPorts:
|
|
- number: 8000
|
|
selector:
|
|
matchLabels:
|
|
app: vllm-llama3-8b-instruct
|
|
endpointPickerRef:
|
|
name: vllm-llama3-8b-instruct-epp
|
|
port:
|
|
number: 9002
|
|
---
|
|
apiVersion: inference.networking.k8s.io/v1
|
|
kind: InferencePool
|
|
metadata:
|
|
name: infpool-gen2
|
|
namespace: default
|
|
spec:
|
|
targetPorts:
|
|
- number: 8000
|
|
selector:
|
|
matchLabels:
|
|
app: vllm-llama3-8b-instruct
|
|
endpointPickerRef:
|
|
name: vllm-llama3-8b-instruct-epp
|
|
port:
|
|
number: 9002
|