Assuming you have a working EDA cluster, your upgrade process looks similar to an install + restore. An in place upgrade is not currently supported.
The upgrade procedure consists of:
Backup your existing cluster.
Pull the latest version of the kpt package.
Make any necessary edits to the kpt package.
Pause your clusters interaction with your infrastructure.
Stop EDA (on both the active and standby members if running geo redundant).
Install the new kpt package (on both active and standby members if running geo redundant).
Upgrade your applications.
Unpause your clusters interaction with your infrastructure.
Nuances for Air-gapped and Geo-redundant clusters
The upgrade procedure does not change based on whether you have the Internet or Air-gapped cluster. But keep in mind that with the Air-gapped installation the target release bundles should be uploaded to the Assets VM first before proceeding with an upgrade.
In geo redundant clusters, cluster members cannot run different versions. Therefore, before the software upgrade, you must first break cluster redundancy and then restore redundancy after the upgrade. To break the redundancy, remove the .spec.cluster.redundant section from the EngineConfig resource as described later in this document.
This will create a backup in a gzipped tarball format, which contains all the necessary information to restore your cluster.
Copy this backup outside of your eda-toolbox pod - as this pod is destroyed and recreated during the upgrade. Replace the file name with the one from the edactl platform backup command output and run:
The workflow to upgrade the EDA kpt packages slightly differs depending on whether you have the original playground directory present in a system that you used to install EDA originally from or not.
If you have the original playground directory, you should upgrade your kpt packages in place. This is the recommended approach, as it will keep your customizations intact.
Change into the playground directory and run:
gitpull--rebase--autostash-v
If you don't have the original playground directory, pull the repository again:
If you have any customizations to your EDA installation, you should reapply them1 by setting the variables in the prefs.mk file as was done during the installation phase. Reconfigure the EDA core components using the following command:
makeeda-configure-core
At a minimum, ensure EXT_DOMAIN_NAME and EXT_HTTPS_PORT are set correctly in your prefs.mk file.
On your active cluster member, update your EngineConfig to remove the .spec.cluster.redundant section. This will break the geo redundancy and allow you to upgrade the active member without affecting the standby member.
Changes on standby members
Do not update the EngineConfig resource on standby members. Although stopped, if the standby members were to start, they must continue to look for the active member (and fail to do so) throughout the upgrade.
This command returns no output, but will result in all Pods packaged as part of eda-kpt-base being stopped and removed from the cluster. You can verify this with (replace with your base namespace if you modified it):
A default install of EDA will install current-version applications, but your restore will have restored previous versions. These versions may be incompatible with the new version of EDA core, and must be upgraded immediately following the upgrade. The existing Makefile can be used to do so:
Re-enable interactions with your targets by placing your TopoNode resources back into normal mode by changing resource's .spec.npp.mode value from emulate to normal.