Upgrading EDA#
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 geo redundant clusters
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, 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:
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.
Upgrading EDA kpt packages#
If you have the playground directory present in a system that you used to install EDA originally from, you may 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:
If you don't have the original playground directory, pull the repository again:
git clone https://github.com/nokia-eda/playground && \
cd playground
make download-tools download-pkgs update-pkgs
Customizing kpt packages#
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:
At a minimum, ensure EXT_DOMAIN_NAME
and EXT_HTTPS_PORT
are set correctly in your prefs.mk
file.
Breaking geo redundancy (optional)#
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.
Stopping EDA#
To stop EDA, 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. You can verify this with (replace with your base namespace if you modified it):
Nuances for geo redundant clusters
For geo redundant clusters, execute the edactl cluster stop
command on both active and standby members, via their respective eda-toolbox
Pods.
Installing the new version of EDA#
Enter the following command:
Restoring your backup#
You should execute this in the new eda-toolbox
pod (typically in the eda-system
Namespace). This will restore your cluster to its previous state.
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:
Allowing NPP interactions#
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
.
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 ↩