I followed your example and changed the port name in foo-api-v1
service from http
to grpc
after reading https://github.com/istio/istio/issues/46976#issuecomment-1828176048. That made this
export INGRESS_HOST=$(kubectl get gateways.gateway.networking.k8s.io foo-gateway -ojsonpath='{.status.addresses[*].value}')
grpcurl -authority grpc.example.com -proto helloworld.proto -format text -d 'name: "Jimbo"' -plaintext $INGRESS_HOST:80 helloworld.Greeter/SayHello
work for me with this gateway:
kubectl apply -f - <<EOF
apiVersion: gateway.networking.k8s.io/v1beta1
kind: Gateway
metadata:
name: foo-gateway
spec:
gatewayClassName: istio
listeners:
- name: demo
hostname: "*.example.com"
port: 80
protocol: HTTP
allowedRoutes:
namespaces:
from: All
EOF