Update README and QUICKSTART for 3.10.0 |
||
---|---|---|
.circleci | ||
.github | ||
Community | ||
DevDocumentation | ||
_cxx | ||
api | ||
build-aux | ||
charts/emissary-ingress | ||
cmd | ||
deployments/statsd-sink | ||
docker | ||
docs | ||
k8s | ||
k8s-config | ||
manifests | ||
pkg | ||
python | ||
releng | ||
test | ||
tools | ||
.dockerignore | ||
.editorconfig | ||
.gitignore | ||
.golangci.yml | ||
.mailmap | ||
.nvmrc | ||
CHANGELOG.md | ||
CHANGELOG.old-pro.md | ||
DEPENDENCIES.md | ||
DEPENDENCY_LICENSES.md | ||
LICENSE | ||
Makefile | ||
QUICKSTART.md | ||
README.md | ||
go.mod | ||
go.sum | ||
post-compile.sh | ||
pyproject.toml | ||
pytest.ini | ||
unparsable-packages.yaml |
README.md
Emissary-ingress
QUICKSTART
Looking to get started as quickly as possible? Check out the QUICKSTART!
Latest Release
The latest production version of Emissary is 3.10.0.
Note well that there is also an Ambassador Edge Stack 3.10.0, but Emissary 3.10 and Edge Stack 3.10 are not equivalent. Their codebases have diverged and will continue to do so.
Emissary-ingress
Emissary-ingress is an open-source, developer-centric, Kubernetes-native API gateway built on Envoy Proxy. Emissary-ingress is a CNCF incubating project (and was formerly known as Ambassador API Gateway).
Design Goals
The first problem faced by any organization trying to develop cloud-native applications is the ingress problem: allowing users outside the cluster to access the application running inside the cluster. Emissary is built around the idea that the application developers should be able to solve the ingress problem themselves, without needing to become Kubernetes experts and without needing dedicated operations staff: a self-service, developer-centric workflow is necessary to develop at scale.
Emissary is open-source, developer-centric, role-oriented, opinionated, and Kubernatives-native.
- open-source: Emissary is licensed under the Apache 2 license, permitting use or modification by anyone.
- developer-centric: Emissary is designed taking the application developer into account first.
- role-oriented: Emissary's configuration deliberately tries to separate elements to allow separation of concerns between developers and operations.
- opinionated: Emissary deliberately tries to make easy things easy, even if that comes of the cost of not allowing some uncommon features.
Features
Emissary supports all the table-stakes features needed for a modern API gateway:
- Per-request load balancing
- Support for routing [gRPC], [HTTP/2], TCP, and web sockets
- Declarative configuration via Kubernetes [custom resources]
- Fine-grained authentication and [authorization]
- Advanced routing features like canary releases, [A/B testing], [dynamic routing], and sticky sessions
- Resilience features like [retries], rate limiting, and circuit breaking
- Observability features including comprehensive metrics support using the Prometheus stack
- Easy service mesh integration with Linkerd, Istio, Consul, etc.
- Knative serverless integration
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.)
main
: Emissary 4 development work
No further development is planned on any branches listed below.
master
- Frozen at Emissary 3.10.0release/v3.10
- Emissary-ingress 3.10.0 release branchrelease/v3.9
- Emissary-ingress 3.9.1 release branch
release/v2.5
- Emissary-ingress 2.5.1 release branch
Note well that there is also an Ambassador Edge Stack 3.10.0, but Emissary 3.10 and Edge Stack 3.10 are not equivalent. Their codebases have diverged and will continue to do so.
Community
Emissary-ingress is a CNCF Incubating project and welcomes any and all contributors.
Check out the Community/
directory for information on
the way the community is run, including:
- the
CODE_OF_CONDUCT.md
- the
GOVERNANCE.md
structure - the list of
MAINTAINERS.md
- the
MEETING_SCHEDULE.md
of regular trouble-shooting meetings and contributor meetings - how to get
SUPPORT.md
.
The best way to join the community is to join the #emissary-ingress
channel
in the CNCF Slack. This is also the best place for technical information
about Emissary's architecture or development.
If you're interested in contributing, here are some ways:
- Write a blog post for our blog
- Investigate an open issue
- Add more tests