Skip to main content

Scaling deployment

  • Only SCALING UP is supported
  • This is a major operation with following impacts:
    • Service interruption for both API/GUI and base station flows
    • Packets may be lost or queued during re-deployment

Planning the Scale Up

Before starting procedure:

  1. Ensure that your license matches capacities of targeted deployment.
  2. Prepare new worker nodes matching requirements of targeted segment (expressed in sizing matrix). The scaling up also impact storage cost by requiring more disk space capacities).
  3. Plan a maintenance window. This operation interrupt Uplink/Downlink processing by redeploying Data Path components.
  4. Get back the backed up values-data-stack-all.yaml and values-thingpark-stack-all.yaml customization files used for initial deployment.

The Scale up procedure consists in:

  1. Backup your data from initial deployment,
  2. Uninstall both ThingPark Enterprise and ThingPark Data stacks,
  3. Install a new empty ThingPark Enterprise deployment,
  4. Restore data from backup done at Step 1
  • Same version of ThingPark Enterprise must be used to deploy the scaled up infrastructure
  • Backup must be done the closest of uninstall

Scale up procedure

1. Backup data

  1. Run backup script using kubernetes api exec endpoint

    # Set the deployment namespace as an environment variable
    export NAMESPACE=thingpark-enterprise
    kubectl exec -it -n $NAMESPACE deploy/tp-backup-controller -- backup
  2. Backup is pushed to blob storage

    localhost ok: {
    "changed": false,
    "msg": "New backup thingpark-enterprise-backup-20220120091609 successfully pushed to remote storage"
  3. Take a note of backup name for restoration time

2. Uninstall

  1. Start by uninstall charts

    helm -n $NAMESPACE uninstall tpe tpe-controllers tpe-data tpe-data-controllers
  2. Remove the namespace (required to cleanup all persistent data)

    kubectl delete ns $NAMESPACE

3. New Helm Release deployment

Using the previously recovered values-data-stack-all.yaml and values-thingpark-stack-all.yaml customization files, follow the Deployment procedure to re-deploy ThingPark Enterprise on your cluster.

  • Set RELEASE environment variable with same version of previous ThingPark Enterprise deployment
  • Set SEGMENT environment variable with targeted sizing

5. Data restoration

Trigger the data restoration (command will ask for confirmation) using the initial backup name:

kubectl exec -it -n $NAMESPACE deploy/tp-backup-controller -- restore -e backup_name=%backup name%