Compare commits

...

10 Commits

Author SHA1 Message Date
Phil Peble 9081324e6b
Merge pull request #5306 from yanjunding/patch-1
Typo
2025-08-25 14:42:13 -05:00
Phil Peble cc19ca0746
Merge pull request #5864 from emissary-ingress/release-3.10-fix-CHANGELOG
Update CHANGELOG with correct metadata for 3.10 release
2025-08-14 16:01:01 -05:00
Phil Peble db5d38e826
Update CHANGELOG with correct metadata for 3.10 release
Signed-off-by: Phil Peble <ppeble@activecampaign.com>
2025-08-14 15:56:44 -05:00
Flynn a8e8f4aacd
Merge pull request #5849 from emissary-ingress/release-3-10-quickstart
Point quickstart link in README to emissary-ingress.dev
2025-07-29 13:30:12 -04:00
Phil Peble e6fa8e56e3
Point quickstart link in README to emissary-ingress.dev
Signed-off-by: Phil Peble <ppeble@activecampaign.com>
2025-07-29 12:17:48 -05:00
Flynn 4f12337556
Merge pull request #5839 from emissary-ingress/flynn/update-docs
Update README and QUICKSTART for 3.10.0
2025-05-07 15:50:26 -04:00
Flynn dd98ecd66a Minor tweaks
Signed-off-by: Flynn <emissary@flynn.kodachi.com>
2025-05-07 10:15:53 -04:00
Flynn c815e182b2 Update README and SUPPORT.md
Signed-off-by: Flynn <emissary@flynn.kodachi.com>
2025-05-07 10:15:47 -04:00
Flynn 96a49735a8 TRY-3.10 -> QUICKSTART
Signed-off-by: Flynn <emissary@flynn.kodachi.com>
2025-05-07 10:15:41 -04:00
Adrian Ding 7f56afa587
Typo 2023-09-19 07:26:27 +12:00
6 changed files with 118 additions and 115 deletions

View File

@ -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

View File

@ -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/).

View File

@ -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

View File

@ -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
View File

@ -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/

View File

@ -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