- Overview
- Requirements
- Pre-installation
- Preparing the installation
- Downloading the installation packages
- Configuring the OCI-compliant registry
- Granting installation permissions with cluster roles
- Granting installation permissions without cluster roles
- Installing and configuring the service mesh
- Installing and configuring the GitOps tool
- Installing the External Secrets Operator
- Deploying Redis through OperatorHub
- Applying miscellaneous configurations
- Running uipathctl
- Installation
- Disaster recovery - Installing the secondary cluster
- Post-installation
- Migration and upgrade
- Monitoring and alerting
- Cluster administration
- Product-specific configuration
- Orchestrator advanced configuration
- Configuring Orchestrator parameters
- Configuring appSettings
- Configuring the maximum request size
- Overriding cluster-level storage configuration
- Configuring NLog
- Saving robot logs to Elasticsearch
- Configuring credential stores
- Configuring encryption key per tenant
- Cleaning up the Orchestrator database
- Skipping host library installation
- AI Trust Layer
- Troubleshooting
- 500 errors and rate limiting on S3 requests in ODF
- External Secrets troubleshooting
- Configuring CSI driver tolerations for ODF 4.20
- Temporal as a Service troubleshooting
- AI Center and Document Understanding pods fail to start with TLS certificate verification enabled
- Studio Desktop cannot load Integration Service connectors and activities
- TLS certificate validation errors
- Manual ArgoCD NetworkPolicy mitigation (GHSA-47m3-95c7-g2g8)
- Configuring resource requests and limits for uipathctl-created workloads
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.
- Generate or copy the
input.jsonfile from the primary Automation Suite cluster. For details, refer to Generating or copying the configuration file of the primary cluster. - Update the
input.jsonfile with the parameters specific to the secondary Automation Suite cluster. - Resume the Automation Suite installation.
- 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:
-
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
platformservice as shown in the following example:"platform": { "enabled": true },"platform": { "enabled": true }, - 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:
-
Update the
input.jsonfile 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.
-
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>" -
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>" } -
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_certsfield ininput.json. The CA certificate is located in theistio-ingressgateway-certssecret in the primary cluster's Istio namespace. Decode the value under theca.crtkey and save it as a.pemfile."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 -
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).
-
If Istio is managed externally (not by
uipathctl), update the following parameters in the WASM plugin configuration:fqdn- Change the value from thecluster_fqdnto the traffic manager FQDN.uipath_service_namespace- Set this to the same value as thenamespacefield ininput.json.If these values are not updated, Orchestrator may display the following errors:URL is invalidRouting 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.
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
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