UiPath Documentation
automation-suite
2.2510
true
Automation Suite on OpenShift installation guide

Disaster recovery - Installing the secondary cluster

Install secondary cluster for disaster recovery in Automation Suite multi-site deployments.

To install the secondary Automation Suite cluster in an Active/Passive deployment, take the following steps.

  1. Generate or copy the input.json file from the primary Automation Suite cluster. For details, refer to Generating or copying the configuration file of the primary cluster.
  2. Update the input.json file with the parameters specific to the secondary Automation Suite cluster.
  3. Resume the Automation Suite installation.
  4. Switch off inactive products if you use an Active/Passive configuration.

Generating or copying the configuration file of the primary cluster​

Generate a new input.json file or copy it from the primary cluster.

uipathctl manifest get-revision --namespace <uipath> >> /path/to/new/input.json
uipathctl manifest get-revision --namespace <uipath> >> /path/to/new/input.json

Updating the configuration file​

Update the input.json file with the parameters specific to the secondary Automation Suite cluster by taking the following steps:

  1. Turn off the unsupported products.

    Set all the products that are not supported in multi-site to false.

    • For an Active/Passive configuration, disable the products that do not support Active/Passive. For details on Active/Passive support at product level, refer to the table in Disaster recovery - Active/Passive. The following example shows how to disable products:
      {
        "process_mining": {
          "enabled": false
        },
        "automation_hub": {
          "enabled": false
        },
        "insights": {
          "enabled": false
        }
      }
      {
        "process_mining": {
          "enabled": false
        },
        "automation_hub": {
          "enabled": false
        },
        "insights": {
          "enabled": false
        }
      }
      
    Note:

    Make sure that you enable the platform service as shown in the following example:

    "platform": {
    "enabled": true
    },
    "platform": {
    "enabled": true
    },
    
  2. Update the input.json file with the parameters specific to the secondary cluster. You must provide the kubeconfig of the primary cluster, as it is required for the secondary cluster to access the configurations made on the primary cluster.

    "fqdn" : "<global traffic manager fqdn>"
    "cluster_fqdn": "<fqdn of the secondary cluster>",
    
    "multisite": {
        "enabled": true,
        "primary": false,
        "other_kube_config": "[base64 encoded kubeconfig]"
     }
    "fqdn" : "<global traffic manager fqdn>"
    "cluster_fqdn": "<fqdn of the secondary cluster>",
    
    "multisite": {
        "enabled": true,
        "primary": false,
        "other_kube_config": "[base64 encoded kubeconfig]"
     }
    

    For details, refer to Advanced installation experience.

  3. You must keep the namespace in the secondary cluster the same as in the primary cluster because, during the secondary installation, several configurations are copied from the primary cluster.

    "namespace": "<namespace same as primary>"
    "namespace": "<namespace same as primary>"
    
  4. You must ensure that the namespaces for ArgoCD and Istio are set correctly.

    "ingress": {
      "namespace": "<namespace where istio is installed>",
    }
    "argocd": {
      "application_namespace": "<namespace where istio is installed>"
    }
    "ingress": {
      "namespace": "<namespace where istio is installed>",
    }
    "argocd": {
      "application_namespace": "<namespace where istio is installed>"
    }
    
  5. Some requests from the secondary cluster are forwarded to the primary cluster. To support this behavior, the secondary cluster must trust the primary cluster's root CA. Add the path to the primary cluster's CA certificate to the additional_ca_certs field in input.json. The CA certificate is located in the istio-ingressgateway-certs secret in the primary cluster's Istio namespace. Decode the value under the ca.crt key and save it as a .pem file.

    "additional_ca_certs": "<path to PEM file containing the primary cluster CA certificate>"
    "additional_ca_certs": "<path to PEM file containing the primary cluster CA certificate>"
    

    If this configuration is not applied, services may fail with the following error:

    System.Net.Http.HttpRequestException: The SSL connection could not be established, see inner exception.

    System.Security.Authentication.AuthenticationException: The remote certificate is invalid because of errors in the certificate chain: UntrustedRoot

  6. Ensure that the Argo CD instance can manage the <uipath> namespace if the <uipath> namespace is different from the <argocd> namespace. Run the following command:

    oc label namespace <uipath> argocd.argoproj.io/managed-by=<argocd>
    oc label namespace <uipath> argocd.argoproj.io/managed-by=<argocd>
    

    After applying this configuration, restart the Argo CD application controller (StatefulSet) and the server (Deployment).

  7. If Istio is managed externally (not by uipathctl), update the following parameters in the WASM plugin configuration:

    • fqdn - Change the value from the cluster_fqdn to the traffic manager FQDN.
    • uipath_service_namespace - Set this to the same value as the namespace field in input.json.If these values are not updated, Orchestrator may display the following errors:
    • URL is invalid
    • Routing error occurs in the WASM plugin: error status returned by host: bad argument

Resume the installation​

Once the parameters in the previous step are provided or modified in the input.json, you can resume the installation. For details, refer to Installing Automation Suite.

Note:

You must perform the Automation Suite installation using the uipathctl installer. Note that you do not need to generate a new input.json.

Switching off inactive products​

Important:

This step is required. Skipping it may cause some services to fail.

If you deployed Automation Suite in Active/Passive mode, switch off the inactive products using the following command.

uipathctl cluster maintenance enable
uipathctl cluster maintenance enable

Was this page helpful?

Connect

Need help? Support

Want to learn? UiPath Academy

Have questions? UiPath Forum

Stay updated