--- kind: GatewayClass apiVersion: networking.x-k8s.io/v1alpha1 metadata: name: my-gateway-class spec: controller: traefik.io/gateway-controller --- kind: Gateway apiVersion: networking.x-k8s.io/v1alpha1 metadata: name: my-gateway namespace: default spec: gatewayClassName: my-gateway-class listeners: # Use GatewayClass defaults for listener definition. - protocol: HTTP port: 80 routes: kind: HTTPRoute namespaces: from: Same selector: matchLabels: app: foo - protocol: HTTPS port: 443 tls: certificateRef: group: "core" kind: "Secret" name: "mysecret" routes: kind: HTTPRoute selector: matchLabels: app: foo - protocol: TCP port: 9000 routes: kind: TCPRoute namespaces: from: Same selector: matchLabels: app: footcp - protocol: TLS port: 9443 hostname: example.com tls: certificateRef: group: "core" kind: "Secret" name: "mysecret" routes: kind: TLSRoute namespaces: from: Same selector: matchLabels: app: footls --- kind: HTTPRoute apiVersion: networking.x-k8s.io/v1alpha1 metadata: name: http-app-1 namespace: default labels: app: foo spec: hostnames: - "foo.com" rules: - matches: - path: type: Exact value: /bar forwardTo: - serviceName: whoami port: 80 weight: 1 - matches: - path: type: Prefix value: /foo forwardTo: - backendRef: group: traefik.containo.us kind: TraefikService name: myservice@file weight: 1 port: 80 --- kind: TCPRoute apiVersion: networking.x-k8s.io/v1alpha1 metadata: name: tcp-app-1 namespace: default labels: app: footcp spec: rules: - forwardTo: - serviceName: whoamitcp port: 9000 weight: 1 --- kind: TLSRoute apiVersion: networking.x-k8s.io/v1alpha1 metadata: name: tls-app-1 namespace: default labels: app: footls spec: rules: - forwardTo: - serviceName: whoamitcp port: 9000 weight: 1