- Overview
- Requirements
- Pre-installation
- Installation
- Post-installation
- Migration and upgrade
- Monitoring and alerting
- Cluster administration
- Product-specific configuration
- Troubleshooting
Storage
In addition to Microsoft SQL Server, the Automation Suite cluster requires a storage component to store the files. Automation Suite requires the objectstore and the block/file storage, depending on the service type you choose.
The following services require the storage component. These are only necessary if you have opted to enable them as part of the Automation Suite installation or later.
Service |
Storage type |
Purpose |
Estimate |
---|---|---|---|
Orchestrator |
Objectstore |
|
Typically, a package is 5 Mb, and buckets, if any, are less than 1 Mb. A mature enterprise deploys around 10 GB of packages and 12 GB of Queues. |
Action Center |
Objectstore |
|
Typically, a document takes 0.15 Mb, and the forms to fill take an additional 0.15 Kb. In a mature enterprise, this can total 4 GB. |
Test Manager |
Objectstore |
|
Typically, all files and attachments add up to approximately 5 GB. |
Insights |
Blockstore |
|
2 GB is required for enablement, with the storage footprint growing with the number. A well-established enterprise-scale deployment requires another few GB for all the dashboards. Approximately 10GB of storage should be sufficient. |
Integration Service | Objectstore |
| Connectors vary in size, but installing all the available connectors should consume less than 100 MB. Trigger events vary in number based on usage, but 5 GB should be sufficient. |
Studio Web | Filestore |
|
|
Apps |
Objectstore |
|
Typically, the database takes approximately 5 GB, and a typical complex app consumes about 15 Mb. |
AI Center |
Objectstore / Filestore |
|
A typical and established installation will consume 8 GB for five packages and an additional 1 GB for the datasets. A pipeline may consume an additional 50 GB of block storage, but only when actively running. |
Document Understanding |
Objectstore |
|
In a mature deployment, 12GB will go to the ML model, 17GB to the OCR, and 50GB to all documents stored. |
Task Mining |
Objectstore |
|
About 200 GB of activity log data should be analyzed to suggest meaningful automation. Highly repetitive tasks, however, may require much less data. |
Automation Suite Robots |
Filestore |
|
Typically, a mature enterprise deploys around 10 GB of the packages. |
Process Mining |
Objectstore |
|
The minimal footprint is only used to store the SQL files. Approximately a GB of storage should be enough in the beginning. |
The following shared suite services require the storage component. These are only necessary if you opted to install them as part of the Automation Suite installation.
Service |
Storage type |
Purpose |
Estimate |
---|---|---|---|
Monitoring |
Block storage |
Kubernetes and infrastructure related metrics data |
Approximately around 100 GB to store the last ten days of monitoring data |
Logging |
Block storage |
Application running logs |
About 20 GB to keep the previous few days of the logs |
Kubernetes |
Objectstore |
Supported authentication |
---|---|---|
EKS |
Amazon S3 |
|
AKS |
Azure Storage (blob) |
|
Additionally, you may have to enable the following CORS policy at the storage account/bucket level if you face any CORS-related error during the S3 connection while using the Automation Suite cluster.
{{fqdn}}
with the FQDN of the Automation Suite cluster in the following CORS policy.
The following sample shows the CORS policy in JSON format:
[
{
"AllowedHeaders": [
"*"
],
"AllowedMethods": [
"POST",
"GET",
"HEAD",
"DELETE",
"PUT"
],
"AllowedOrigins": [
"https://{{fqdn}}"
],
"ExposeHeaders": [
"etag",
"x-amz-server-side-encryption",
"x-amz-request-id",
"x-amz-id-2"
],
"MaxAgeSeconds": 3000
}
]
[
{
"AllowedHeaders": [
"*"
],
"AllowedMethods": [
"POST",
"GET",
"HEAD",
"DELETE",
"PUT"
],
"AllowedOrigins": [
"https://{{fqdn}}"
],
"ExposeHeaders": [
"etag",
"x-amz-server-side-encryption",
"x-amz-request-id",
"x-amz-id-2"
],
"MaxAgeSeconds": 3000
}
]
The following sample shows the CORS policy in XML format:
<CORSConfiguration>
<CORSRule>
<AllowedOrigin>{{fqdn}}</AllowedOrigin>
<AllowedMethod>HEAD</AllowedMethod>
<AllowedMethod>GET</AllowedMethod>
<AllowedMethod>PUT</AllowedMethod>
<AllowedMethod>POST</AllowedMethod>
<AllowedMethod>DELETE</AllowedMethod>
<AllowedHeader>*</AllowedHeader>
<MaxAgeSeconds>3000</MaxAgeSeconds>
<ExposeHeader>x-amz-server-side-encryption</ExposeHeader>
<ExposeHeader>x-amz-request-id</ExposeHeader>
<ExposeHeader>x-amz-id-2</ExposeHeader>
<ExposeHeader>etag</ExposeHeader>
</CORSRule>
</CORSConfiguration>
<CORSConfiguration>
<CORSRule>
<AllowedOrigin>{{fqdn}}</AllowedOrigin>
<AllowedMethod>HEAD</AllowedMethod>
<AllowedMethod>GET</AllowedMethod>
<AllowedMethod>PUT</AllowedMethod>
<AllowedMethod>POST</AllowedMethod>
<AllowedMethod>DELETE</AllowedMethod>
<AllowedHeader>*</AllowedHeader>
<MaxAgeSeconds>3000</MaxAgeSeconds>
<ExposeHeader>x-amz-server-side-encryption</ExposeHeader>
<ExposeHeader>x-amz-request-id</ExposeHeader>
<ExposeHeader>x-amz-id-2</ExposeHeader>
<ExposeHeader>etag</ExposeHeader>
</CORSRule>
</CORSConfiguration>
To configure the objectstore, see External Objectstore Configuration.
Since the containers are created within the scope of the Azure Storage Account, it is recommended to have a separate container for each service.
Similarly, in AWS, it is highly recommended to have a dedicated bucket for each service installed on Automation Suite. However, if the bucket is created globally, you may face limitations in providing the dedicated bucket for each service. In this case, you can configure a single bucket and use it for all purposes.
make
permissions. Alternatively, you can provision the required containers/buckets before installation and their information to
the installer.
Required buckets for Integration Service
In an AKS installation, you must create multiple blob storage buckets in Azure Storage. This step is not required in an EKS installation, which uses single buckets.
You must create the following buckets manually prior to installation:
-
gallupx-poller-data
-
gallupx-job-engine-state
-
gallupx-notification-objects
-
gallupx-webhook
-
gallupx-execution-trace
Storage |
Requirement |
---|---|
Objectstore |
500 GB |
The size of the objectstore depends on the size of the deployed and running automation. Therefore, it can be challenging to provide an accurate objectstore estimate initially during the installation. You can start with an objectstore size of 350 GB to 500 GB. To understand the usage of the objectstore, see Storage estimate for each Automation Suite component.
-
As your automation scales, you may need to account for the increase in your objectstore size.
Block storage must have CSI drivers configured with the Kubernetes storage classes.
The following table provides details of the block storage, storage class, and provisioner:
Cloud / Kubernetes |
Storage |
StorageClass |
Provisioner |
---|---|---|---|
AWS |
EBS Volumes |
|
|
Azure |
Azure Manage Disk |
Premium LRS Disk |
|
You can follow the official guides from AWS and Azure to create a storage class in your EKS and AKS clusters.
storage_class
parameter in the input.json
file.
-
Sometimes, the EKS or AKS cluster installs the CSI driver and provides the storage class. If these storage classes are not configured, you must configure them before the Automation Suite installation.
-
You must make the storage class for the block storage the default one, as shown in the following example.
Example
input.json
file during installation:
Configuration | input.json | StorageClass |
---|---|---|
Azure |
|
|
AWS |
|
|
Configuration |
Requirement |
---|---|
Block storage |
50 GB |
The size of the block store depends on the size of the deployed and running automation. Therefore, it can be challenging to provide an accurate estimate initially during the installation. You can start with a block storage size of 50 GB. To understand the usage of the block store, see Storage estimate for each Automation Suite component.
File storage must have CSI drivers configured with the Kubernetes storage classes.
Cloud / Kubernetes |
Storage |
StorageClass |
Provisioner |
---|---|---|---|
AWS |
EFS |
|
|
Azure |
Azure Files |
azurefile-csi-premium *
|
|
azurefile-csi-premium
storage class for Studio Web on AKS.
You can follow the official guides from AWS and Azure to create a storage class in your EKS and AKS clusters.
storage_class_single_replica
parameter in the input.json
file.
Sometimes, the EKS or AKS cluster installs the CSI driver and provides the storage class. If this storage class is not configured, you must configure it before the Automation Suite installation.
Example
input.json
during the installation:
Configuration |
|
|
---|---|---|
Azure |
|
|
AWS |
|
Note:
Replace
$(EFS_ID) with the actual File Share ID you created while provisioning infrastructure.
|
Storage class for the file share must have the required permissions set to 700 for the directory and files.
UID
and GID
must be set to 1000 in Azure, and gidRangeStart
and gidRangeEnd
to 1000 and 2000, respectively, in AWS.
Storage |
Requirement |
---|---|
File storage |
510 GB |
The size of the file store depends on the size of the deployed and running automation. Therefore, it can be challenging to provide an actual estimate initially, during the installation. However, you should expect approximately 510 GB of storage size to be enough to run ten concurrent training pipelines and for Automation Suite Robots. To understand the usage of the filestore, see Storage estimate for each Automation Suite component.
As your automation scales, you may need to account for an increase in the size of your file storage.
You must manually create the following queues in your cloud provider prior to installation. These queues are required to support events and webhooks.
gallupx-debug-engine-tasks
gallupx-engine-tasks
gallupx-cron-tasks
gallupx-tick-tasks
gallupx-event-tasks
gallupx-notification-tasks
gallupx-webhook-engine-tasks
gallupx-fps-engine-tasks
To back up the Automation Suite cluster, you need an additional objectstore to back up the cluster configuration and user data.
The following table describes the supported storage for the backup:
Kubernetes |
Objectstore |
---|---|
EKS |
AWS S3 |
AKS |
Azure Storage Account |
A separate objectstore is recommended for storing the backup.
For general information on workload identity, see Workload identity configuration.
az role assignment create --assignee $userAssignedManagedIdentityObjectId --role "Storage Account Contributor" --scope "/subscriptions/$($infraJson.subscription_id)/resourceGroups/$(TARGET_RG)/providers/Microsoft.Storage/storageAccounts/$(STORAGE_ACCOUNT_NAME)"
az role assignment create --assignee $userAssignedManagedIdentityObjectId --role "Storage Blob Data Owner" --scope "/subscriptions/$($infraJson.subscription_id)/resourceGroups/$(TARGET_RG)/providers/Microsoft.Storage/storageAccounts/$(STORAGE_ACCOUNT_NAME)"
az role assignment create --assignee $userAssignedManagedIdentityObjectId --role "Storage Queue Data Contributor" --scope "/subscriptions/$($infraJson.subscription_id)/resourceGroups/$(TARGET_RG)/providers/Microsoft.Storage/storageAccounts/$(STORAGE_ACCOUNT_NAME)"
az role assignment create --assignee $userAssignedManagedIdentityObjectId --role "Storage Account Contributor" --scope "/subscriptions/$($infraJson.subscription_id)/resourceGroups/$(TARGET_RG)/providers/Microsoft.Storage/storageAccounts/$(STORAGE_ACCOUNT_NAME)"
az role assignment create --assignee $userAssignedManagedIdentityObjectId --role "Storage Blob Data Owner" --scope "/subscriptions/$($infraJson.subscription_id)/resourceGroups/$(TARGET_RG)/providers/Microsoft.Storage/storageAccounts/$(STORAGE_ACCOUNT_NAME)"
az role assignment create --assignee $userAssignedManagedIdentityObjectId --role "Storage Queue Data Contributor" --scope "/subscriptions/$($infraJson.subscription_id)/resourceGroups/$(TARGET_RG)/providers/Microsoft.Storage/storageAccounts/$(STORAGE_ACCOUNT_NAME)"
input.json
configuration for an
Azure storage
account:"external_object_storage": {
"enabled": true,
"storage_type": "azure",
"account_name": "storaccid5730469",
"azure_fqdn_suffix": "core.windows.net",
"use_managed_identity": false,
"use_workload_identity": true
},
"external_object_storage": {
"enabled": true,
"storage_type": "azure",
"account_name": "storaccid5730469",
"azure_fqdn_suffix": "core.windows.net",
"use_managed_identity": false,
"use_workload_identity": true
},
- Storage estimate for each Automation Suite component
- UiPath® platform services
- Shared suite services
- Objectstore
- Configuring the CORS policy
- Configuration
- Storage requirements
- Block storage
- Configuration
- Storage requirements
- File storage
- Configuration
- Storage requirements
- Queues
- Backup and restore
- Storage authentication
- Workload identity-based access to your storage account from AKS