--- kind: GatewayClass apiVersion: networking.x-k8s.io/v1alpha1 metadata: name: my-gateway-class namespace: default spec: controller: traefik.io/gateway-controller --- kind: Gateway apiVersion: networking.x-k8s.io/v1alpha1 metadata: name: my-mixed-gateway namespace: default spec: gatewayClassName: my-gateway-class listeners: # Use GatewayClass defaults for listener definition. - protocol: HTTP port: 80 routes: kind: HTTPRoute selector: matchLabels: app: label-tls-app-1 - protocol: TCP port: 9000 routes: kind: TCPRoute selector: matchLabels: app: label-tls-app-1 - protocol: TLS port: 9443 tls: mode: Passthrough routes: kind: TLSRoute selector: matchLabels: app: label-http-app-1 --- kind: TLSRoute apiVersion: networking.x-k8s.io/v1alpha1 metadata: name: tls-app-1 namespace: default labels: app: label-tls-app-1 spec: rules: - forwardTo: - serviceName: whoamitcp port: 9000 weight: 1 --- kind: HTTPRoute apiVersion: networking.x-k8s.io/v1alpha1 metadata: name: http-app-1 namespace: default labels: app: label-http-app-1 spec: rules: - matches: - path: type: Exact value: /bar forwardTo: - serviceName: whoamitcp port: 80 weight: 1