If you have ECDs that are running workflow packages that contain workflows with Web Services, you need to perform some additional steps before and after the upgrade of Usage Engine to achieve zero downtime.
If you do not perform these steps, the workflows using Web Services in workflow packages will abort after the upgrade.
To ensure workflow packages containing workflows with Web Services function correctly after upgrade, follow these steps:
Before initiating the upgrade, generate new versions of the workflow packages that contain workflows with Web Services. This needs to be done in an environment where Usage Engine 3.2 is already installed. If the workflow packages are provisioned through a package image, you need to create a new version of the package image as well, and ensure it contains the new version(s) of the workflow package(s).
Enable manual upgrade for the related ECDs. You can do this with the following command:
kubectl patch ecdeployments.mz.digitalroute.com <your ecd name> --type=merge -p '{"spec":{"manualUpgrade":true}}'
which will prevent the ECDs from being automatically upgraded during the upgrade process of Usage Engine.
Upgrade Usage Engine according to the regular procedure for your deployment type.
Once the upgrade is complete and all pods are Ready, upgrade the ECDs for which you applied manual upgrade.
This should be done as a single update operation involving the following three changes to the ECD specification:Enable automatic upgrade for the ECDs again by setting
manualUpgrade=false
.Set
packageImage=<your new package image version>
.Ensure to update
packageVersion
for all affected workflows so that it points to the new workflow package version.The update operation will trigger a rolling update of the ECD, which will enable a zero downtime upgrade of the ECD.
We recommend that you test the steps in a test environment prior to the production upgrade.
0 Comments