2.4
Since Emissary’s configuration is entirely stored in Kubernetes resources, upgrading between minor versions is straightforward.
Migration is a two-step process:
-
Install new CRDs.
Before installing Emissary 2.5 itself, you need to update the CRDs in your cluster; Helm will not do this for you. This is mandatory during any upgrade of Emissary.
kubectl apply -f https://app.getambassador.io/yaml/emissary/2.5/emissary-crds.yaml kubectl wait --timeout=90s --for=condition=available deployment emissary-apiext -n emissary-systemEmissary 2.5 includes a Deployment in the `emissary-system` namespace called emissary-apiext. This is the APIserver extension that supports converting Emissary CRDs betweengetambassador.io/v2andgetambassador.io/v3alpha1. This Deployment needs to be running at all times.If the emissary-apiextDeployment's Pods all stop running, you will not be able to usegetambassador.io/v3alpha1CRDs until restarting theemissary-apiextDeployment.There is a known issue with the emissary-apiextservice that impacts all Emissary 2.x and 3.x users. Specifically, the TLS certificate used by apiext expires one year after creation and does not auto-renew. All users who are running Emissary/Ambassador Edge Stack 2.x or 3.x with the apiext service should proactively renew their certificate as soon as practical by runningkubectl delete --all secrets --namespace=emissary-systemto delete the existing certificate, and then restart theemissary-apiextdeployment withkubectl rollout restart deploy/emissary-apiext -n emissary-system. This will create a new certificate with a one year expiration. We will issue a software patch to address this issue well before the one year expiration. Note that certificate renewal will not cause any downtime. -
Install Emissary 2.5.
After installing the new CRDs, use Helm to install Emissary 2.5. Start by making sure that your
datawireHelm repo is set correctly:helm repo remove datawire helm repo add datawire https://app.getambassador.io helm repo updateThen, update your Emissary installation in the
emissarynamespace. If necessary for your installation (e.g. if you were running withAMBASSADOR_SINGLE_NAMESPACEset), you can choose a different namespace.helm upgrade -n emissary \ emissary datawire/emissary && \ kubectl rollout status -n emissary deployment/emissary-ingress -wYou must use the Helm chart for Emissary 2.X. Do not use the ambassadorHelm chart.