Upgrading EDA#
Assuming you have a working EDA cluster the upgrade procedure will consist of the following steps:
- Backup your existing cluster.
- Update the playground repository.
- Uninstall the existing version of EDA.
- Install the new EDA
kpt
package (on both active and standby members if running geo redundant). - Restore your backup.
- Upgrade your applications.
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.
Backing up your cluster#
Backing up your existing cluster is performed using the edactl
CLI tool:
This will create a backup in a gzipped tarball format in the toolbox pod. The backup archive 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:
toolboxpod=$(kubectl -n eda-system get pods \
-l eda.nokia.com/app=eda-toolbox -o jsonpath="{.items[0].metadata.name}")
kubectl cp eda-system/$toolboxpod:/eda/eda-backup-engine-config-2025-04-22_13-51-50.tar.gz \
/tmp/eda-backup.tar.gz
The backup file will be copied to the /tmp/eda-backup.tar.gz
file on your system.
Updating playground repository#
The workflow to upgrade EDA slightly differs depending on whether you have the original playground repository present in a system that you used to install EDA originally from or not.
If you have an existing playground repository ensure it is up to date by running:
This will update the playground repository while keeping any customizations you may have done to the prefs.mk
file.
If the original playground repository is missing, you should clone the repository again:
Identify what EDA version you are running using edactl:
In this example, we have EDA version 25.4.1
.
Set the EDA_CORE_VERSION
and EDA_APPS_VERSION
variables in the prefs.mk
file to the existing version you noted above if it is not already set. For example:
Apply any other customizations required to the prefs.mk
file as explained on the installation page.
With the existing version set and customizations added to the prefs.mk
file, download the EDA packages for the currently running EDA system:
Ensure the package inventory is in sync with your existing cluster:
Uninstalling EDA core components#
The existing EDA core components must be uninstalled, before installing the new version.
Breaking geo redundancy (optional)#
If you have a geo-redundant installation, 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.
Pausing NPP interactions#
Place your TopoNode
resources into emulate
mode by setting the resource's .spec.npp.mode
from normal
to emulate
.
- In this mode, EDA does not interact with targets, effectively pausing the cluster's interaction with your infrastructure.
- You can still interact with EDA and the
TopoNode
resources; changes are pushed upon switching back tonormal
mode.
You can do this with running the following script in on your machine where you have kubectl
configured to access your cluster:
After patching script is run, verify that the TopoNode
resources are in emulate
mode:
kubectl get toponode -A \
-o custom-columns='NAMESPACE:.metadata.namespace,NAME:.metadata.name,MODE:.spec.npp.mode'
Stopping EDA platform#
To stop EDA components, enter the following command:
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.
Uninstalling EDA core#
Proceed with EDA core components uninstallation:
Now you should see no core components in your cluster. Check with the following command2:
Nuances for geo redundant clusters
For geo redundant clusters, execute the edactl platform stop
command on both active and standby members, via their respective eda-toolbox
Pods.
Updating EDA kpt packages#
Set the desired EDA version in the prefs.mk
file to match the target version you want to upgrade to. For example, to choose the 25.8.2 version:
Download the tools and packages by executing the following command:
Customizing kpt packages#
If you started with a freshly cloned repository, you want to add customizations to your EDA installation by setting the variables in the prefs.mk
file; this process is explained in details at the installation phase.
At a minimum, ensure
EXT_DOMAIN_NAME
andEXT_HTTPS_PORT
are set correctly in yourprefs.mk
file.
Configure the packages downloaded for the target EDA version with the customizations you added to the prefs.mk
file:
Installing the new version of EDA#
Install the new version of EDA core components by running:
Restoring your backup#
Copy the backup file you extracted at the beginning of this procedure back into the new eda-toolbox
pod:
toolboxpod=$(kubectl -n eda-system get pods \
-l eda.nokia.com/app=eda-toolbox -o jsonpath="{.items[0].metadata.name}")
kubectl -n eda-system cp /tmp/eda-backup.tar.gz \
$toolboxpod:/tmp/eda-backup.tar.gz
Restore your cluster to its previous state by running:
Upgrading your applications#
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:
Verifying cluster health#
Check the following to ensure your cluster is healthy:
- All pods are running and healthy.
- All
TopoNode
resources are innormal
mode, and have synced with their targets. - No transaction failures exist.
- All cluster members are synchronized.
-
see Installation customization for more details. ↩
-
replace with your base namespace if you modified it. ↩