automation-suite
2021.10
false
UiPath logo, featuring letters U and I in white
OUT OF SUPPORT
Automation Suite Installation Guide
Last updated Nov 21, 2024

Enabling Redis High Availability Add-on for the Cluster

In a multi-node HA-ready production setup, High Availability (HA) is enabled by default. However, the Redis-based in-memory cache used by cluster services runs on a single node and represents a single point of failure. Therefore, if you have not purchased a High Availability Add-on (HAA) license, a cache node failure or restart will result in downtime for the entire cluster. To prevent such an incident, you can purchase HAA, which enables redundant, multi-node HA-ready production deployment of the cache.

Note:

All installations include the HAA software with a single-node license. This license is free of cost, no purchase required.

If you wish to enable HAA across multiple nodes, then purchasing an HAA license is required. This will implement full high availability for the cluster in a multi-node HA-ready production setup.

HAA is based on Redis technology.

To do that, take the following steps:

  1. Purchase an HAA license. Contact UiPath for details.
  2. Update the following fields in the cluster_config.json file:
    • fabric.redis.license - enter the HAA license converted to a single base64 string. In bash you can do that using echo 'license_text_here' | base64 -w0.
    • fabric.redis.ha - use true to enable HAA and make sure to also configure the fabric.redis.license parameter. This enables HAA database replication and increases the number of HAA pods to 3. By default, fabric.redis.ha is set to false.
      Note: If redis.ha is enabled, redis.license needs to be set to a license that supports more than two shards.
      "fabric": {
          "redis": { 
              "ha": "true",
              "license": Base64String
          }
      }"fabric": {
          "redis": { 
              "ha": "true",
              "license": Base64String
          }
      }
  3. Rerun the fabric installer:
  • online installations:

    ./install-uipath.sh -i cluster_config.json -f -o output.json --accept-license-agreement./install-uipath.sh -i cluster_config.json -f -o output.json --accept-license-agreement
  • offline installations:

    ./install-uipath.sh -i cluster_config.json -f --install-type offline -o output.json --accept-license-agreement./install-uipath.sh -i cluster_config.json -f --install-type offline -o output.json --accept-license-agreement

Updating the Redis License

To update the Redis license, take the following steps:

  1. Setting up kubectl and ArgoCD access
    1. Enable kubectl access on the primary node. See Enabling kubectl for instructions.
    2. Enable access to ArgoCD. See Accessing ArgoCD for instructions.
  2. Checking the current license status

    To check the status of the current license, run the following Shell command:

    kubectl get rec -n redis-system redis-cluster -o jsonpath='{.status.licenseStatus}' | jqkubectl get rec -n redis-system redis-cluster -o jsonpath='{.status.licenseStatus}' | jq
    • Clusters deployed after the expiry date of the license included in the installer will show the trial 4-shard license that expires in 30 days, as in the following example:



    • Clusters that were already running when the license expired will show the following status:



  3. Updating the existing license
    1. To update the existing license, run the following Shell command:
      kubectl patch application fabric-installer -n argocd \
      --type=json -p '[{"op":"add","path":"/spec/source/helm/parameters/-","value":{"name": "global.redis.license", "value": "<LICENSE_KEY_IN_BASE64>"}}]'kubectl patch application fabric-installer -n argocd \
      --type=json -p '[{"op":"add","path":"/spec/source/helm/parameters/-","value":{"name": "global.redis.license", "value": "<LICENSE_KEY_IN_BASE64>"}}]'


    2. To see if the change was applied, access ArgoCD. See Accessing ArgoCD for instructions.
    3. If the fabric-installer application appears out of sync, and the sync process was not triggered automatically, click the Sync button yourself. This may be happen if you are using an older Automation Suite version.






      Note: There is a small delay between the moment the ArgoCD UI shows the app synced and when the Redis operator successfully applies the new license.
    4. To see logs from the Redis operator when it tries to apply the license, run the following command:
      kubectl logs -n redis-system --since=300s -l name=redis-enterprise-operator -c redis-enterprise-operator --tail=-1 | grep licensekubectl logs -n redis-system --since=300s -l name=redis-enterprise-operator -c redis-enterprise-operator --tail=-1 | grep license


    5. If you try to apply an expired license, or you run the installer that ships with an expired license, you will get the following output:


    6. To update the Redis license used by older installers before running them, update the fabric.redis.license key in the <installer_folder>/defaults.json:


  4. Checking that the new license is applied

    To check if the new license is applied, run the following Shell command:

    kubectl get rec -n redis-system redis-cluster -o jsonpath='{.status.licenseStatus}' | jqkubectl get rec -n redis-system redis-cluster -o jsonpath='{.status.licenseStatus}' | jq

    In the following image you can see that the Redis cluster switched from the trial 30-day license to a single-shard 10-year license.



  • Updating the Redis License

Was this page helpful?

Get The Help You Need
Learning RPA - Automation Courses
UiPath Community Forum
Uipath Logo White
Trust and Security
© 2005-2024 UiPath. All rights reserved.