Skip to content

cmwylie19/grpc-stream-test

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

gRPC Tests

This repo contains a gRPC application for testing with Envoy. The gRPC Server streaming endpoint sends one task into the stream per second to test timeout and keepAlive configurations.

Solo.io

Tests

  • ✔ Unary RPC
  • ✔️ Server-Streaming RPC
  • ✔️ Stream Interceptor
  • ✔️ Unary Interceptor

Gloo Edge

Deploy grpc-tests app

kubectl apply -f k8s/grpc-tests.yaml

Create a virtual service in Gloo Edge

kubectl apply -f k8s/vs-grpc-test.yaml

Apply access logging configuration to the gateway/gateway-proxy for logs (Optional)
(I am testing on AWS, if you are using GKE, set useProxyProto: false on line 35)

kubectl apply -f k8s/gateway-gateway-proxy.yaml

Enable Gloo Edge Function Discovery Service

kubectl label upstream -n gloo-system default-grpc-tests-8080 discovery.solo.io/function_discovery=enabled

kubectl get upstream -n gloo-system default-grpc-tests-8080 -o yaml

Enumerate the available grpc services

grpcurl -plaintext $(glooctl proxy address --port http) list

Describe gRPC Services

grpcurl -plaintext $(glooctl proxy address --port http) describe todo.Todo

Create a single task

grpcurl -plaintext -d '{"name":"Solo Test"}' $(glooctl proxy address --port http) todo.Todo/CreateTask

Create multiple tasks (Do this to test grpc server streaming endpoint)
Click link 👆 to see create tasks.

GetTasks (Unary RPC)

grpcurl -plaintext $(glooctl proxy address --port http) todo.Todo/GetTasks

GetTasks (server streaming RPC)

grpcurl -plaintext  $(glooctl proxy address --port http) todo.Todo/GetTasksStream  

Get Access Logs

kubectl logs -f deploy/gateway-proxy -n gloo-system | grep '^{' | jq

Get app logs

kubectl logs -f deploy/grpc-tests
Gloo Edge CreateTask
grpcurl -plaintext -d '{"name":"test-1"}' $(glooctl proxy address --port http) todo.Todo/CreateTask

grpcurl -plaintext -d '{"name":"test-2"}' $(glooctl proxy address --port http) todo.Todo/CreateTask

grpcurl -plaintext -d '{"name":"test-3"}' $(glooctl proxy address --port http) todo.Todo/CreateTask

grpcurl -plaintext -d '{"name":"test-4"}' $(glooctl proxy address --port http) todo.Todo/CreateTask

grpcurl -plaintext -d '{"name":"test-5"}' $(glooctl proxy address --port http) todo.Todo/CreateTask

grpcurl -plaintext -d '{"name":"test-6"}' $(glooctl proxy address --port http) todo.Todo/CreateTask

grpcurl -plaintext -d '{"name":"test-7"}' $(glooctl proxy address --port http) todo.Todo/CreateTask

grpcurl -plaintext -d '{"name":"test-8"}' $(glooctl proxy address --port http) todo.Todo/CreateTask

grpcurl -plaintext -d '{"name":"test-9"}' $(glooctl proxy address --port http) todo.Todo/CreateTask

grpcurl -plaintext -d '{"name":"test-10"}' $(glooctl proxy address --port http) todo.Todo/CreateTask

grpcurl -plaintext -d '{"name":"test-11"}' $(glooctl proxy address --port http) todo.Todo/CreateTask

grpcurl -plaintext -d '{"name":"test-12"}' $(glooctl proxy address --port http) todo.Todo/CreateTask

grpcurl -plaintext -d '{"name":"test-13"}' $(glooctl proxy address --port http) todo.Todo/CreateTask

grpcurl -plaintext -d '{"name":"test-14"}' $(glooctl proxy address --port http) todo.Todo/CreateTask

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published