/emissary

open source Kubernetes-native API gateway for microservices built on the Envoy Proxy

Primary LanguagePythonApache License 2.0Apache-2.0

Emissary-ingress

Version Docker Repository Join Slack Core Infrastructure Initiative: Best Practices

Emissary-Ingress is an open-source Kubernetes-native API Gateway + Layer 7 load balancer + Kubernetes Ingress built on Envoy Proxy. Emissary-ingress is a CNCF incubation project (and was formerly known as Ambassador API Gateway).

Emissary-ingress enables its users to:

See the full list of features here.

Branches

(If you are looking at this list on a branch other than master, it may be out of date.)

  • master - branch for Emissary-ingress 3.2.z work (:heavy_check_mark: upcoming release)
  • release/v3.1 - branch for Emissary-ingress 3.1.z work (:heavy_check_mark: current latest)
  • release/v3.0 - branch for Emissary-ingress 3.0.z work (:x: EOL; upgrade to 3.1.z)
  • release/v2.4 - branch for Emissary-ingress 2.4.z work (:heavy_check_mark: upcoming release)
  • release/v2.3 - branch for Emissary-ingress 2.3.z work (:heavy_check_mark: maintenance, supported through December 2022)
  • release/v2.2 - branch for Emissary-ingress 2.2.z work (:x: EOL; upgrade to 2.3.z)
  • release/v2.1 - branch for Emissary-ingress 2.1.z work (:x: EOL; upgrade to 2.3.z)
  • release/v2.0 - branch for Emissary-ingress 2.0.z work (:x: EOL; upgrade to 2.3.z)
  • release/v1.14 - branch for Emissary-ingress 1.14.z work (:heavy_check_mark: maintenance, supported through September 2022)
  • release/v1.13 - branch for Emissary-ingress 1.13.z work (:x: EOL; upgrade to 1.14.z)
  • release/v1.12 - branch for Ambassador API Gateway 1.12.z work (:x: EOL; upgrade to 1.14.z)
  • release/v1.11 - branch for Ambassador API Gateway 1.11.z work (:x: EOL; upgrade to 1.14.z)
  • release/v1.10 - branch for Ambassador API Gateway 1.10.z work (:x: EOL; upgrade to 1.14.z)
  • release/v1.9 - branch for Ambassador API Gateway 1.9.z work (:x: EOL; upgrade to 1.14.z)
  • release/v1.8 - branch for Ambassador API Gateway 1.8.z work (:x: EOL; upgrade to 1.14.z)
  • release/v1.7 - branch for Ambassador API Gateway 1.7.z work (:x: EOL; upgrade to 1.14.z)
  • release/v1.6 - branch for Ambassador API Gateway 1.6.z work (:x: EOL; upgrade to 1.14.z)
  • release/v1.5 - branch for Ambassador API Gateway 1.5.z work (:x: EOL; upgrade to 1.14.z)
  • release/v1.4 - branch for Ambassador API Gateway 1.4.z work (:x: EOL; upgrade to 1.14.z)
  • release/v1.3 - branch for Ambassador API Gateway 1.3.z work (:x: EOL; upgrade to 1.14.z)
  • release/v1.2 - branch for Ambassador API Gateway 1.2.z work (:x: EOL; upgrade to 1.14.z)
  • release/v1.1 - branch for Ambassador API Gateway 1.1.z work (:x: EOL; upgrade to 1.14.z)

Architecture

Emissary is configured via Kubernetes CRDs, or via annotations on Kubernetes Services. Internally, it uses the [Envoy Proxy] to actually handle routing data; externally, it relies on Kubernetes for scaling and resiliency. For more on Emissary's architecture and motivation, read this blog post.

Getting Started

You can get Emissary up and running in just three steps. Follow the instructions here: https://www.getambassador.io/docs/emissary/latest/tutorials/getting-started/

If you are looking for a Kubernetes ingress controller, Emissary 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.

For other common questions, view this FAQ page.

You can also use Helm to install Emissary. For more information, see the instructions in the Helm installation documentation

Community

Emissary-ingress is a CNCF Incubating project and welcomes any and all contributors. To get started:

If you're interested in contributing, here are some ways:

The Ambassador Edge Stack is a superset of Emissary-ingress that provides additional functionality including OAuth/OpenID Connect, advanced rate limiting, Swagger/OpenAPI support, integrated ACME support for automatic TLS certificate management, and a cloud-based UI. For more information, visit https://www.getambassador.io/editions/.