- 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
- 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
Overview
Architecture and topology for Active/Passive and Active/Active Automation Suite deployments.
Diagrams
The following diagram depicts a regular Active/Passive deployment of Automation Suite:
Requirements
The following hardware and infrastructure components are required for a multi-site deployment.
Global Traffic Manager (GTM)
The GTM distributes traffic across your Automation Suite multi-site deployment. It must be highly available and immune to failure at any single deployment site. The GTM must also support health checks that isolate a faulty site quickly. The GTM is not mandatory, but it is recommended for a quick switchover.
When configuring the GTM for Active/Passive deployments, use /orchestrator_/api/status as the health endpoint. This is critical for effective disaster recovery management.
Load balancer
Every site needs a local load balancer that can load-balance traffic to any node configured in the same site.
Node
Both sites must have an identical number of nodes. For each site, you must configure the cluster and nodes using the documentation in Kubernetes cluster and nodes. For details, refer to Automation Suite Install Sizing Calculator.
SQL database
An external SQL server is required to store the data. For disaster recovery, you need Always On Availability Groups (or Amazon RDS's MSSQL with ReadReplica) with a primary SQL server in Site 1 and at least one secondary SQL server (ReadReplica) physically located in Site 2, with data sync enabled. A SQL listener is deployed on top of the SQL server, and both clusters are configured to use the address of the same listener.
PostgreSQL database
Process Mining, Autopilot for Developers, and Temporal as a Service (TaaS) require an external PostgreSQL server. For disaster recovery, only the Autopilot for Developers databases must be replicated to the secondary site. The Process Mining/Airflow database does not require cross-site replication, but a PostgreSQL instance is still required at each site. TaaS is not supported in the secondary cluster; it is supported only in the primary site in an Active/Passive deployment.
Configure a primary PostgreSQL server in Site 1 with physical streaming replication to at least one read-only replica in Site 2, or use the managed provider's replication feature, such as Amazon RDS Read Replicas, Aurora PostgreSQL Global Database, or Azure Database for PostgreSQL Flexible Server geo-replicas.
PostgreSQL supports only one writable primary at a time, so both the active and passive clusters must use the current primary database endpoint. During disaster recovery, once the Site 2 replica is promoted to primary, update the database endpoint in both sites to point to the newly promoted primary. To simplify failover, use a DNS record for the database endpoint and update it during failover.
Objectstore
Any files or packages uploaded to products are stored in the objectstore. For greater resilience to failure, Automation Suite deployments require an external objectstore.
For effective disaster recovery, two objectstore instances are required, one in each data center. At any given time, only one objectstore instance must be actively used for reading and writing by both clusters, complemented by asynchronous replication to the secondary instance.
Temporal as a Service (TaaS)
If Maestro is enabled, only one cluster can actively run TaaS at a time. On the passive cluster, scale all TaaS deployments to zero replicas. If both clusters connect to the same PostgreSQL persistence store simultaneously, lock contention occurs and degrades performance. For details, refer to Temporal as a Service troubleshooting.
Load balancer and DNS configuration
This section outlines the DNS architecture and routing logic for a system designed to operate in both normal and disaster recovery scenarios.
DNS architecture
To facilitate traffic management and cluster-specific service accessibility, two tiers of DNS configuration are employed.
- FQDN: The application FQDN is the primary domain used by end users to access the application interface. This value corresponds to the
fqdnfield ininput.json. For details, refer to Active/Passive configurations. - Cluster-specific FQDNs: In addition to the main application FQDN, each cluster requires its own FQDN for administrative and monitoring tools. This value is defined under the
cluster_fqdnfield in each cluster'sinput.json. For details, refer to Active/Passive configurations. - Subdomains: For comprehensive service access, a set of subdomains is configured for both the application FQDN and each cluster-specific FQDN. These include:
- FQDN:
apps.<domain>- used by Apps.insights.<domain>- used by for Insights.
- Cluster-specific FQDN:
alm.<domain>- used by ArgoCD and for deployment management. This is required for both Active (primary) and Passive (secondary) clusters.monitoring.<domain>- used for observability and alerts. This is required for both Active (primary) and Passive (secondary) clusters.All subdomains are directed to the same load balancer as their respective root domain to maintain consistency and ease of routing.
- FQDN:
DNS routing logic
The DNS routing logic ensures that user traffic is directed to the appropriate load balancer depending on the system state
- either during normal operation or disaster recovery.
-
Normal Operations (Primary Cluster is Active) In standard operation mode, DNS routes traffic as described in the following table:
FQDN type Routing target FQDN Primary Cluster Load Balancer Primary Cluster FQDN Primary Cluster Load Balancer Secondary Cluster FQDN Secondary Cluster Load Balancer -
Disaster Recovery (Secondary Cluster is Active) If the primary cluster fails, the system enters disaster recovery mode. In this state, DNS is adjusted to ensure service continuity:
FQDN type Routing target FQDN Secondary Cluster Load Balancer Primary Cluster FQDN Primary Cluster Load Balancer*(unchanged)* Secondary Cluster FQDN Secondary Cluster Load Balancer*(unchanged)*