import Alert from ‘@material-ui/lab/Alert’;

Upgrade $productName$ 2.0.5 (YAML)

This guide covers migrating from $productName$ 2.0.5 to $productName$ $versionTwoX$. If this is not your exact situation, see the migration matrix. This guide is written for upgrading an installation made without using Helm. If you originally installed with Helm, see the Helm-based upgrade instructions.

Since $productName$’s configuration is entirely stored in Kubernetes resources, upgrading between minor versions is straightforward.

Migration is a two-step process:

  1. Install new CRDs.

    Before installing $productName$ $versionTwoX$ itself, you need to update the CRDs in your cluster. This is mandatory during any upgrade of $productName$.

    kubectl apply -f https://app.getambassador.io/yaml/emissary/$versionTwoX$/emissary-crds.yaml
    kubectl wait --timeout=90s --for=condition=available deployment emissary-apiext -n emissary-system
    
    $productName$ $versionTwoX$ includes a Deployment in the `emissary-system` namespace called emissary-apiext. This is the APIserver extension that supports converting $productName$ CRDs between getambassador.io/v2 and getambassador.io/v3alpha1. This Deployment needs to be running at all times. If the emissary-apiext Deployment's Pods all stop running, you will not be able to use getambassador.io/v3alpha1 CRDs until restarting the emissary-apiext Deployment. There is a known issue with the emissary-apiext service that impacts all $productName$ 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 $productName$/$AESproductName$ 2.x or 3.x with the apiext service should proactively renew their certificate as soon as practical by running kubectl delete --all secrets --namespace=emissary-system to delete the existing certificate, and then restart the emissary-apiext deployment with kubectl 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.
  2. Install $productName$ $versionTwoX$.

    After installing the new CRDs, upgrade $productName$ $versionTwoX$.

    Our emissary-emissaryns.yaml file uses the `emissary` namespace, since this is the default for $productName$. We also publish emissary-defaultns.yaml for the `default` namespace. For any other namespace, you should download one of these files and edit the namespaces manually.
    kubectl apply -f https://app.getambassador.io/yaml/emissary/$versionTwoX$/emissary-emissaryns.yaml && \
    kubectl rollout status  -n emissary deployment/emissary-ingress -w
    

Last modified April 17, 2024: Initial hugo setup (0526d5d)