2 min • read

Upgrading Ambassador Edge Stack with a separate cluster

You can upgrade from any version of Ambassador Edge Stack or Emissary-ingress to any version of either by installing the new version in a new Kubernetes cluster, then copying over configuration as needed. This is the way to be absolutely certain that each installation cannot affect the other: it is extremely safe, but is also significantly more effort.

For example, to upgrade from some other version of Ambassador Edge Stack or Emissary-ingress to Ambassador Edge Stack 2.4.1:

  1. Install Ambassador Edge Stack 2.4.1 in a completely new cluster.

  2. Create Listeners for Ambassador Edge Stack 2.4.1.

    When Ambassador Edge Stack 2.4.1 starts, it will not have any Listeners, and it will not create any. You must create Listener resources by hand, or Ambassador Edge Stack 2.4.1 will not listen on any ports.

  3. Copy the entire configuration from the Ambassador Edge Stack 1.X cluster to the Ambassador Edge Stack 2.4.1 cluster. This is most simply done with kubectl get -o yaml | kubectl apply -f -.

    This will create getambassador.io/v2 resources in the Ambassador Edge Stack 2.4.1 cluster. Ambassador Edge Stack 2.4.1 will translate them internally to getambassador.io/v3alpha1 resources.

  4. Each Ambassador Edge Stack instance has its own cluster, so you can test the new instance without disrupting traffic to the existing instance.

  5. If you need to make changes, you can change the getambassador.io/v2 resource, or convert the resource you're changing to getambassador.io/v3alpha1 by using kubectl edit.

  6. Once everything is working with both versions, transfer incoming traffic to the Ambassador Edge Stack 2.4.1 cluster.