datawire/ambassador
open source Kubernetes-native API gateway for microservices built on the Envoy Proxy
repo name | datawire/ambassador |
repo link | https://github.com/datawire/ambassador |
homepage | https://www.getambassador.io |
language | Python |
size (curr.) | 266482 kB |
stars (curr.) | 2578 |
created | 2017-03-30 |
license | Apache License 2.0 |
Ambassador
Ambassador is an open source Kubernetes-native API Gateway built on Envoy, designed for microservices. Ambassador serves as an Envoy-based ingress controller, but with many more features.
Key features include:
- Self-service configuration, via Kubernetes CRDs or annotations
- Support for gRPC and HTTP/2, TCP, and WebSockets
- Support for CORS, timeouts, weighted round robin (canary), sticky sessions, rate limiting
- Consul, Linkerd, and Istio service mesh integration
- Authentication
- Robust TLS support, including TLS client-certificate authentication and SNI
- Knative serverless integration
- Comprehensive metrics support
Architecture
Ambassador deploys the Envoy Proxy for L7 traffic management. Configuration of Ambassador is via Kubernetes annotations. Ambassador relies on Kubernetes for scaling and resilience. For more on Ambassador’s architecture and motivation, read this blog post.
Getting Started
You can get Ambassador up and running in less than a minute by running it locally with Docker. Follow the instructions here: https://www.getambassador.io#get-started.
For production usage, Ambassador runs in Kubernetes. For a Kubernetes deployment, follow the instructions at https://www.getambassador.io/user-guide/getting-started.
If you are looking for a Kubernetes ingress controller, Ambassador provides a superset of the functionality of a typical ingress controller. (It does the traditional routing, and layers on a raft of configuration options.) This blog post covers Kubernetes ingress.
You can also use Helm to install Ambassador. For more information, see the instructions in the Helm installation documentation.
Community
Ambassador is an open source project, and welcomes any and all contributors. To get started:
- Join our Slack channel
- Read the developer guide
- Check out the Ambassador documentation
If you’re interested in contributing, here are some ways:
- Write a blog post for our blog
- Investigate an open issue
- Add more tests
The Ambassador Edge Stack is a superset of the Ambassador API Gateway that provides additional functionality including OAuth/OpenID Connect, advanced rate limiting, Swagger/OpenAPI support, integrated ACME support for automatic TLS certificate management, and a UI. For more information, visit https://www.getambassador.io/editions/.