Compare commits
10 Commits
chart/ghcr
...
master
Author | SHA1 | Date |
---|---|---|
|
9081324e6b | |
|
cc19ca0746 | |
|
db5d38e826 | |
|
a8e8f4aacd | |
|
e6fa8e56e3 | |
|
4f12337556 | |
|
dd98ecd66a | |
|
c815e182b2 | |
|
96a49735a8 | |
|
7f56afa587 |
|
@ -85,8 +85,8 @@ it will be removed; but as it won't be user-visible this isn't considered a brea
|
||||||
|
|
||||||
## RELEASE NOTES
|
## RELEASE NOTES
|
||||||
|
|
||||||
## [3.10.0-dev] TBD
|
## [3.10.0] July 29, 2025
|
||||||
[3.10.0-dev]: https://github.com/emissary-ingress/emissary/compare/v3.9.0...v3.10.0-dev
|
[3.10.0]: https://github.com/emissary-ingress/emissary/compare/v3.9.0...v3.10.0
|
||||||
|
|
||||||
### Emissary-ingress and Ambassador Edge Stack
|
### Emissary-ingress and Ambassador Edge Stack
|
||||||
|
|
||||||
|
|
|
@ -1,16 +1,12 @@
|
||||||
## Support for deploying and using Ambassador
|
## Support for deploying and using Emissary
|
||||||
|
|
||||||
Welcome to Ambassador! We use GitHub for tracking bugs and feature requests. If you need support, the following resources are available. Thanks for understanding.
|
Welcome to Emissary! The Emissary community is the best current resource for
|
||||||
|
Emissary support, with the best options being:
|
||||||
|
|
||||||
### Documentation
|
- Checking out the [documentation] at https://emissary-ingress.dev/
|
||||||
|
- Joining the `#emissary-ingress` channel in the [CNCF Slack]
|
||||||
|
- [Opening an issue][GitHub] in [GitHub]
|
||||||
|
|
||||||
* [User Documentation](https://www.getambassador.io/docs)
|
[CNCF Slack]: https://communityinviter.com/apps/cloud-native/cncf)
|
||||||
* [Troubleshooting Guide](https://www.getambassador.io/reference/debugging)
|
[documentation]: https://emissary-ingress.dev/
|
||||||
|
[GitHub]: https://github.com/emissary-ingress/emissary/issues
|
||||||
### Real-time Chat
|
|
||||||
|
|
||||||
* [Slack](https://d6e.co/slack): The `#ambassador` channel is a good place to start.
|
|
||||||
|
|
||||||
### Commercial Support
|
|
||||||
|
|
||||||
* Commercial Support is available as part of [Ambassador Pro](https://www.getambassador.io/pro/).
|
|
||||||
|
|
|
@ -172,7 +172,7 @@ Provides two main functions:
|
||||||
- Generate IR and envoy configs (load_ir function)
|
- Generate IR and envoy configs (load_ir function)
|
||||||
- Take each Resource generated in ResourceFetcher and add it to the Config object as strongly typed objects
|
- Take each Resource generated in ResourceFetcher and add it to the Config object as strongly typed objects
|
||||||
- Store Config Object in `/ambassador/snapshots/aconf-tmp.json`
|
- Store Config Object in `/ambassador/snapshots/aconf-tmp.json`
|
||||||
- Check Deltas for Mappings cach and determine if we needs to be reset
|
- Check Deltas for Mappings cache and determine if we needs to be reset
|
||||||
- Create IR with a Config, Cache, and invalidated items
|
- Create IR with a Config, Cache, and invalidated items
|
||||||
- IR is generated which basically just converts our stuff to strongly typed generic "envoy" items (handling filters, clusters, listeners, removing duplicates, etc...)
|
- IR is generated which basically just converts our stuff to strongly typed generic "envoy" items (handling filters, clusters, listeners, removing duplicates, etc...)
|
||||||
- IR is updated in-memory for diagd process
|
- IR is updated in-memory for diagd process
|
||||||
|
|
|
@ -1,40 +1,48 @@
|
||||||
# Emissary-ingress 3.10.0
|
# Emissary-ingress 3.10 Quickstart
|
||||||
|
|
||||||
Emissary 3.10 encompasses:
|
**We recommend using Helm** to install Emissary.
|
||||||
|
|
||||||
- all the changes made in this repo by Ambassador Labs after Emissary 3.9.1;
|
### Installing if you're starting fresh
|
||||||
- updates to Go dependencies;
|
|
||||||
- updates to the included Envoy Proxy; and
|
|
||||||
- community updates (with huge thanks to [Ajay Choudhary], [Billy Lynch], and
|
|
||||||
[Luke Shumaker]!)
|
|
||||||
|
|
||||||
**Note well** that there is also an Ambassador Edge Stack 3.10.0, but
|
**If you are already running Emissary and just want to upgrade, DO NOT FOLLOW
|
||||||
**Emissary 3.10 and Edge Stack 3.10 are not equivalent**. Their codebases have
|
THESE DIRECTIONS.** Instead, check out "Upgrading from an earlier Emissary"
|
||||||
diverged and will continue to do so.
|
below.
|
||||||
|
|
||||||
[Ajay Choudhary]: https://github.com/ajaychoudhary-hotstar
|
If you're starting from scratch and you don't need to worry about older CRD
|
||||||
[Billy Lynch]: https://github.com/wlynch
|
versions, install using `--set enableLegacyVersions=false` to avoid install
|
||||||
[Luke Shumaker]: https://github.com/lukeshu
|
the old versions of the CRDs and the conversion webhook:
|
||||||
|
|
||||||
## Trying 3.10
|
```bash
|
||||||
|
helm install emissary-crds \
|
||||||
|
--namespace emissary --create-namespace \
|
||||||
|
oci://ghcr.io/emissary-ingress/emissary-crds-chart --version=3.10.0 \
|
||||||
|
--set enableLegacyVersions=false \
|
||||||
|
--wait
|
||||||
|
```
|
||||||
|
|
||||||
The most current Emissary 3.10 is Emissary 3.10.0-rc.3. This is a **release
|
This will install only v3alpha1 CRDs and skip the conversion webhook entirely.
|
||||||
candidate**: it passes CI and is believed to be stable, but we'd like more
|
It will create the `emissary` namespace for you, but there won't be anything
|
||||||
people to try it out before we call it a final release.
|
in it at this point.
|
||||||
|
|
||||||
**3.10.0-rc.3 is the final RC planned for Emissary 3.10.0.**
|
Next up, install Emissary itself, with `--set waitForApiext.enabled=false` to
|
||||||
|
tell Emissary not to wait for the conversion webhook to be ready:
|
||||||
|
|
||||||
By far the easiest way to try things is with Helm -- and note that Emissary
|
```bash
|
||||||
3.10 includes a Helm chart for CRDs.
|
helm install emissary \
|
||||||
|
--namespace emissary \
|
||||||
|
oci://ghcr.io/emissary-ingress/emissary-ingress --version=3.10.0 \
|
||||||
|
--set waitForApiext.enabled=false \
|
||||||
|
--wait
|
||||||
|
```
|
||||||
|
|
||||||
### Installing if you're already running an earlier Emissary
|
### Upgrading from an earlier Emissary
|
||||||
|
|
||||||
First, install the CRDs and the conversion webhook:
|
First, install the CRDs and the conversion webhook:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
helm install emissary-crds \
|
helm install emissary-crds \
|
||||||
--namespace emissary-system --create-namespace \
|
--namespace emissary-system --create-namespace \
|
||||||
oci://docker.io/dwflynn/emissary-crds-chart --version=3.10.0-rc.3 \
|
oci://ghcr.io/emissary-ingress/emissary-crds-chart --version=3.10.0 \
|
||||||
--wait
|
--wait
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -44,32 +52,7 @@ conversion webhook into the `emissary-system` namespace. Once that's done, you'l
|
||||||
```bash
|
```bash
|
||||||
helm install emissary \
|
helm install emissary \
|
||||||
--namespace emissary --create-namespace \
|
--namespace emissary --create-namespace \
|
||||||
oci://docker.io/dwflynn/emissary-ingress --version=3.10.0-rc.3 \
|
oci://ghcr.io/emissary-ingress/emissary-ingress --version=3.10.0 \
|
||||||
--wait
|
|
||||||
```
|
|
||||||
|
|
||||||
### Installing if you're starting fresh
|
|
||||||
|
|
||||||
If you're starting from scratch and you don't need to worry about older CRD
|
|
||||||
versions, you can do things differently:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
helm install emissary-crds \
|
|
||||||
--namespace emissary --create-namespace \
|
|
||||||
oci://docker.io/dwflynn/emissary-crds-chart --version=3.10.0-rc.3 \
|
|
||||||
--set enableLegacyVersions=false \
|
|
||||||
--wait
|
|
||||||
```
|
|
||||||
|
|
||||||
This will install only v3alpha1 CRDs and skip the conversion webhook entirely.
|
|
||||||
It will create the `emissary` namespace for you, but there won't be anything
|
|
||||||
in it until you install Emissary itself:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
helm install emissary \
|
|
||||||
--namespace emissary \
|
|
||||||
oci://docker.io/dwflynn/emissary-ingress --version=3.10.0-rc.3 \
|
|
||||||
--set waitForApiext.enabled=false \
|
|
||||||
--wait
|
--wait
|
||||||
```
|
```
|
||||||
|
|
122
README.md
122
README.md
|
@ -23,64 +23,88 @@ Emissary-ingress
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Want to try an Emissary 3.10.0 RC?
|
## QUICKSTART
|
||||||
|
|
||||||
We have a release candidate for Emissary 3.10.0 available for testing. If you're interested in giving it a shot, wonderful! Check out [trying 3.10].
|
Looking to get started as quickly as possible? Check out [the
|
||||||
|
QUICKSTART](https://emissary-ingress.dev/docs/3.10/quick-start/)!
|
||||||
|
|
||||||
[trying 3.10]: https://github.com/emissary-ingress/emissary/tree/master/TRY-3.10.md
|
### 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](https://www.getambassador.io/docs/open-source) is an open-source Kubernetes-native API Gateway +
|
Emissary-ingress
|
||||||
Layer 7 load balancer + Kubernetes Ingress built on [Envoy Proxy](https://www.envoyproxy.io).
|
================
|
||||||
Emissary-ingress is a CNCF incubation project (and was formerly known as Ambassador API Gateway).
|
|
||||||
|
|
||||||
Emissary-ingress enables its users to:
|
[Emissary-ingress](https://www.getambassador.io/docs/open-source) is an
|
||||||
* Manage ingress traffic with [load balancing], support for multiple protocols ([gRPC and HTTP/2], [TCP], and [web sockets]), and Kubernetes integration
|
open-source, developer-centric, Kubernetes-native API gateway built on [Envoy
|
||||||
* Manage changes to routing with an easy to use declarative policy engine and [self-service configuration], via Kubernetes [CRDs] or annotations
|
Proxy]. Emissary-ingress is a CNCF incubating project (and was formerly known
|
||||||
* Secure microservices with [authentication], [rate limiting], and [TLS]
|
as Ambassador API Gateway).
|
||||||
* Ensure high availability with [sticky sessions], [rate limiting], and [circuit breaking]
|
|
||||||
* Leverage observability with integrations with [Grafana], [Prometheus], and [Datadog], and comprehensive [metrics] support
|
### Design Goals
|
||||||
* Enable progressive delivery with [canary releases]
|
|
||||||
* Connect service meshes including [Consul], [Linkerd], and [Istio]
|
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]
|
* [Knative serverless integration]
|
||||||
|
|
||||||
See the full list of [features](https://www.getambassador.io/docs/emissary) here.
|
See the full list of [features](https://www.getambassador.io/docs/emissary) here.
|
||||||
|
|
||||||
Branches
|
### Branches
|
||||||
========
|
|
||||||
|
|
||||||
(If you are looking at this list on a branch other than `master`, it
|
(If you are looking at this list on a branch other than `master`, it
|
||||||
may be out of date.)
|
may be out of date.)
|
||||||
|
|
||||||
- [`master`](https://github.com/emissary-ingress/emissary/tree/master) - branch for Emissary-ingress dev work ( :heavy_check_mark: upcoming release)
|
- [`main`](https://github.com/emissary-ingress/emissary/tree/main): Emissary 4 development work
|
||||||
- [`release/v3.9`](https://github.com/emissary-ingress/emissary/tree/release/v3.9) - branch for Emissary-ingress 3.9.z work
|
|
||||||
- [`release/v2.5`](https://github.com/emissary-ingress/emissary/tree/release/v2.5) - branch for Emissary-ingress 2.5.z work ( :heavy_check_mark: maintenance)
|
|
||||||
|
|
||||||
Architecture
|
**No further development is planned on any branches listed below.**
|
||||||
============
|
|
||||||
|
|
||||||
Emissary is configured via Kubernetes CRDs, or via annotations on Kubernetes `Service`s. Internally,
|
- [`master`](https://github.com/emissary-ingress/emissary/tree/master) - **Frozen** at Emissary 3.10.0
|
||||||
it uses the [Envoy Proxy] to actually handle routing data; externally, it relies on Kubernetes for
|
- [`release/v3.10`](https://github.com/emissary-ingress/emissary/tree/release/v3.10) - Emissary-ingress 3.10.0 release branch
|
||||||
scaling and resiliency. For more on Emissary's architecture and motivation, read [this blog post](https://blog.getambassador.io/building-ambassador-an-open-source-api-gateway-on-kubernetes-and-envoy-ed01ed520844).
|
- [`release/v3.9`](https://github.com/emissary-ingress/emissary/tree/release/v3.9)
|
||||||
|
- Emissary-ingress 3.9.1 release branch
|
||||||
|
- [`release/v2.5`](https://github.com/emissary-ingress/emissary/tree/release/v2.5) - Emissary-ingress 2.5.1 release branch
|
||||||
|
|
||||||
Getting Started
|
**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.
|
||||||
|
|
||||||
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/
|
#### Community
|
||||||
|
|
||||||
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](https://blog.getambassador.io/kubernetes-ingress-nodeport-load-balancers-and-ingress-controllers-6e29f1c44f2d).
|
|
||||||
|
|
||||||
For other common questions, view this [FAQ page](https://www.getambassador.io/docs/emissary/latest/about/faq/).
|
|
||||||
|
|
||||||
You can also use Helm to install Emissary. For more information, see the instructions in the [Helm installation documentation](https://www.getambassador.io/docs/emissary/latest/topics/install/helm/)
|
|
||||||
|
|
||||||
Check out the full [Emissary
|
|
||||||
documentation](https://www.getambassador.io/docs/emissary/) at
|
|
||||||
www.getambassador.io/docs/open-source.
|
|
||||||
|
|
||||||
Community
|
|
||||||
=========
|
|
||||||
|
|
||||||
Emissary-ingress is a CNCF Incubating project and welcomes any and all
|
Emissary-ingress is a CNCF Incubating project and welcomes any and all
|
||||||
contributors.
|
contributors.
|
||||||
|
@ -95,21 +119,21 @@ the way the community is run, including:
|
||||||
regular trouble-shooting meetings and contributor meetings
|
regular trouble-shooting meetings and contributor meetings
|
||||||
- how to get [`SUPPORT.md`](Community/SUPPORT.md).
|
- how to get [`SUPPORT.md`](Community/SUPPORT.md).
|
||||||
|
|
||||||
The best way to join the community is to join the [CNCF Slack](https://communityinviter.com/apps/cloud-native/cncf)
|
The best way to join the community is to join the `#emissary-ingress` channel
|
||||||
#emissary-ingress channel.
|
in the [CNCF Slack]. This is also the best place for technical information
|
||||||
|
about Emissary's architecture or development.
|
||||||
Check out the [`DevDocumentation/`](DevDocumentation/) directory for
|
|
||||||
information on the technicals of Emissary, most notably the
|
|
||||||
[`CONTRIBUTING.md`](DevDocumentation/CONTRIBUTING.md) contributor's guide.
|
|
||||||
|
|
||||||
If you're interested in contributing, here are some ways:
|
If you're interested in contributing, here are some ways:
|
||||||
* Write a blog post for [our blog](https://blog.getambassador.io)
|
* Write a blog post for [our blog](https://blog.getambassador.io)
|
||||||
* Investigate an [open issue](https://github.com/emissary-ingress/emissary/issues)
|
* Investigate an [open issue](https://github.com/emissary-ingress/emissary/issues)
|
||||||
* Add [more tests](https://github.com/emissary-ingress/emissary/tree/master/ambassador/tests)
|
* Add [more tests](https://github.com/emissary-ingress/emissary/tree/main/ambassador/tests)
|
||||||
|
|
||||||
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/.
|
|
||||||
|
|
||||||
<!-- Please keep this list sorted. -->
|
<!-- Please keep this list sorted. -->
|
||||||
|
[CNCF Slack]: https://communityinviter.com/apps/cloud-native/cncf
|
||||||
|
[Envoy Proxy]: https://www.envoyproxy.io
|
||||||
|
|
||||||
|
<!-- Legacy: clean up these links! -->
|
||||||
|
|
||||||
[authentication]: https://www.getambassador.io/docs/emissary/latest/topics/running/services/auth-service/
|
[authentication]: https://www.getambassador.io/docs/emissary/latest/topics/running/services/auth-service/
|
||||||
[canary releases]: https://www.getambassador.io/docs/emissary/latest/topics/using/canary/
|
[canary releases]: https://www.getambassador.io/docs/emissary/latest/topics/using/canary/
|
||||||
[circuit breaking]: https://www.getambassador.io/docs/emissary/latest/topics/using/circuit-breakers/
|
[circuit breaking]: https://www.getambassador.io/docs/emissary/latest/topics/using/circuit-breakers/
|
||||||
|
|
|
@ -32,9 +32,9 @@
|
||||||
|
|
||||||
changelog: https://github.com/emissary-ingress/emissary/blob/$branch$/CHANGELOG.md
|
changelog: https://github.com/emissary-ingress/emissary/blob/$branch$/CHANGELOG.md
|
||||||
items:
|
items:
|
||||||
- version: 3.10.0-dev
|
- version: 3.10.0
|
||||||
prevVersion: 3.9.0
|
prevVersion: 3.9.0
|
||||||
date: "TBD"
|
date: "2025-07-29"
|
||||||
notes:
|
notes:
|
||||||
- title: Upgrade to Envoy 1.30.2
|
- title: Upgrade to Envoy 1.30.2
|
||||||
type: feature
|
type: feature
|
||||||
|
|
Loading…
Reference in New Issue