All Projects → monzo → Envoy Preflight

monzo / Envoy Preflight

Licence: mit
A wrapper for applications to help with running envoy as a sidecar

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to Envoy Preflight

katacoda-scenarios
Katacoda Scenarios for Envoy Proxy
Stars: ✭ 26 (-71.43%)
Mutual labels:  envoy
Envoy Mobile
Client networking libraries based on the Envoy project
Stars: ✭ 430 (+372.53%)
Mutual labels:  envoy
Istio Tutorial
Istio Tutorial for https://dn.dev/master
Stars: ✭ 1,025 (+1026.37%)
Mutual labels:  envoy
consul-envoy
Consul to Envoy API listener
Stars: ✭ 35 (-61.54%)
Mutual labels:  envoy
Gloo
The Feature-rich, Kubernetes-native, Next-Generation API Gateway Built on Envoy
Stars: ✭ 3,219 (+3437.36%)
Mutual labels:  envoy
Gimbal
Gimbal is an ingress load balancing platform capable of routing traffic to multiple Kubernetes and OpenStack clusters. Built by Heptio in partnership with Actapio.
Stars: ✭ 637 (+600%)
Mutual labels:  envoy
ocaml-grpc-envoy
Using OCaml + gRPC via Envoy
Stars: ✭ 41 (-54.95%)
Mutual labels:  envoy
Envoy Control
Envoy Control is a platform-agnostic, production-ready Control Plane for Service Mesh based on Envoy Proxy.
Stars: ✭ 66 (-27.47%)
Mutual labels:  envoy
Ambassador
open source Kubernetes-native API gateway for microservices built on the Envoy Proxy
Stars: ✭ 3,583 (+3837.36%)
Mutual labels:  envoy
Grpc Gke Nlb Tutorial
gRPC load-balancing on GKE using Envoy
Stars: ✭ 42 (-53.85%)
Mutual labels:  envoy
contour-authserver
An Envoy-compatible authorization server.
Stars: ✭ 23 (-74.73%)
Mutual labels:  envoy
Microservices Traffic Management Using Istio
Istio is an open platform that provides a uniform way to connect, manage, and secure microservices. In this code we show how we can enable your microservices with advanced traffic management, routing and tracing capabilities leveraging Istio
Stars: ✭ 257 (+182.42%)
Mutual labels:  envoy
Istio
Connect, secure, control, and observe services.
Stars: ✭ 28,970 (+31735.16%)
Mutual labels:  envoy
meshem
A simple implementation for Envoy's control plane
Stars: ✭ 22 (-75.82%)
Mutual labels:  envoy
Learn Istio
⛵️ Istio resources 🕸
Stars: ✭ 1,025 (+1026.37%)
Mutual labels:  envoy
ego-demo
Envoy filters in Go
Stars: ✭ 34 (-62.64%)
Mutual labels:  envoy
Meshery
Meshery, the service mesh management plane
Stars: ✭ 608 (+568.13%)
Mutual labels:  envoy
Envoy Perf
Envoy performance testing
Stars: ✭ 76 (-16.48%)
Mutual labels:  envoy
Proxy Wasm Cpp Sdk
WebAssembly for Proxies (C++ SDK)
Stars: ✭ 55 (-39.56%)
Mutual labels:  envoy
Kumonos
Moved to https://github.com/cookpad/itacho
Stars: ✭ 29 (-68.13%)
Mutual labels:  envoy

envoy-preflight

envoy-preflight is a simple wrapper application which makes it easier to run applications which depend on envoy as a sidecar container for outside network access. It ensures that your application doesn't start until envoy is ready, and that envoy shuts down when the application exits. It is best used as a prefix to your existing Docker entrypoint. It executes any argument passed to it, doing a simple path lookup:

envoy-preflight echo "hi"
envoy-preflight /bin/ls -a

The envoy-preflight wrapper won't do anything special unless you provide at least the ENVOY_ADMIN_API environment variable. This makes, e.g., local development of your app easy.

If you do provide the ENVOY_ADMIN_API environment variable, envoy-preflight will poll the proxy indefinitely with backoff, waiting for Envoy to report itself as live. This implies it has loaded cluster configuration (for example from an ADS server). Only then will it execute the command provided as an argument, so that your app can immediately start accessing the outside network.

All signals are passed to the underlying application. Be warned that SIGKILL cannot be passed, so this can leave behind a orphaned process.

When the application exits, as long as it does so with exit code 0, envoy-preflight will instruct envoy to shut down immediately.

Environment variables

Variable Purpose
ENVOY_ADMIN_API This is the path to envoy's administration interface, in the format http://127.0.0.1:9010. If provided, envoy-preflight will poll this url at /server_info waiting for envoy to report as LIVE. If provided and local (127.0.0.1 or localhost), then envoy will be instructed to shut down if the application exits cleanly.
ENVOY_KILL_API This is the endpoint of the POST command to kill envoy, which defaults to $ENVOY_ADMIN_API/quitquitquit, but you can provide any value in format http://127.0.0.1:9010/quitquitquit. This can be used to support istio by providing the pilot-agent port.
NEVER_KILL_ENVOY If provided and set to true, envoy-preflight will not instruct envoy to exit under any circumstances.
ALWAYS_KILL_ENVOY If provided and set to true, envoy-preflight will instruct envoy to exit, even if the main application exits with a nonzero exit code.
START_WITHOUT_ENVOY If provided and set to true, envoy-preflight will not wait for envoy to be LIVE before starting the main application. However, it will still instruct envoy to exit.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].