Upgrading Local Edition cluster from 5.4.0 to 5.4.1 for Kubernetes in Untethered Mode

The following section provides information on upgrading Local Edition cluster from version 5.4.0 to 5.4.1 for Kubernetes.

Note: The following steps are applicable to Kubernetes environment in untethered mode.

Prerequisites

  • Local Edition 5.4.1 images must be built and pushed to the desired registry for deployment.
  • For customization done to the JSON properties files in previous versions, the deployment scripts of Local Edition 5.4.1 must include these previously customized values.
  • An admin must generate the manifest deployment folder, namely the manifest-single-zone, as per the deployment topology for version 5.4.1 by running the compose command.
Note: Some traffic disruptions are expected during upgrade. To minimize disruptions, upgrade the Local Edition components sequentially, explained as follows.

Procedure

  1. Upgrade NoSQL container. Run the upgrade scripts inside the container.
    1. Upgrade NoSQL container using the migrate_nosql_from_5.4.0_to_5.4.1.sh file. Contact TIBCO support for this file.
    2. Run the migration script.
      chmod +x /root/migrate_nosql_from_5.4.0_to_5.4.1.sh
      Note: Ensure that the NoSQL container is running.
    3. Navigate to the NoSQL docker container and copy the migration script to the NoSQL container.
      kubectl cp /root/migrate_nosql_from_5.4.0_to_5.4.1.sh NOSQL_CONTAINER_ID:/usr/local/bin/migrate_nosql_from_5.4.0_to_5.4.1.sh
    4. Run the migration script to update Cassandra configuration.
      kubectl exec NOSQL_CONTAINER_ID /usr/local/bin/migrate_nosql_from_5.4.0_to_5.4.1.sh
  2. Undeploy and redeploy NoSQL container.
    1. For single zone undeployment:
      • ./undeploy-nosql-pod.sh
    2. To redeploy the container, run the following command.
      ./deploy-nosql-pod.sh
    The NoSQL container will be upgraded to 5.4.1.
  3. Undeploy and redeploy Log components.
    Remove running Local Edition 5.4.0 Log container.
    1. For single zone undeployment:
      • ./undeploy-log-pod.sh
    2. To redeploy the container, run the following command.
      ./deploy-log-pod.sh
    3. Run the following command after all the log pods have been successfully deployed.
      kubectl exec LOG_CONTAINER_ID chown -R td-agent:td-agent /mnt/log/td-agent
  4. Undeploy and redeploy CM components.
    Remove running Local Edition 5.4.0 CM container.
    1. For single zone undeployment:
      • ./undeploy-cm-pod.sh
    2. To redeploy the container, run the following command.
      ./deploy-cm-pod.sh
  5. Undeploy and redeploy SQL components.
    Remove running Local Edition 5.4.0 SQL container.
    1. For single zone undeployment:
      • ./undeploy-sql-pod.sh
    2. To redeploy the container, run the following command.
      ./deploy-sql-pod.sh
    3. On successful deployment of SQL pods, run the following command from another terminal.
      kubectl -it exec sql-set-0-0 bash
      chown -R mysql:mysql /var/lib/mysql
      chmod 0751 /var/lib/mysql
  6. Upgrade SQL. Run the upgrade scripts inside the container.
    1. Upgrade SQL container.
      For single zone deployment:
      • kubectl exec -it <sql_container_id> bash
    2. Navigate to the scripts folder using cd /opt/mashery/scripts/ and run the following commands as applicable.
      For upgrading from 5.4.0:
      ./sql-upgrade.sh 5.4.0
    The SQL container will be upgraded to 5.4.1.
  7. Undeploy and redeploy Cache components.
    Remove running Local Edition 5.4.0 Cache container.
    1. For single zone undeployment:
      • ./undeploy-cache-pod.sh
    2. To redeploy the container, run the following command.
      ./deploy-cache-pod.sh
  8. Undeploy and redeploy TM components.
    Remove running Local Edition 5.4.0 TM container.
    1. For single zone undeployment:
      • ./undeploy-tm-pod.sh
    2. Remove tm-svc service from 5.4.0 folder, run the following command.
      ./delete-tm-svs.sh
    3. Create tm-svc service in 5.4.1 folder, run the following command.
      ./set-tm-svs.sh
    4. Deploy 5.4.1 TM container, run the following command.
      ./deploy-tm-pod.sh