1. Install envoy gateway helm install eg \ oci://docker.io/envoyproxy/gateway-helm \ --version v1.8.2 \ --namespace envoy-gateway-system \ --create-namespace 2. Wait for the controller to be up kubectl wait \ --namespace envoy-gateway-system \ --for=condition=Available \ deployment/envoy-gateway \ --timeout=5m 3. Check CRD exists kubectl get crd | grep gateway 4. Find out the GatewayClass kubectl get gatewayclass 4a. if it doesn't exists. create it. apiVersion: gateway.networking.k8s.io/v1 kind: GatewayClass metadata: name: eg spec: controllerName: gateway.envoyproxy.io/gatewayclass-controller 5. Create the Gateway. create the file and apply it. apiVersion: gateway.networking.k8s.io/v1 kind: Gateway metadata: name: abc-gateway namespace: testing spec: gatewayClassName: eg listeners: - name: http protocol: HTTP port: 80 # Only HTTPRoutes in the same namespace may attach. allowedRoutes: namespaces: from: NAMESPACE 6. Check kubectl get gateway abc-gateway kubectl describe gateway abc-gateway Make sure Accepted and Programmed is true 7. Create HTTPRoute.yaml and apply it. apiVersion: gateway.networking.k8s.io/v1 kind: HTTPRoute metadata: name: abc-route namespace: testing spec: parentRefs: - name: abc-gateway sectionName: http hostnames: - abc.def.com rules: - matches: - path: type: PathPrefix value: / backendRefs: - name: abc port: 12345 8. Check kubectl get httproute kubectl describe httproute abc-route Make sure Accepted and ResolvedRefs are true