Stronghold EE can be upgraded to Stronghold CSE in one of the following ways:

Upgrading from Stronghold EE 1.15.x to Stronghold CSE 1.16.0 is supported. If you use a Stronghold EE version earlier than 1.15.x, first update to the latest version of the branch.

The service may be temporarily unavailable during the upgrade to Stronghold CSE.

Upgrading a standalone installation

Before starting the upgrade, do the following:

  1. Check the current Stronghold version in the Version field:

    d8 stronghold status
  2. Save the unseal keys and the root token to a secure storage.

  3. Create a snapshot of the Stronghold cluster. Example:

    d8 stronghold operator raft snapshot save stronghold-$(date +%F_%H-%M).snap

    Check that the snapshot has been created:

    ls -lh ./stronghold-*.snap

    Store the resulting files outside the Stronghold cluster and outside the nodes it runs on.

  4. Prepare the Stronghold CSE 1.16.0 package or binary on each node.

Upgrading a single-node cluster

To upgrade a single-node cluster, do the following:

  1. Check the cluster state before the upgrade:

    d8 stronghold status

    The following values must be present:

    Initialized             true
    Sealed                  false
    Version                 1.15.0+ee
    HA Mode                 active
    
  2. Stop the stronghold service:

    sudo systemctl stop stronghold
  3. Replace the Stronghold EE binary with the Stronghold CSE 1.16.0 binary.

  4. Make sure the binary permissions have not changed, or run:

    sudo chmod 0755 /opt/stronghold/stronghold
    sudo chown stronghold:stronghold /opt/stronghold/stronghold
  5. Start the stronghold service:

    sudo systemctl start stronghold
    sudo systemctl status stronghold --no-pager
  6. Check that the node has started correctly:

    d8 stronghold status

    Check that:

    • the stronghold service is in the Running state;
    • there are no startup errors;
    • the version is 1.16.0 (CSE).
  7. If necessary, unseal Stronghold.

Upgrading a multi-node cluster

A multi-node cluster is upgraded node by node so that the cluster remains available.

  1. Determine the current leader node:

    d8 stronghold status

    The output contains the address of the current leader node in the HA Cluster field:

    ...
    HA Cluster              https://10.241.32.36:8201
    ...
    

    Note the leader node.

  2. Upgrade all follower nodes one by one. On each follower node:

    • Stop the service:

      sudo systemctl stop stronghold
    • Replace the Stronghold EE binary with Stronghold CSE 1.16.0. If necessary, restore the permissions:

      sudo chmod 0755 /opt/stronghold/stronghold
      sudo chown stronghold:stronghold /opt/stronghold/stronghold
    • Start the service:

      sudo systemctl start stronghold
      sudo systemctl status stronghold --no-pager
    • If necessary, unseal the Stronghold node.

    • Check the node state:

      d8 stronghold status
    • Check that:

      • the stronghold service is in the Running state;
      • there are no startup errors;
      • the version is 1.16.0 (CSE).
    • Move on to the next follower node only after the current one has been checked successfully.

  3. After upgrading all follower nodes, change the leader node:

    d8 stronghold operator step-down
    # Wait for a while.
    d8 stronghold status

    Expected result: the leader node has changed, and the HA Cluster field shows a different value.

  4. Upgrade the former leader node:

    sudo systemctl stop stronghold
    # Replace the Stronghold EE binary with Stronghold CSE 1.16.0.
    # If necessary, restore the permissions.
    # sudo chmod 0755 /opt/stronghold/stronghold
    # sudo chown stronghold:stronghold /opt/stronghold/stronghold
    sudo systemctl start stronghold
    sudo systemctl status stronghold --no-pager
    d8 stronghold status

    Check that:

    • the stronghold service is in the Running state;
    • there are no startup errors;
    • the version is 1.16.0 (CSE).
  5. If necessary, unseal the last Stronghold node.

  6. Perform the final cluster check:

    d8 stronghold status

    Check that:

    • all cluster nodes are available;
    • there are no replication errors or quorum problems;
    • version 1.16.0 (CSE) is installed on the nodes.