Upgrading PadoGrid - padogrid/padogrid GitHub Wiki

◀️ Updating Products :link: Migrating Workspaces ▶️


To create a sandbox environment, PadoGrid configures each workspace independently with Java, PadoGrid, and data grid product paths. This allows you to selectively upgrade workspaces without disrupting others. This also means you would need to upgrade each workspace individually.

:pencil2: The Updating Products section provides additional details on how to change product versions of local clusters. This section includes details on VM clusters and Java.

Upgrading Workspaces

You can upgrade workspaces by changing the product paths in the workspace's setenv.sh file. For example, the following sets HAZELCAST_HOME.

switch_workspace myws
vi setenv.sh

Workspace setenv.sh:

if [ "$IN_POD" != "true" ]; then
   export PADOGRID_HOME="/Users/dpark/Padogrid/products/padogrid_0.9.21"
   export JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk1.8.0_311.jdk/Contents/Home"
   export HAZELCAST_HOME="/Users/dpark/Padogrid/products/hazelcast-enterprise-5.1.3-slim"
fi

You can also use the update_padogrid command to interactively update the Java and PadoGrid versions as follows.

update_padogrid -product java
update_padogrid -product padogrid

Upon changing paths, to make the changes to take effect, you need to switch to the workspace once.

# Set the changes
switch_workspace

Upgrading RWEs

You can upgrade workspaces by changing the product paths in the RWE'ssetenv.sh file. The product paths set in the RWE's setenv.sh file are used as the default paths which may be applied when you create new workspaces. They are similarly configured as in the workspace's setenv.sh file. The following shows the default paths set in a typical RWE setenv.sh file.

switch_rwe myrwe
vi setenv.sh

RWE setenv.sh:

if [ "$IN_POD" != "true" ]; then
   export JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk1.8.0_311.jdk/Contents/Home"
   export PADOGRID_HOME="/Users/dpark/Padogrid/products/padogrid_0.9.21"
   export PADO_HOME="/Users/dpark/Padogrid/products/pado_0.6.1"
   export GEMFIRE_HOME="/Users/dpark/Padogrid/products/pivotal-gemfire-9.10.15"
   export GEODE_HOME="/Users/dpark/Padogrid/products/apache-geode-1.14.4"
   export HAZELCAST_HOME="/Users/dpark/Padogrid/products/hazelcast-enterprise-5.1.3-slim"
   export HAZELCAST_MC_HOME="/Users/dpark/Padogrid/products/hazelcast-management-center-5.1.3"
   export JET_HOME="/Users/dpark/Padogrid/products/hazelcast-jet-4.5.3-slim"
   export JET_MC_HOME="/Users/dpark/Padogrid/products/hazelcast-management-center-4.2021.12-1"
   export COHERENCE_HOME="/Users/dpark/Padogrid/products/Oracle/coherence"
   export SNAPPYDATA_HOME="/Users/dpark/Padogrid/products/snappydata-1.3.1-bin"
   export HADOOP_HOME="/Users/dpark/Padogrid/products/hadoop-3.3.2"
   export KAFKA_HOME="/Users/dpark/Padogrid/products/kafka_2.13-2.8.0"
   export MOSQUITTO_HOME="/Users/dpark/Padogrid/products/mosquitto-2.0.15"
   export SPARK_HOME="/Users/dpark/Padogrid/products/spark-3.2.1-bin-without-hadoop"
   export PRODUCT_HOME="$HAZELCAST_HOME"
fi

:exclamation: PRODUCT_HOME is interally used by PadoGrid when switching workspaces. It must be set to any of the product paths in the RWE's setenv.sh file for handling the initial context switch. The product path set to PRODUCT_HOME becomes the default product path for that RWE.

Upgrading VM Workspaces

Upgrading VM workspaces is similar to upgrading local workspaces. For example, the following shows a Hazelcast VM product paths in the workspace's vmenv.sh file as shown in the example below. Note that prior to PadoGrid v0.9.20, the VM settings were stored in the workspace's setenv.sh file.

switch_workspace ws-hazelcast
vi vmenv.sh

Workspace vmenv.sh:

#
# Remote VM environment variables
#
# Set true to enable remote commands, false to disable remote commands.
VM_ENABLED="true"
# Enter a comma-separated VM host names with NO spaces. If VM_ENABLED is true then
# VM_HOSTS must be set, otherwise, VM_HOSTS and other VM_ variables are ignored.
VM_HOSTS="54.145.29.66,18.208.249.128,54.146.236.231,54.174.135.25,54.205.54.241"
# VM user name.
VM_USER="ec2-user"
# VM private key file path. If not set, then it defaults to the first .pem file
# found in the workspace directory.
VM_PRIVATE_KEY_FILE="$PADOGRID_WORKSPACE/.mykey.pem"

# VM hosts may have installation paths dfferent from the local paths.

# VM PadoGrid base path.
VM_PADOGRID_ENV_BASE_PATH="/home/ec2-user/Padogrid"
# VM JDK home directory path.
VM_JAVA_HOME="/home/ec2-user/Padogrid/products/jdk1.8.0_333"
# VM PadoGrid home path.
VM_PADOGRID_HOME="$VM_PADOGRID_ENV_BASE_PATH/products/padogrid_0.9.20-SNAPSHOT"
# VM RWE path.
VM_PADOGRID_WORKSPACES_HOME="$VM_PADOGRID_ENV_BASE_PATH/workspaces/rwe-hazelcast"
# VM Workspace path.
VM_PADOGRID_WORKSPACE="$VM_PADOGRID_WORKSPACES_HOME/ws-aws-hazelcast"

Upon changing VM paths in the vmenv.sh file, to make the changes in effect, you need to switch to the workspace once and execute the vm_sync command.

vm_syncautomatically converts the local VM settings to the remote VM settings. Do not execute vm_copy to copy the workspace's setenv.sh file to the VMs.

# Set the changes
switch_workspace
# Apply the changes in the VMs.
vm_sync

Upgrading VM RWEs

To upgrade a VM RWE, you must first remove the RWE's setenv.sh file from all the VMs before executing the vm_sync command. This is because RWEs on VMs are independently managed. For example, you can login to a VM and switch into an RWE, and then create workspaces from there. The workspaces you created from the VM are not visible to the local RWE and they are completely isolated and managed from the VM. If we allow vm_sync to upgrade the RWE's setenv.sh file then it will disrupt these workspaces, and therefore, as a safety measure, PadoGrid does not auto-upgrade RWEs.

❗ Note that the RWE's setenv.sh file does not contain VM environment variables. PadoGrid uses the workspace's VM variables instead to configure the remote RWE, hence you must switch into the workspace, and not the RWE as shown in the example below. The VM_PADOGRID_WORKSPACES_HOME is set in the workspace's setenv.sh.

switch_workspace ws-hazelcast
vm_exec "rm $VM_PADOGRID_WORKSPACES_HOME/setenv.sh"
vm_sync

◀️ Updating Products :link: Migrating Workspaces ▶️