Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality. Learn more â
Top 15 Go envoy Projects
-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
-
kuma
đ» The multi-zone service mesh for containers, Kubernetes and VMs. Built with Envoy. CNCF Sandbox Project.
-
apiclarity
An API security tool to capture and analyze API traffic, test API endpoints, reconstruct Open API specification, and identify API security risks.Â
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives
-
kubevpn
KubeVPN offers a Cloud Native Dev Environment. Connect to kubernetes cluster network, you can access remote kubernetes cluster network via service name or Pod IP / Service IP. Intercept remote kubernetes cluster service inbound traffic to local PC with service mesh. You can run your k8s pod on local Docker container with same envăvolume and network
-
egress-operator
A Kubernetes operator to produce egress gateway Envoy pods and control access to them with network policies
-
proximal
WebAssembly dev environment for Envoy Proxy. Iterate on your HTTP/TCP middleware in seconds! (by apoxy-dev)
-
grpc-proxy
Proxy server built on envoy providing a REST gateway and the ability to translate gRPC-Web and/or Connect requests requests into regular gRPC requests. (by mirkolenz)
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives
Project mention: PART 1: Deploy modern applications on a production grade, local Kubernetes Cluster with Istio Service Mesh and Observability. | dev.to | 2024-05-28ISTIO_URL=https://github.com/istio/istio/releases/download/$ISTIO_VERSION/istio-$ISTIO_VERSION-linux-amd64.tar.gz (For Linux processor ARCH, change as needed)
The Argo CD community is discussing introducing delegated server-side field permissions. This feature would allow one application to modify components of another, easing the burden of managing shared resources like Ingress. However, it's still under debate, and alternative solutions may emerge. Other tools, like Contour, offer a different approach by treating each route as a separate custom resource, allowing applications to manage their routing independently.
// references: // https://github.com/tetratelabs/proxy-wasm-go-sdk/tree/main/examples // https://github.com/apache/apisix/blob/master/t/wasm/ package main import ( "github.com/tetratelabs/proxy-wasm-go-sdk/proxywasm" "github.com/tetratelabs/proxy-wasm-go-sdk/proxywasm/types" "github.com/valyala/fastjson" ) func main() { proxywasm.SetVMContext(&vmContext{}) } // each plugin has its own VMContext. // it is responsible for creating multiple PluginContexts for each route. type vmContext struct { types.DefaultVMContext } // each route has its own PluginContext. // it corresponds to one instance of the plugin. func (*vmContext) NewPluginContext(contextID uint32) types.PluginContext { return &pluginContext{} } type header struct { Name string Value string } type pluginContext struct { types.DefaultPluginContext Headers []header } func (ctx *pluginContext) OnPluginStart(pluginConfigurationSize int) types.OnPluginStartStatus { data, err := proxywasm.GetPluginConfiguration() if err != nil { proxywasm.LogErrorf("error reading plugin configuration: %v", err) return types.OnPluginStartStatusFailed } var p fastjson.Parser v, err := p.ParseBytes(data) if err != nil { proxywasm.LogErrorf("error decoding plugin configuration: %v", err) return types.OnPluginStartStatusFailed } headers := v.GetArray("headers") ctx.Headers = make([]header, len(headers)) for i, hdr := range headers { ctx.Headers[i] = header{ Name: string(hdr.GetStringBytes("name")), Value: string(hdr.GetStringBytes("value")), } } return types.OnPluginStartStatusOK } // each HTTP request to a route has its own HTTPContext func (ctx *pluginContext) NewHttpContext(contextID uint32) types.HttpContext { return &httpContext{parent: ctx} } type httpContext struct { types.DefaultHttpContext parent *pluginContext } func (ctx *httpContext) OnHttpResponseHeaders(numHeaders int, endOfStream bool) types.Action { plugin := ctx.parent for _, hdr := range plugin.Headers { proxywasm.ReplaceHttpResponseHeader(hdr.Name, hdr.Value) } return types.ActionContinue }
We'll install APIClarity into a Kubernetes cluster to test our API documentation. We're using a Kind cluster for demonstration purposes. Of course, if you have another Kubernetes cluster up and running elsewhere, all steps also work there.
I created a DevOps tools called kubevpn, by connecting to k8s network, we can ping podIP, curl service-name in k8s dns way. Intercept inbound traffic of workloads with service mesh. Welcome all to have a try, github: https://github.com/kubenetworks/kubevpn
Here is the GitHub repo: mirkolenz/grpc-proxy
Go envoy related posts
-
Connect to K8s network by using kubevpn
-
KubeVPN offers a Cloud-Native Dev Environment that seamlessly connects to your Kubernetes cluster network.
-
A "Tiny" APISIX Plugin
-
Serverless dev environment using WebAssembly
-
How to prevent import cycle error in this scenario
-
Gotta love Kuma, thank you kind stranger making it !
-
Switchboard: A Kubernetes Controller to Simplify Managing Traefik IngressRoutes
-
A note from our sponsor - InfluxDB
www.influxdata.com | 3 Jun 2024
Index
What are some of the best open-source envoy projects in Go? This list will help you:
Project | Stars | |
---|---|---|
1 | istio | 35,147 |
2 | gloo | 3,999 |
3 | contour | 3,651 |
4 | kuma | 3,536 |
5 | gateway | 1,406 |
6 | proxy-wasm-go-sdk | 665 |
7 | apiclarity | 483 |
8 | kubevpn | 434 |
9 | opa-envoy-plugin | 310 |
10 | egress-operator | 248 |
11 | envoy-preflight | 140 |
12 | proximal | 51 |
13 | contour-authserver | 43 |
14 | atlas | 39 |
15 | grpc-proxy | 8 |
Sponsored