temporalio / temporalio/temporal-worker-controller

[Feature Request] Interoperability with K8S/GKE CapacityBuffer API

Open
#509 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

autoscaling GKE
Dominant language
Go
Stars
187
Forks
70
Avg merge
4d 1h
Merged PRs (30d)
31

Description

Is your feature request related to a problem? Please describe.

We’d like to use GKE CapacityBuffer API to dynamically over-provision API-serving Temporal workers.

K8S has a Capacity Buffer API in beta stage. GKE in particular has introduced support for active and standby capacity buffers based off this.

But there isn’t a clear way of how Temporal Worker Controller can work with these.

  • The controller itself does not implement the scale subresource, so we cannot target the capacity buffer at the controller.
  • The Worker Deployment Resource CRD does not yet flexible enough to support scalableRef as required by the CapacityBuffer API. Applying this per version is also probably the wrong level of abstraction.

So the workaround today is unfortunately falling back to unversioned workers on these API serving workloads.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reading the GKE CapacityBuffer API requirements and tracing how the controller and Worker Deployment Resource CRD currently expose scaling. Focus on the missing scale subresource and the CRD's scalableRef support, including whether this belongs above the per-version level. Done means a documented design and working interoperability for versioned Temporal workers.

Written by the indexing model from the issue text.

Assessment

Tech stack
go, google-cloud, kubernetes
Domain
cloud, infrastructure
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.