Skip to content

Commit beaa73b

Browse files
authored
Add compute_config to WorkerDeploymentVersionSummary (#756)
<!-- Describe what has changed in this PR --> **What changed?** - Add compute_config to WorkerDeploymentVersionSummary - Cleaned up "experimental" comments from WV messages. <!-- Tell your future self why have you made these changes --> **Why?** - Need compute config summary for UI - WV is now GA, so "experimental" tags are not correct. <!-- Are there any breaking changes on binary or code level? --> **Breaking changes** None. <!-- If this breaks the Server, please provide the Server PR to merge right after this PR was merged. --> **Server PR** No new APIs added.
1 parent afa3cce commit beaa73b

10 files changed

Lines changed: 123 additions & 57 deletions

File tree

openapi/openapiv2.json

Lines changed: 45 additions & 17 deletions
Large diffs are not rendered by default.

openapi/openapiv3.yaml

Lines changed: 57 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -9377,7 +9377,14 @@ components:
93779377
type: object
93789378
additionalProperties:
93799379
$ref: '#/components/schemas/ComputeConfigScalingGroup'
9380-
description: "Each scaling group describes a compute config for a specific subset of the worker \n deployment version: covering a specific set of task types and/or regions.\n Having different configurations for different task types, allows independent\n tuning of activity and workflow task processing (for example).\n\n The key of the map is the ID of the scaling group used to reference it in subsequent\n update calls."
9380+
description: |-
9381+
Each scaling group describes a compute config for a specific subset of the worker
9382+
deployment version: covering a specific set of task types and/or regions.
9383+
Having different configurations for different task types, allows independent
9384+
tuning of activity and workflow task processing (for example).
9385+
9386+
The key of the map is the ID of the scaling group used to reference it in subsequent
9387+
update calls.
93819388
description: |-
93829389
ComputeConfig stores configuration that helps a worker control plane
93839390
controller understand *when* and *how* to respond to worker lifecycle
@@ -9395,7 +9402,10 @@ components:
93959402
- TASK_QUEUE_TYPE_NEXUS
93969403
type: string
93979404
format: enum
9398-
description: "Optional. The set of task queue types this scaling group serves. \n If not provided, this scaling group serves all not otherwise defined\n task types."
9405+
description: |-
9406+
Optional. The set of task queue types this scaling group serves.
9407+
If not provided, this scaling group serves all not otherwise defined
9408+
task types.
93999409
provider:
94009410
allOf:
94019411
- $ref: '#/components/schemas/ComputeProvider'
@@ -9408,6 +9418,21 @@ components:
94089418
description: |-
94099419
Informs a worker lifecycle controller *when* and *how often* to perform
94109420
certain worker lifecycle actions like starting a serverless worker.
9421+
ComputeConfigScalingGroupSummary:
9422+
type: object
9423+
properties:
9424+
taskQueueTypes:
9425+
type: array
9426+
items:
9427+
enum:
9428+
- TASK_QUEUE_TYPE_UNSPECIFIED
9429+
- TASK_QUEUE_TYPE_WORKFLOW
9430+
- TASK_QUEUE_TYPE_ACTIVITY
9431+
- TASK_QUEUE_TYPE_NEXUS
9432+
type: string
9433+
format: enum
9434+
providerType:
9435+
type: string
94119436
ComputeConfigScalingGroupUpdate:
94129437
type: object
94139438
properties:
@@ -9424,6 +9449,14 @@ components:
94249449
- Accepted paths: "task_queue_types", "provider", "provider.type", "provider.details",
94259450
"provider.nexus_endpoint", "scaler", "scaler.type", "scaler.details"
94269451
format: field-mask
9452+
ComputeConfigSummary:
9453+
type: object
9454+
properties:
9455+
scalingGroups:
9456+
type: object
9457+
additionalProperties:
9458+
$ref: '#/components/schemas/ComputeConfigScalingGroupSummary'
9459+
description: A subset of information in ComputeConfig optimized for list views.
94279460
ComputeProvider:
94289461
type: object
94299462
properties:
@@ -10835,7 +10868,9 @@ components:
1083510868
sourceDeploymentRevisionNumber:
1083610869
type: string
1083710870
description: The revision number of the source deployment version of the parent/previous workflow.
10838-
description: "Used as part of WorkflowExecutionStartedEventAttributes to pass down the AutoUpgrade behavior and source deployment version \n to a workflow execution whose parent/previous workflow has an AutoUpgrade behavior."
10871+
description: |-
10872+
Used as part of WorkflowExecutionStartedEventAttributes to pass down the AutoUpgrade behavior and source deployment version
10873+
to a workflow execution whose parent/previous workflow has an AutoUpgrade behavior.
1083910874
Input:
1084010875
type: object
1084110876
properties:
@@ -14905,7 +14940,6 @@ components:
1490514940
type: string
1490614941
description: Last time versioning information of this Task Queue changed.
1490714942
format: date-time
14908-
description: Experimental. Worker Deployments are experimental and might significantly change in the future.
1490914943
TerminateActivityExecutionRequest:
1491014944
type: object
1491114945
properties:
@@ -15719,7 +15753,6 @@ components:
1571915753
description: |-
1572015754
Information about workflow drainage to help the user determine when it is safe
1572115755
to decommission a Version. Not present while version is current or ramping.
15722-
Experimental. Worker Deployments are experimental and might significantly change in the future.
1572315756
VersionInfo:
1572415757
type: object
1572515758
properties:
@@ -15910,7 +15943,14 @@ components:
1591015943
Indicates whether the routing_config has been fully propagated to all
1591115944
relevant task queues and their partitions.
1591215945
format: enum
15913-
description: "A Worker Deployment (Deployment, for short) represents all workers serving \n a shared set of Task Queues. Typically, a Deployment represents one service or \n application.\n A Deployment contains multiple Deployment Versions, each representing a different \n version of workers. (see documentation of WorkerDeploymentVersionInfo)\n Deployment records are created in Temporal server automatically when their\n first poller arrives to the server.\n Experimental. Worker Deployments are experimental and might significantly change in the future."
15946+
description: |-
15947+
A Worker Deployment (Deployment, for short) represents all workers serving
15948+
a shared set of Task Queues. Typically, a Deployment represents one service or
15949+
application.
15950+
A Deployment contains multiple Deployment Versions, each representing a different
15951+
version of workers. (see documentation of WorkerDeploymentVersionInfo)
15952+
Deployment records are created in Temporal server automatically when their
15953+
first poller arrives to the server.
1591415954
WorkerDeploymentInfo_WorkerDeploymentVersionSummary:
1591515955
type: object
1591615956
properties:
@@ -15984,6 +16024,8 @@ components:
1598416024
Timestamp when this version last stopped being current or ramping.
1598516025
Cleared if the version becomes current or ramping again.
1598616026
format: date-time
16027+
computeConfig:
16028+
$ref: '#/components/schemas/ComputeConfigSummary'
1598716029
WorkerDeploymentOptions:
1598816030
type: object
1598916031
properties:
@@ -16006,9 +16048,7 @@ components:
1600616048
same `deployment_name` and `build_id` combination, across all Task Queues.
1600716049
When `worker_versioning_mode==VERSIONED`, the worker will be part of a Deployment Version.
1600816050
format: enum
16009-
description: |-
16010-
Worker Deployment options set in SDK that need to be sent to server in every poll.
16011-
Experimental. Worker Deployments are experimental and might significantly change in the future.
16051+
description: Worker Deployment options set in SDK that need to be sent to server in every poll.
1601216052
WorkerDeploymentVersion:
1601316053
type: object
1601416054
properties:
@@ -16138,7 +16178,13 @@ components:
1613816178
- `CreateWorkerDeploymentVersion`
1613916179
- `UpdateWorkerDeploymentVersionComputeConfig`
1614016180
- `UpdateWorkerDeploymentVersionMetadata`
16141-
description: "A Worker Deployment Version (Version, for short) represents all workers of the same \n code and config within a Deployment. Workers of the same Version are expected to \n behave exactly the same so when executions move between them there are no \n non-determinism issues.\n Worker Deployment Versions are created in Temporal server automatically when \n their first poller arrives to the server.\n Experimental. Worker Deployments are experimental and might significantly change in the future."
16181+
description: |-
16182+
A Worker Deployment Version (Version, for short) represents all workers of the same
16183+
code and config within a Deployment. Workers of the same Version are expected to
16184+
behave exactly the same so when executions move between them there are no
16185+
non-determinism issues.
16186+
Worker Deployment Versions are created in Temporal server automatically when
16187+
their first poller arrives to the server.
1614216188
WorkerDeploymentVersionInfo_VersionTaskQueueInfo:
1614316189
type: object
1614416190
properties:
@@ -16904,9 +16950,7 @@ components:
1690416950
Experimental. Versioning info is experimental and might change in the future.
1690516951
workerDeploymentName:
1690616952
type: string
16907-
description: |-
16908-
The name of Worker Deployment that completed the most recent workflow task.
16909-
Experimental. Worker Deployments are experimental and might change in the future.
16953+
description: The name of Worker Deployment that completed the most recent workflow task.
1691016954
priority:
1691116955
allOf:
1691216956
- $ref: '#/components/schemas/Priority'
@@ -17693,21 +17737,18 @@ components:
1769317737
description: |-
1769417738
The Worker Deployment Version that completed this task. Must be set if `versioning_behavior`
1769517739
is set. This value updates workflow execution's `versioning_info.version`.
17696-
Experimental. Worker Deployments are experimental and might significantly change in the future.
1769717740
Deprecated. Replaced with `deployment_version`.
1769817741
workerDeploymentName:
1769917742
type: string
1770017743
description: |-
1770117744
The name of Worker Deployment that completed this task. Must be set if `versioning_behavior`
1770217745
is set. This value updates workflow execution's `worker_deployment_name`.
17703-
Experimental. Worker Deployments are experimental and might significantly change in the future.
1770417746
deploymentVersion:
1770517747
allOf:
1770617748
- $ref: '#/components/schemas/WorkerDeploymentVersion'
1770717749
description: |-
1770817750
The Worker Deployment Version that completed this task. Must be set if `versioning_behavior`
1770917751
is set. This value updates workflow execution's `versioning_info.deployment_version`.
17710-
Experimental. Worker Deployments are experimental and might significantly change in the future.
1771117752
WorkflowTaskCompletedMetadata:
1771217753
type: object
1771317754
properties:

temporal/api/compute/v1/config.proto

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ import "temporal/api/enums/v1/task_queue.proto";
1515
import "google/protobuf/field_mask.proto";
1616

1717
message ComputeConfigScalingGroup {
18-
// Optional. The set of task queue types this scaling group serves.
18+
// Optional. The set of task queue types this scaling group serves.
1919
// If not provided, this scaling group serves all not otherwise defined
2020
// task types.
2121
repeated temporal.api.enums.v1.TaskQueueType task_queue_types = 1;
@@ -34,7 +34,7 @@ message ComputeConfigScalingGroup {
3434
// events.
3535
message ComputeConfig {
3636

37-
// Each scaling group describes a compute config for a specific subset of the worker
37+
// Each scaling group describes a compute config for a specific subset of the worker
3838
// deployment version: covering a specific set of task types and/or regions.
3939
// Having different configurations for different task types, allows independent
4040
// tuning of activity and workflow task processing (for example).
@@ -56,3 +56,13 @@ message ComputeConfigScalingGroupUpdate {
5656
// "provider.nexus_endpoint", "scaler", "scaler.type", "scaler.details"
5757
google.protobuf.FieldMask update_mask = 2;
5858
}
59+
60+
// A subset of information in ComputeConfig optimized for list views.
61+
message ComputeConfigSummary {
62+
map<string, ComputeConfigScalingGroupSummary> scaling_groups = 1;
63+
}
64+
65+
message ComputeConfigScalingGroupSummary {
66+
repeated temporal.api.enums.v1.TaskQueueType task_queue_types = 1;
67+
string provider_type = 2;
68+
}

temporal/api/deployment/v1/message.proto

Lines changed: 9 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@ import "temporal/api/common/v1/message.proto";
1717
import "temporal/api/compute/v1/config.proto";
1818

1919
// Worker Deployment options set in SDK that need to be sent to server in every poll.
20-
// Experimental. Worker Deployments are experimental and might significantly change in the future.
2120
message WorkerDeploymentOptions {
2221
// Required when `worker_versioning_mode==VERSIONED`.
2322
string deployment_name = 1;
@@ -87,13 +86,12 @@ message DeploymentListInfo {
8786
}
8887

8988

90-
// A Worker Deployment Version (Version, for short) represents all workers of the same
91-
// code and config within a Deployment. Workers of the same Version are expected to
92-
// behave exactly the same so when executions move between them there are no
89+
// A Worker Deployment Version (Version, for short) represents all workers of the same
90+
// code and config within a Deployment. Workers of the same Version are expected to
91+
// behave exactly the same so when executions move between them there are no
9392
// non-determinism issues.
94-
// Worker Deployment Versions are created in Temporal server automatically when
93+
// Worker Deployment Versions are created in Temporal server automatically when
9594
// their first poller arrives to the server.
96-
// Experimental. Worker Deployments are experimental and might significantly change in the future.
9795
message WorkerDeploymentVersionInfo {
9896
// Deprecated. Use `deployment_version`.
9997
string version = 1 [deprecated = true];
@@ -175,7 +173,6 @@ message WorkerDeploymentVersionInfo {
175173

176174
// Information about workflow drainage to help the user determine when it is safe
177175
// to decommission a Version. Not present while version is current or ramping.
178-
// Experimental. Worker Deployments are experimental and might significantly change in the future.
179176
message VersionDrainageInfo {
180177
// Set to DRAINING when the version first stops accepting new executions (is no longer current or ramping).
181178
// Set to DRAINED when no more open pinned workflows exist on this version.
@@ -186,14 +183,13 @@ message VersionDrainageInfo {
186183
google.protobuf.Timestamp last_checked_time = 3;
187184
}
188185

189-
// A Worker Deployment (Deployment, for short) represents all workers serving
190-
// a shared set of Task Queues. Typically, a Deployment represents one service or
186+
// A Worker Deployment (Deployment, for short) represents all workers serving
187+
// a shared set of Task Queues. Typically, a Deployment represents one service or
191188
// application.
192-
// A Deployment contains multiple Deployment Versions, each representing a different
189+
// A Deployment contains multiple Deployment Versions, each representing a different
193190
// version of workers. (see documentation of WorkerDeploymentVersionInfo)
194191
// Deployment records are created in Temporal server automatically when their
195192
// first poller arrives to the server.
196-
// Experimental. Worker Deployments are experimental and might significantly change in the future.
197193
message WorkerDeploymentInfo {
198194
// Identifies a Worker Deployment. Must be unique within the namespace.
199195
string name = 1;
@@ -257,6 +253,7 @@ message WorkerDeploymentInfo {
257253
// Timestamp when this version last stopped being current or ramping.
258254
// Cleared if the version becomes current or ramping again.
259255
google.protobuf.Timestamp last_deactivation_time = 10;
256+
temporal.api.compute.v1.ComputeConfigSummary compute_config = 13;
260257
}
261258
}
262259

@@ -317,7 +314,7 @@ message RoutingConfig {
317314
int64 revision_number = 10;
318315
}
319316

320-
// Used as part of WorkflowExecutionStartedEventAttributes to pass down the AutoUpgrade behavior and source deployment version
317+
// Used as part of WorkflowExecutionStartedEventAttributes to pass down the AutoUpgrade behavior and source deployment version
321318
// to a workflow execution whose parent/previous workflow has an AutoUpgrade behavior.
322319
message InheritedAutoUpgradeInfo {
323320
// The source deployment version of the parent/previous workflow.

temporal/api/enums/v1/deployment.proto

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@ enum DeploymentReachability {
3030
// aip.dev/not-precedent: Call this status because it is . --)
3131
// Specify the drainage status for a Worker Deployment Version so users can decide whether they
3232
// can safely decommission the version.
33-
// Experimental. Worker Deployments are experimental and might significantly change in the future.
3433
enum VersionDrainageStatus {
3534
// Drainage Status is not specified.
3635
VERSION_DRAINAGE_STATUS_UNSPECIFIED = 0;
@@ -49,7 +48,6 @@ enum VersionDrainageStatus {
4948
// - Whether or not Temporal Server considers this worker's version (Build ID) when dispatching
5049
// tasks to it.
5150
// - Whether or not the workflows processed by this worker are versioned using the worker's version.
52-
// Experimental. Worker Deployments are experimental and might significantly change in the future.
5351
enum WorkerVersioningMode {
5452
WORKER_VERSIONING_MODE_UNSPECIFIED = 0;
5553
// Workers with this mode are not distinguished from each other for task routing, even if they
@@ -76,7 +74,6 @@ enum WorkerVersioningMode {
7674
// (-- api-linter: core::0216::synonyms=disabled
7775
// aip.dev/not-precedent: Call this status because it is . --)
7876
// Specify the status of a Worker Deployment Version.
79-
// Experimental. Worker Deployments are experimental and might significantly change in the future.
8077
enum WorkerDeploymentVersionStatus {
8178
WORKER_DEPLOYMENT_VERSION_STATUS_UNSPECIFIED = 0;
8279
// The Worker Deployment Version has been created inside the Worker Deployment but is not used by any

temporal/api/enums/v1/workflow.proto

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,6 @@ enum TimeoutType {
128128
// Versions. The Versioning Behavior of a workflow execution is typically specified by the worker
129129
// who completes the first task of the execution, but is also overridable manually for new and
130130
// existing workflows (see VersioningOverride).
131-
// Experimental. Worker Deployments are experimental and might significantly change in the future.
132131
enum VersioningBehavior {
133132
// Workflow execution does not have a Versioning Behavior and is called Unversioned. This is the
134133
// legacy behavior. An Unversioned workflow's task can go to any Unversioned worker (see

temporal/api/history/v1/message.proto

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -348,16 +348,13 @@ message WorkflowTaskCompletedEventAttributes {
348348
temporal.api.enums.v1.VersioningBehavior versioning_behavior = 8;
349349
// The Worker Deployment Version that completed this task. Must be set if `versioning_behavior`
350350
// is set. This value updates workflow execution's `versioning_info.version`.
351-
// Experimental. Worker Deployments are experimental and might significantly change in the future.
352351
// Deprecated. Replaced with `deployment_version`.
353352
string worker_deployment_version = 9 [deprecated = true];
354353
// The name of Worker Deployment that completed this task. Must be set if `versioning_behavior`
355354
// is set. This value updates workflow execution's `worker_deployment_name`.
356-
// Experimental. Worker Deployments are experimental and might significantly change in the future.
357355
string worker_deployment_name = 10;
358356
// The Worker Deployment Version that completed this task. Must be set if `versioning_behavior`
359357
// is set. This value updates workflow execution's `versioning_info.deployment_version`.
360-
// Experimental. Worker Deployments are experimental and might significantly change in the future.
361358
temporal.api.deployment.v1.WorkerDeploymentVersion deployment_version = 11;
362359
}
363360

temporal/api/taskqueue/v1/message.proto

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,6 @@ message TaskQueueMetadata {
3333
google.protobuf.DoubleValue max_tasks_per_second = 1;
3434
}
3535

36-
// Experimental. Worker Deployments are experimental and might significantly change in the future.
3736
message TaskQueueVersioningInfo {
3837
// Specifies which Deployment Version should receive new workflow executions and tasks of
3938
// existing unversioned or AutoUpgrade workflows.

temporal/api/workflow/v1/message.proto

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,6 @@ message WorkflowExecutionInfo {
9393
WorkflowExecutionVersioningInfo versioning_info = 22;
9494

9595
// The name of Worker Deployment that completed the most recent workflow task.
96-
// Experimental. Worker Deployments are experimental and might change in the future.
9796
string worker_deployment_name = 23;
9897

9998
// Priority metadata

0 commit comments

Comments
 (0)