Skip to content
This repository was archived by the owner on Jan 23, 2026. It is now read-only.

Commit 7867053

Browse files
committed
Add alternative_endpoints to exporter configuration
1 parent 5e10d3c commit 7867053

2 files changed

Lines changed: 6 additions & 2 deletions

File tree

packages/jumpstarter/jumpstarter/config/exporter.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
from contextlib import asynccontextmanager, contextmanager, suppress
44
from pathlib import Path
5-
from typing import Any, ClassVar, Literal, Optional, Self
5+
from typing import Any, ClassVar, List, Literal, Optional, Self
66

77
import grpc
88
import yaml
@@ -83,6 +83,8 @@ class ExporterConfigV1Alpha1(BaseModel):
8383
token: str
8484
grpcOptions: dict[str, str | int] | None = Field(default_factory=dict)
8585

86+
alternative_endpoints: List[str] = Field(default_factory=list)
87+
8688
export: dict[str, ExporterConfigV1Alpha1DriverInstance] = Field(default_factory=dict)
8789

8890
path: Path | None = Field(default=None)
@@ -171,6 +173,7 @@ def channel_factory():
171173
device_factory=ExporterConfigV1Alpha1DriverInstance(children=self.export).instantiate,
172174
tls=self.tls,
173175
grpc_options=self.grpcOptions,
176+
alternative_endpoints=self.alternative_endpoints,
174177
) as exporter:
175178
await exporter.serve()
176179

packages/jumpstarter/jumpstarter/exporter/exporter.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ class Exporter(AbstractAsyncContextManager, Metadata):
2525
channel_factory: Callable[[], grpc.aio.Channel]
2626
device_factory: Callable[[], Driver]
2727
lease_name: str = field(init=False, default="")
28+
alternative_endpoints: list[str] = field(default_factory=list)
2829
tls: TLSConfigV1Alpha1 = field(default_factory=TLSConfigV1Alpha1)
2930
grpc_options: dict[str, str] = field(default_factory=dict)
3031

@@ -50,7 +51,7 @@ async def session(self):
5051
labels=self.labels,
5152
root_device=self.device_factory(),
5253
) as session:
53-
async with session.serve_unix_async() as path:
54+
async with session.serve_unix_async(alternative_endpoints=self.alternative_endpoints) as path:
5455
async with grpc.aio.secure_channel(
5556
f"unix://{path}", grpc.local_channel_credentials(grpc.LocalConnectionType.UDS)
5657
) as channel:

0 commit comments

Comments
 (0)