---
kind: Namespace
apiVersion: v1
metadata:
  name: bar
  labels:
    foo: bar

---
kind: GatewayClass
apiVersion: gateway.networking.k8s.io/v1
metadata:
  name: my-gateway-class
spec:
  controllerName: traefik.io/gateway-controller

---
kind: Gateway
apiVersion: gateway.networking.k8s.io/v1
metadata:
  name: my-gateway
  namespace: default
spec:
  gatewayClassName: my-gateway-class
  listeners: # Use GatewayClass defaults for listener definition.
    - name: http
      protocol: HTTP
      port: 80
      allowedRoutes:
        namespaces:
          from: Selector
          selector:
            matchLabels:
              foo: bar

---
kind: HTTPRoute
apiVersion: gateway.networking.k8s.io/v1
metadata:
  name: http-app-default
  namespace: default
spec:
  parentRefs:
    - name: my-gateway
      kind: Gateway
      group: gateway.networking.k8s.io
  hostnames:
    - "foo.com"
  rules:
    - matches:
        - path:
            type: Exact
            value: /foo
      backendRefs:
        - name: whoami
          port: 80
          weight: 1
          kind: Service
          group: ""

---
kind: HTTPRoute
apiVersion: gateway.networking.k8s.io/v1
metadata:
  name: http-app-bar
  namespace: bar
spec:
  parentRefs:
    - name: my-gateway
      namespace: default
      kind: Gateway
      group: gateway.networking.k8s.io
  hostnames:
    - "bar.com"
  rules:
    - matches:
        - path:
            type: Exact
            value: /bar
      backendRefs:
        - name: whoami-bar
          port: 80
          weight: 1
          kind: Service
          group: ""
