Skip to content

add temporal worker deployment create-version#971

Open
jaypipes wants to merge 1 commit intotemporalio:serverlessfrom
jaypipes:jaypipes/serverless
Open

add temporal worker deployment create-version#971
jaypipes wants to merge 1 commit intotemporalio:serverlessfrom
jaypipes:jaypipes/serverless

Conversation

@jaypipes
Copy link
Copy Markdown

Adds implementation of the temporal worker deployment create-version CLI command using only direct gRPC API calls, not the sdk-go client code.

TODO: add unit tests.

@jaypipes jaypipes requested review from a team as code owners March 31, 2026 15:57
@CLAassistant
Copy link
Copy Markdown

CLA assistant check
Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.
You have signed the CLA already but the status is still pending? Let us recheck it.

Comment on lines +1081 to +1093
cc.ScalingGroups = map[string]*computeConfigScalingGroup{
// NOTE(jaypipes): No option but to hard-code the string "main" for
// the scaling group name.
"main": {
Provider: &computeProvider{
// NOTE(jaypipes): No option but to hard-code the string
// "awslambda" for the provider type.
Type: "awslambda",
Details: providerDetails,
},
},
}
}
Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@bchav @02strich I had to hard-code "main" as the scaling group name and "awslambda" as the provider type string here. I'm not sure what else I could do.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think the hard coding is fine, just a nit to please call it "default" as that is what we have taken up in other places

Adds implementation of the `temporal worker deployment create-version`
CLI command using only direct gRPC API calls, not the sdk-go client
code.

TODO: add unit tests.

Signed-off-by: Jay Pipes <jay.pipes@temporal.io>
@jaypipes jaypipes force-pushed the jaypipes/serverless branch from 4dded90 to 765f4f8 Compare March 31, 2026 16:19
var cc *computeConfig
if c.AwsLambdaInvoke != "" {
providerDetails := map[string]any{
"invoke": c.AwsLambdaInvoke,
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
"invoke": c.AwsLambdaInvoke,
"arn": c.AwsLambdaInvoke,

option-sets:
- deployment-version
options:
- name: aws-lambda-invoke
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

how do I set the role ARN and external ID for this?

Comment on lines +966 to +977
- name: scaler-min-instances
type: int
description: |
Minimum number of server-owned Workers a Worker Deployment should
ensure are polling on task queue targets.
default: -1
- name: scaler-max-instances
type: int
description: |
Maximum number of server-owned Workers a Worker Deployment should
allow to poll on task queue targets. A setting of 0 means no limit.
default: -1
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

these are not real scaler settings. https://github.com/temporalio/temporal-auto-scaled-workers/blob/main/wci/workflow/scaling_algorithm/no_sync_match.go#L16 has the settings (and their default values)

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@02strich that isn't applicable to the open source server.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why not?

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@02strich never mind, I was confused. :)

Comment on lines +1081 to +1093
cc.ScalingGroups = map[string]*computeConfigScalingGroup{
// NOTE(jaypipes): No option but to hard-code the string "main" for
// the scaling group name.
"main": {
Provider: &computeProvider{
// NOTE(jaypipes): No option but to hard-code the string
// "awslambda" for the provider type.
Type: "awslambda",
Details: providerDetails,
},
},
}
}
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think the hard coding is fine, just a nit to please call it "default" as that is what we have taken up in other places


var cc *computeConfig
if c.AwsLambdaInvoke != "" {
providerDetails := map[string]any{
Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants