Skip to content
This repository was archived by the owner on Feb 20, 2025. It is now read-only.

Commit 6b1a0d1

Browse files
authored
feat: add autoscaling target config (hatchet-dev#304)
* feat: add autoscaling target config * lint
1 parent 4930d70 commit 6b1a0d1

File tree

3 files changed

+21
-1
lines changed

3 files changed

+21
-1
lines changed

hatchet_sdk/clients/dispatcher/dispatcher.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,13 @@ def __init__(self, config: ClientConfig):
5252
async def get_action_listener(
5353
self, req: GetActionListenerRequest
5454
) -> ActionListener:
55+
56+
# Override labels with the preset labels
57+
preset_labels = self.config.worker_preset_labels
58+
59+
for key, value in preset_labels.items():
60+
req.labels[key] = WorkerLabels(strValue=str(value))
61+
5562
# Register the worker
5663
response: WorkerRegisterResponse = await self.aio_client.Register(
5764
WorkerRegisterRequest(

hatchet_sdk/loader.py

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ def __init__(
4545
otel_exporter_oltp_protocol: str | None = None,
4646
worker_healthcheck_port: int | None = None,
4747
worker_healthcheck_enabled: bool | None = None,
48+
worker_preset_labels: dict[str, str] = {},
4849
):
4950
self.tenant_id = tenant_id
5051
self.tls_config = tls_config
@@ -61,6 +62,7 @@ def __init__(
6162
self.otel_exporter_oltp_protocol = otel_exporter_oltp_protocol
6263
self.worker_healthcheck_port = worker_healthcheck_port
6364
self.worker_healthcheck_enabled = worker_healthcheck_enabled
65+
self.worker_preset_labels = worker_preset_labels
6466

6567
if not self.logInterceptor:
6668
self.logInterceptor = getLogger()
@@ -184,6 +186,16 @@ def get_config_value(key, env_var):
184186
== "True"
185187
)
186188

189+
# Add preset labels to the worker config
190+
worker_preset_labels: dict[str, str] = defaults.worker_preset_labels
191+
192+
autoscaling_target = get_config_value(
193+
"autoscaling_target", "HATCHET_CLIENT_AUTOSCALING_TARGET"
194+
)
195+
196+
if autoscaling_target:
197+
worker_preset_labels["hatchet-autoscaling-target"] = autoscaling_target
198+
187199
return ClientConfig(
188200
tenant_id=tenant_id,
189201
tls_config=tls_config,
@@ -201,6 +213,7 @@ def get_config_value(key, env_var):
201213
otel_exporter_oltp_protocol=otel_exporter_oltp_protocol,
202214
worker_healthcheck_port=worker_healthcheck_port,
203215
worker_healthcheck_enabled=worker_healthcheck_enabled,
216+
worker_preset_labels=worker_preset_labels,
204217
)
205218

206219
def _load_tls_config(self, tls_data: Dict, host_port) -> ClientTLSConfig:

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[tool.poetry]
22
name = "hatchet-sdk"
3-
version = "0.44.2"
3+
version = "0.45.0"
44
description = ""
55
authors = ["Alexander Belanger <[email protected]>"]
66
readme = "README.md"

0 commit comments

Comments
 (0)