YETI
GithubDemo
1.0.0
1.0.0
  • YETI
  • Features
  • Getting Started
    • Why
    • Installation
    • Project Layout
    • NX commands
    • Playbook
    • NestJS Playbook
    • Scaffolding
  • Concepts
    • Introduction
    • Monorepo
    • DDD
    • Clean Architecture
  • Advanced
    • Content Management
    • Protobuf Tools
    • Protoc
    • Envoy
    • Style Guild
    • Angular Universal
    • Firebase
  • Modules
    • Apps
      • WebApp
      • Api
    • Libs
      • Admin
      • Blog
      • Core
      • Dashboard
      • Gen
      • Home
      • Not Found
      • Shared
  • GitOps
    • Build
    • Code Quality
    • API Docs
    • Release
    • CICD
  • DevOps
    • Database
    • Kubernetes
    • Deploy
  • Recipes
    • Authentication
    • Caching
    • Component Events from NGXS
    • Debouncing Actions
    • Dynamic Plugins
    • Immutability Helpers
    • Style Guide
    • Unit Testing
  • Community
    • Resources
    • Contributors
    • Contributing
  • FAQ
    • Yeti
    • Angular
    • GitBook
    • Awesome Links
  • Change Log
Powered by GitBook
On this page
  • Configuration
  • Start
  • Test
  • Reference

Was this helpful?

  1. Advanced

Envoy

Configuration

Envoy can be configured dynamically in real time without any downtime.

  • Listener discovery service  —  configures on what ports envoy listens on, and the action to take on the incoming connections.

  • Cluster discovery service  —  configures the upstream clusters. Envoy will route incoming connections/requests to these clusters.

  • Route discovery service  —  configures L7 routes for incoming requests.

  • Endpoint discovery service  —  allows envoy to dynamically discover cluster membership and health information.

  • Secret discovery service  —  allows envoy to discover ssl secrets. This is used to configure ssl secrets independently of the listener, and allows to provide ssl secrets from a local node, instead of a centralized control plane.

Best Practice: Here we are using partitioned file-based dynamic configuration.

Start

# minikube mount /Users/schintha/Developer/Work:/Work
# mount '/Work/SPA/yeti/envoy.yaml:/etc/envoy/envoy.yaml'
docker-compose up envoy

# (or) start standalone envoy container
docker run -it --rm --name envoy2 \
-p 9901:9901 -p 9090:9090 -p 9444:9443  \
-v `pwd`/config/base/envoy/config/:/etc/envoy:ro \
-v `pwd`/config/certs/:/etc/certs:ro \
envoyproxy/envoy-alpine:v1.14.1
# ssh if needed
docker exec -it envoy /bin/bash

Test

 curl '<http://localhost:9090/greetersrv/Greeter.Hello'> \
 -H 'Content-Type: application/grpc-web+proto' \
 -H 'X-Grpc-Web: 1' \
 -H 'custom-header-1: value1' \
 -H 'Accept: */*' \
 -H 'Connection: keep-alive' \
 --data-binary $'\x00\x00\x00\x00\x05\n\x03abc' --compressed

 curl '<http://localhost:9090/greetersrv/Greeter.Hello'> \
 -H 'Content-Type: application/json' \
 -d '{
    "name": "sumo"
   }'

curl '<http://localhost:9090/yeti.EchoService/Echo'> \
 -H 'Content-Type: application/grpc-web+proto' \
 -H 'X-Grpc-Web: 1' \
 -H 'custom-header-1: value1' \
 -H 'Accept: */*' \
 -H 'Connection: keep-alive' \
 --data-binary $'\x00\x00\x00\x00\x05\n\x03abc' --compressed

curl '<http://localhost:9090/yeti.EchoService/Echo'> \
-H 'Accept: application/grpc-web-text' \
-H 'Content-Type: application/grpc-web-text' \
-H 'X-Grpc-Web: 1' \
-H 'Connection: keep-alive' \
-H 'Accept-Encoding: gzip, deflate, br' \
-d '{
  "message": "sumo"
  }'

curl '<http://localhost:8080/travelbob.blogs.BlogsAPI/GetAllBlogs'> \
-H 'Accept: application/grpc-web-text' \
-H 'Content-Type: application/grpc-web-text' \
-H 'X-Grpc-Web: 1' \
-H 'Connection: keep-alive' \
-H 'Accept-Encoding: gzip, deflate, br' \
--data-binary 'AAAAAAA=' --compressed

Reference

PreviousProtocNextStyle Guild

Last updated 4 years ago

Was this helpful?

admin

http://localhost:9901/
https://github.com/jrockway/jrock.us/blob/master/ingress/envoy.yaml
https://github.com/jrockway/jrock.us/blob/master/ingress/envoy.yaml
https://blog.turbinelabs.io/setting-up-ssl-with-envoy-f7c5aa06a5ce
How To Write Modern React App Using gRPC And Envoy
angular-nest-grpc
Using gRPC with NestJS and Angular
Using Envoy Proxy to load-balance gRPC services on GKE
https://cloud.google.com/solutions/exposing-grpc-services-on-gke-using-envoy-proxy