Skip to content

Commit 3ac403f

Browse files
cli update and minor clarifications
1 parent 1c8767b commit 3ac403f

1 file changed

Lines changed: 33 additions & 31 deletions

File tree

docs/cloud/migrate/automated.mdx

Lines changed: 33 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -66,18 +66,20 @@ support ticket.
6666
single Account that contains your Namespaces.
6767
- Target Temporal Cloud provider/region per cluster. See the list of [current regions](/cloud/regions).
6868
- Server Configuration for each cluster.
69+
- VisibilityStore used by each cluster(e.g. Elasticsearch or SQL)
6970
- For each Namespace:
7071
- Namespace name and its translated cloud-side name. Since Namespaces in Temporal Cloud follow a
7172
[specific format](/cloud/namespaces#temporal-cloud-namespace-name), existing Namespaces must be converted to the new
7273
format.
73-
- Namespace sizing metrics. These are used to properly size cloud-side resources for the migration.
74-
- Custom search attributes (if any). Temporal must ensure that your custom search attributes, specifically when using
74+
- Custom search attributes. Temporal must ensure that your custom search attributes, specifically when using
7575
SQL-based visibility store, are compatible with Temporal Cloud.
76+
- Namespace sizing metrics. These are used to properly size cloud-side resources for the migration.
7677

7778
### Capture cluster configurations
7879

79-
Temporal must review your self-hosted server configurations to ensure compatibility. For modern versions of Temporal
80-
OSS, run the following command against each of your clusters:
80+
Temporal must review your self-hosted server configurations to ensure compatibility.
81+
82+
For newer versions of Temporal OSS, run the following command against each of your clusters:
8183

8284
```
8385
temporal operator cluster describe --address <frontend:7233> --output json
@@ -95,6 +97,19 @@ or
9597
grpcurl -v -plaintext <your temporal address and port> temporal.server.api.adminservice.v1.AdminService.DescribeCluster
9698
```
9799

100+
### Capture custom search attributes
101+
Capture any custom search attributes using one of the following commands:
102+
103+
For Elasticsearch/OpenSearch
104+
```
105+
temporal operator search-attribute list
106+
```
107+
108+
For SQL
109+
```
110+
temporal operator search-attribute list --namespace="your_namespace"
111+
```
112+
98113
### Capture Namespace metrics
99114

100115
It is vital that current usage patterns for production Namespaces are well understood, as this data is used for
@@ -106,43 +121,36 @@ cloud-side resource planning. For each Namespace, collect the following metrics:
106121
[default retention policy](/cloud/limits#default-retention-period) in Temporal Cloud.
107122
- Peak [action per second](/glossary#actions-per-second-aps) (APS). See the section
108123
[below](#how-to-gather-self-hosted-metrics) for instructions on collecting these metrics.
109-
- If you use custom search Attributes:
110-
- provide _CustomSearchAttributeAliases_ of your Namespace (see command below).
111-
- provide the VisibilityStore used (e.g. Elasticsearch or SQL)
112124

113-
Use the following command to capture _CustomSearchAttributeAliases_, if needed:
114-
115-
```
116-
temporal operator namespace describe -n <namespace>
117-
```
118125

119126
### Prepare mTLS certificates
120127

121-
mTLS is used to secure the [S2S Proxy](#s2s-proxy-configuration) communications channel. Generate new certificates following the process outlined
122-
[here](/cloud/certificates#issue-certificates). You will need to provide these certificates as part of your support request.
128+
mTLS is used to secure the [S2S Proxy](#s2s-proxy-configuration) communications channel. Provide a single certificate using the process outlined
129+
[here](/cloud/certificates#issue-certificates).
123130

124131

125132
### Report collected data
126-
Provide all collected data and mTLS certificates to Temporal via a [support ticket](/cloud/support#ticketing).
133+
Provide all collected data to Temporal via a [support ticket](/cloud/support#ticketing).
127134

128135
Use the following template for the collected data.
129136

130137
```
131138
Temporal Cloud Account:
139+
mTLS Certificate:
132140
133141
<for each cluster>
134142
Cluster Name: <name>
135143
Target Cloud/Region: <region>
136144
Type of Visibility Store: <store>
137-
Cluster Configuration:
145+
Cluster Configuration: <temporal cli output>
146+
Custom Search Attributes (if Elasticsearch/OpenSearch): <temporal cli output>
138147
139148
Namespaces:
140149
<for each Namespace>
141150
Namespace Name: <name>
142151
Translated Name: <name>
143-
Metrics:
144-
Peak APS: <aps>
145-
Custom Search Attributes: <temporal cli output>
152+
Custom Search Attributes (if SQL): <temporal cli output>
153+
Metrics: <metrics data>
146154
<end>
147155
<end>
148156
```
@@ -244,7 +252,7 @@ currentClusterName: _NO_CHANGE_
244252
clusterInformation:
245253
_NO_CHANGE_:
246254
enabled: true
247-
initialFailoverVersion: CHANGEME # use unique number between 1 and 100 for each server
255+
initialFailoverVersion: CHANGEME # set in the range 2-99. use a unique number per cluster
248256
rpcName: _NO_CHANGE_
249257
rpcAddress: _NO_CHANGE_
250258
```
@@ -263,6 +271,11 @@ The following sample output is expected:
263271
"isGlobalNamespaceEnabled": true
264272
```
265273
274+
### Verify current cluster utilization
275+
It is important to ensure that your production cluster has been allocated enough resources to support the migration. In particular,
276+
it is important to verify that your persistence/database layer has plenty of CPU and I/O capacity.
277+
278+
266279
## Phase 3: Testing
267280
268281
Testing should proceed using either a newly created Namespace or else one that is considered to be non-production. In
@@ -493,49 +506,38 @@ The answer depends on your specific situation. However, automated migration is m
493506
In contrast, automated migration may not be the best solution if your self-hosted clusters do not meet the [minimum requirements](#limitations).
494507

495508
### Can I split Workflows from a single source Namespace into multiple cloud-side Namespaces?
496-
497509
No. All Workflows will be migrated.
498510

499511
### Can I combine manual and auto migration?
500-
501512
No. Auto migration requires a "fresh" target cloud-side Namespace (one that has never had a running Workflow).
502513
If Workflows were manually migrated to a cloud-side Namespace, then this Namespace would not be suitable as an auto-migration target.
503514

504515
### Why does it matter if custom search attributes are used?
505-
506516
Custom search attributes must be mapped to a Namespace in Temporal Cloud. They matter because configurations in a self-hosted environment
507517
may not be directly compatible with Temporal Cloud, potentially requiring additional migration work. The exact process can also differ
508518
depending on the type of visibility data store used.
509519

510520
### What Workflows are migrated by default?
511-
512521
All Workflows are migrated by default. For closed Workflows, you may specify a date range to be migrated. Your cloud-side Namespace must
513522
be configured with your desired retention period prior to starting the migration.
514523

515524
### What can I do to speed up an automated migration?
516-
517525
The #1 speed optimization is to limit the time range for closed Workflows. This will reduce the amount of data required to be
518526
migrated and in many cases will dramatically reduce overall migration time.
519527

520528
### Is the migration of Schedules supported?
521-
522529
Yes. Under the hood, Schedules are essentially Workflows.
523530

524531
### I have a long retention period for my Workflows. Is this compatible with Temporal Cloud?
525-
526532
Occasionally, self-hosted [retention periods](/temporal-service/temporal-server#retention-period) are in excess of what
527533
is [supported](/cloud/limits#default-retention-period) in Temporal Cloud. In these cases it is recommended to utilize
528534
[archival](/temporal-service/archival) to store closed Workflows that cannot be migrated. In general, archival is
529535
recommended over large retention periods since the extra data can stress the persistence layer of the system.
530536

531537
### I am using payload encryption in my self-hosted Temporal cluster. Is this supported in cloud?
532-
533538
Yes. If payloads are already [encrypted](/payload-codec#encryption) in your self-hosted server via data converter, then
534539
they will remain encrypted during and after migration.
535540

536-
537541
### I would like to enable payload encryption as part of the migration. Is this supported?
538-
539542
The automated migration tooling cannot add payload encryption. To encrypt payloads sent to Temporal Cloud, you must encrypt
540543
payloads in your cluster before starting the automated migration process.
541-

0 commit comments

Comments
 (0)