Hi everyone,

I've created a PR to support upgrading live controller / invoker clusters
to get on to the new InstanceId json format without taking any downtime.

https://github.com/apache/openwhisk/pull/4970

The new InstanceId serialization was introduced in June so any live
clusters on an older commit that want to upgrade past that point will need
to follow these steps to upgrade cleanly. The instructions are listed in
the PR, but also here they are for record:


   1. When upgrading the invokers to latest, the ControllerInstanceId in
   ActivationMessage fails to deserialize because the instanceType is not
   included in the message sent from the non-upgraded controllers.
   2. Vice versa controllers fail to upgrade if invokers have not been
   upgraded yet because the completion messages can not deserialize in the
   controller because the invokers aren't including instanceType.
   3. The fix here fixes case 1 so that ControllerInstanceId will still
   deserialize if instanceType is not included.
   4. Upgrade all invokers in your cluster, wait a few minutes so all
   completed topics are consuming post upgrade messages that now include
   instanceType
   5. Upgrade controllers safely because invokers are now upgraded with the
   newly formatted messages.

Brendan Doyle
Software Engineer II, Job Platform

 

Reply via email to