🎉 Emissary v4.0.0-rc.1 🎉
Emissary-ingress is an open source, Kubernetes-native microservices API gateway built on the Envoy Proxy.
Get started with Emissary-ingress - https://emissary-ingress.dev/docs/4.0/quick-start/
View changelog - https://github.com/emissary-ingress/emissary/blob/v4.0.0-rc.1/CHANGELOG.md
Quickstart
Emissary v4 supports both AMD64 and ARM64 architectures. To install Emissary v4 using Helm, follow the instructions in the Emissary Quickstart.
Emissary provides two Helm charts:
-
ghcr.io/emissary-ingress/emissary-crds-chartis the chart for Emissary's CRDs. -
ghcr.io/emissary-ingress/emissary-ingressis the chart for Emissary itself.
The Emissary project recommends using Helm to install Emissary. If you need YAML instead, use helm template to generate the YAML manifests from the Helm charts.
Breaking Changes
-
BREAKING CHANGE: Emissary is now built using
distrolessand Envoy 1.36.2 with no custom Envoy changes, and almost all code specific to Ambassador Edge Stack has been removed to lessen maintenance burdens (with thanks to Luke Shumaker for jumping back in to help with tooling work!).As a result, Ambassador Edge Stack's custom error responses and header-case mangling features are completely unavailable in Emissary (which should not affect any Emissary users).
-
BREAKING CHANGE: The Helm chart and Emissary itself now have aligned version numbers (e.g., use chart 4.0.0 to install Emissary 4.0.0).
-
BREAKING CHANGE: Emissary's Helm charts are now available only from the GitHub Container Registry (GHCR):
-
BREAKING CHANGE: By default, the Emissary CRD Helm chart will not enable the conversion webhook that supports Emissary's
v1andv2CRDs. To enable the webhook:-
Set
enableLegacyVersions: trueto enable the conversion webhook with support forv2CRDs. -
Also set
enableV1: trueto additionally supportv1CRDs. There is no way to support onlyv1CRDs.
-
Changes
-
Fix: Correctly distinguish Mappings that differ only by
weight, even when some weights are missing (thanks, sekar-saravanan!). -
Fix: Generate correct cache keys for Mappings using
header_regexmatch conditions (thanks, sekar-saravanan!). -
Fix: Document the
loadBalancerSourceRangesvalue in the Helm chart (thanks, Abhay Bothra!). -
Fix: The Helm chart no longer sets a CPU limit on Emissary's deployments (thanks, Frederic Mereu!).
-
Fix: The Helm chart's
initContainersare now correctly indented (thanks, Catalin Codreanu!). -
Fix: The Helm chart now correctly restores the
HOST_IPvalue for tracing providers (thanks, Tenshin Higashi!) -
Fix: When the conversion webhook is active and Emissary is instructed to wait for the webhooks at boot time, this is now completely internal rather than requiring an extra init container.
-
Fix: When trying to use environment variables to tell the conversion webhook not to manage aspects of its certificate, don't invert the meaning of the environment variables.
-
Feature: Emissary now supports both
arm64andamd64architectures using multiarch Docker images. -
Feature: When the
emissary-apiextdeployment is in use, the Helm chart correctly sets itssecurityContext(thanks, Frederic Mereu!). -
Feature: The Helm chart can now supply a
loadBalancerClasson Emissary's Services (thanks, Sunny Kumar!). -
Feature: The Helm chart supports setting the IP address family for Emissary's Services, and disabling the creation of a Module entirely (thanks, Pier!).