DocsEdge Stack2.1Upgrade Emissary-ingress 2.1.2 to Ambassador Edge Stack 2.1.2 (YAML)
Upgrade Emissary-ingress 2.1.2 to Ambassador Edge Stack 2.1.2 (YAML)
You can upgrade from Emissary-ingress to Ambassador Edge Stack with a few simple commands. When you upgrade to Ambassador Edge Stack, you'll be able to access additional capabilities such as automatic HTTPS/TLS termination, Swagger/OpenAPI support, API catalog, Single Sign-On, and more. For more about the differences between Ambassador Edge Stack and Emissary-ingress, see the Editions page.
Migration Overview
The recommended strategy for migration is to run Emissary-ingress 2.1.2 and Ambassador Edge Stack 2.1.2 side-by-side in the same cluster. This gives Ambassador Edge Stack 2.1.2 and Ambassador Edge Stack 2.1.2 access to all the same configuration resources, with some important notes:
If needed, you can use labels to further isolate configurations.
If you need to prevent your Ambassador Edge Stack 2.1.2 installation from seeing a particular bit of Emissary-ingress 2.1.2 configuration, you can apply a Kubernetes label to the configuration resources that should be seen by your Ambassador Edge Stack 2.1.2 installation, then set its
AMBASSADOR_LABEL_SELECTOR
environment variable to restrict its configuration to only the labelled resources.For example, you could apply a
version-two: true
label to all resources that should be visible to Ambassador Edge Stack 2.1.2, then setAMBASSADOR_LABEL_SELECTOR=version-two=true
in its Deployment.Ambassador Edge Stack ACME and
Filter
s will be disabled while Emissary-ingress is still running.Since Ambassador Edge Stack and Emissary-ingress share configuration, Ambassador Edge Stack cannot configure its ACME or other filter processors without also affecting Emissary-ingress. This migration process is written to simply disable these Ambassador Edge Stack features to make it simpler to roll back, if needed. Alternate, you can isolate the two configurations as described above.
Be careful about label selectors on Kubernetes Services!
If you have services in Emissary-ingress 2.1 that use selectors that will match Pods from Ambassador Edge Stack 2.1.2, traffic will be erroneously split between Emissary-ingress 2.1 and Ambassador Edge Stack 2.1.2. The labels used by Ambassador Edge Stack 2.1.2 include:
You can also migrate by installing Ambassador Edge Stack 2.1.2 in a separate cluster. This permits absolute certainty that your Emissary-ingress 2.1.2 configuration will not be affected by changes meant for Ambassador Edge Stack 2.1.2, but it is more effort.
Side-by-Side Migration Steps
Migration is a five-step process:
Install new CRDs.
Before installing Ambassador Edge Stack 2.1.2 itself, you need to update the CRDs in your cluster. This is mandatory during any upgrade of Ambassador Edge Stack.
Install Ambassador Edge Stack 2.1.2.
After installing the new CRDs, you need to install Ambassador Edge Stack 2.1.2 itself in the same namespace as your existing Emissary-ingress 2.1.2 installation. It's important to use the same namespace so that the two installations can see the same secrets, etc.
Our
aes-emissaryns-migration.yaml
assumes that Emissary-ingress 2.1.2 is installed in theemissary
namespace. If you installed Emissary-ingress 2.1.2 into a different namespace, you'll need to downloadaes-emissaryns-migration.yaml
file and edit it.If you need to set
AMBASSADOR_LABEL_SELECTOR
, downloadaes-emissaryns-migration.yaml
and edit it to do so.Test!
Your Ambassador Edge Stack 2.1.2 installation should come up running with the configuration resources used by Emissary-ingress 2.1.2, including
Listener
s andHost
s.If you find that you need to roll back, just reinstall your Emissary-ingress 2.1.2 CRDs and delete your installation of Ambassador Edge Stack 2.1.2.
When ready, switch over to Ambassador Edge Stack 2.1.2.
You can run Emissary-ingress 2.1.2 and Ambassador Edge Stack 2.1.2 side-by-side as long as you care to. When you're ready to have Ambassador Edge Stack 2.1.2 handle traffic on its own, switch your original Emissary-ingress 2.1.2 Service to point to Ambassador Edge Stack 2.1.2. Use
kubectl edit -n emissary service emissary-ingress
and change theselectors
to:Once that is done, it's safe to remove the
emissary-ingress-admin
Service and theemissary-ingress
Deployment, and to enable Ambassador Edge Stack's filter configuration:You may also want to redirect DNS to the
edge-stack
Service and remove theemissary-ingress
Service.What's next?
Now that you have Ambassador Edge Stack up and running, check out the Getting Started guide for recommendations on what to do next and take full advantage of its features.
ON THIS PAGE