- Overview
- Requirements
- Installation
- Post-installation
- Migration and upgrade
- Upgrading Automation Suite on EKS/AKS
- Step 1: Moving the Identity organization data from standalone to Automation Suite
- Step 2: Restoring the standalone product database
- Step 3: Backing up the platform database in Automation Suite
- Step 4: Merging organizations in Automation Suite
- Step 5: Updating the migrated product connection strings
- Step 6: Migrating standalone Orchestrator
- Step 7: Migrating standalone Insights
- Step 8: Migrating standalone Test Manager
- Step 9: Deleting the default tenant
- Performing a single tenant migration
- Migrating from Automation Suite on Linux to Automation Suite on EKS/AKS
- Monitoring and alerting
- Cluster administration
- Product-specific configuration
- Troubleshooting
- The backup setup does not work due to a failure to connect to Azure Government
- Pods in the uipath namespace stuck when enabling custom node taints
- Unable to launch Automation Hub and Apps with proxy setup
- Pods cannot communicate with FQDN in a proxy environment
- Test Automation SQL connection string is ignored
- EKS backup failure due to Velero version
- Velero backup fails with FailedValidation error
- Accessing FQDN returns RBAC access denied error
- Manual ArgoCD NetworkPolicy mitigation (GHSA-47m3-95c7-g2g8)
Rotating Blob Storage Credentials
How blob storage credential rotation works for Process Mining in Automation Suite, including Kubernetes secrets that must be updated.
Introduction
To rotate the blob storage credentials for Process Mining in Automation Suite an administrator will need to have access to the Kubernetes cluster secrets using either kubectl, lens, or another tool. The stored secrets detailed below must be updated with the new credentials, and the the pods for Airflow and Process Mining need to be restarted to make sure all pods for these service receive the new credentials.
The storage credentials need to be updated in both the UiPath namespace and the Airflow namespace.
The stored secret values are base 64 encoded. If using kubectl you will need to encode the values before updating them in the cluster. If using Lens (k8slens) then the Lens tooling can do the decode/encode automatically.
Examples
The following example shows how to update secrets with kubectl:
kubectl patch secret processmining-external-storage-secret -n uipath -p "{\"data\":{\"ACCOUNTKEY\":\"<new_key_b64>\"}}"
kubectl patch secret processmining-external-storage-secret -n uipath -p "{\"data\":{\"ACCOUNTKEY\":\"<new_key_b64>\"}}"
Ceph Secrets
UiPath Namespace
processmining-service-rook-ceph-secret.OBJECT_STORAGE_ACCESSKEYprocessmining-service-rook-ceph-secret.OBJECT_STORAGE_SECRETKEY
Airflow Namespace
airflow-rook-ceph-secret.OBJECT_STORAGE_ACCESSKEYairflow-rook-ceph-secret.OBJECT_STORAGE_SECRETKEYprocessmining-service-rook-ceph-secret.OBJECT_STORAGE_ACCESSKEYprocessmining-service-rook-ceph-secret.OBJECT_STORAGE_SECRETKEYceph-object-store-secret.OBJECT_STORAGE_ACCESSKEYceph-object-store-secret.OBJECT_STORAGE_SECRETKEY
Minio Secrets
UiPath Namespace
processmining-external-storage-secret.ACCESSKEYprocessmining-external-storage-secret.SECRETKEY
Airflow NameSpace
processmining-external-storage-secret.ACCESSKEYprocessmining-external-storage-secret.SECRETKEYprocessmining-external-storage-secret.connection
S3 Secrets
UiPath Namespace
processmining-external-storage-secret.ACCESSKEYprocessmining-external-storage-secret.SECRETKEY
Airflow NameSpace
processmining-external-storage-secret.ACCESSKEYprocessmining-external-storage-secret.SECRETKEYprocessmining-external-storage-secret.connection
Azure Secrets
UiPath Namespace
processmining-external-storage-secret.ACCOUNTNAMEprocessmining-external-storage-secret.ACCOUNTKEY
Airflow Namespace
processmining-external-storage-secret.ACCOUNTNAMEprocessmining-external-storage-secret.ACCOUNTKEYprocessmining-external-storage-secret.connection
Azure connection string is URL encoded; the string will need to be decoded, have the access key updated, then re-encoded.
urlencode -d "wasb%3A%2F%2Fazureuser%40%3Fextra__wasb__connection_string%3DDefaultEndpointsProtocol%3Dhttps%3BEndpointSuffix%3Dcore.windows.net%3BAccountName%3Dazureuser%3BAccountKey%3DACCOUNT_KEY%3BBlobEndpoint%3Dhttps%3A%2F%2Fexample.blob.core.windows.net%2F%3BFileEndpoint%3Dhttps%3A%2F%2Fexample.file.core.windows.net%2F%3BQueueEndpoint%3Dhttps%3A%2F%2Fexample.queue.core.windows.net%2F%3BTableEndpoint%3Dhttps%3A%2F%2Fexample.table.core.windows.net%2F%26extra__wasb__sas_token%3D%26extra__wasb__shared_access_key%3D%26extra__wasb__tenant_id%3D"
urlencode "wasb://azureuser@?extra__wasb__connection_string=DefaultEndpointsProtocol=https;EndpointSuffix=core.windows.net;AccountName=azureuser;AccountKey=ACCOUNT_KEY;BlobEndpoint=https://example.blob.core.windows.net/;FileEndpoint=https://example.file.core.windows.net/;QueueEndpoint=https://example.queue.core.windows.net/;TableEndpoint=https://example.table.core.windows.net/&extra__wasb__sas_token=&extra__wasb__shared_access_key=&extra__wasb__tenant_id="
urlencode -d "wasb%3A%2F%2Fazureuser%40%3Fextra__wasb__connection_string%3DDefaultEndpointsProtocol%3Dhttps%3BEndpointSuffix%3Dcore.windows.net%3BAccountName%3Dazureuser%3BAccountKey%3DACCOUNT_KEY%3BBlobEndpoint%3Dhttps%3A%2F%2Fexample.blob.core.windows.net%2F%3BFileEndpoint%3Dhttps%3A%2F%2Fexample.file.core.windows.net%2F%3BQueueEndpoint%3Dhttps%3A%2F%2Fexample.queue.core.windows.net%2F%3BTableEndpoint%3Dhttps%3A%2F%2Fexample.table.core.windows.net%2F%26extra__wasb__sas_token%3D%26extra__wasb__shared_access_key%3D%26extra__wasb__tenant_id%3D"
urlencode "wasb://azureuser@?extra__wasb__connection_string=DefaultEndpointsProtocol=https;EndpointSuffix=core.windows.net;AccountName=azureuser;AccountKey=ACCOUNT_KEY;BlobEndpoint=https://example.blob.core.windows.net/;FileEndpoint=https://example.file.core.windows.net/;QueueEndpoint=https://example.queue.core.windows.net/;TableEndpoint=https://example.table.core.windows.net/&extra__wasb__sas_token=&extra__wasb__shared_access_key=&extra__wasb__tenant_id="