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

Commit a10acd8

Browse files
committed
Add alternative_endpoints to exporter configuration
1 parent a23c866 commit a10acd8

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
@@ -82,6 +82,8 @@ class ExporterConfigV1Alpha1(BaseModel):
8282
tls: TLSConfigV1Alpha1 = Field(default_factory=TLSConfigV1Alpha1)
8383
token: str
8484

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

8789
path: Path | None = Field(default=None)
@@ -169,6 +171,7 @@ def channel_factory():
169171
channel_factory=channel_factory,
170172
device_factory=ExporterConfigV1Alpha1DriverInstance(children=self.export).instantiate,
171173
tls=self.tls,
174+
alternative_endpoints=self.alternative_endpoints,
172175
) as exporter:
173176
await exporter.serve()
174177

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

3031
async def __aexit__(self, exc_type, exc_value, traceback):
@@ -49,7 +50,7 @@ async def session(self):
4950
labels=self.labels,
5051
root_device=self.device_factory(),
5152
) as session:
52-
async with session.serve_unix_async() as path:
53+
async with session.serve_unix_async(alternative_endpoints=self.alternative_endpoints) as path:
5354
async with grpc.aio.secure_channel(
5455
f"unix://{path}", grpc.local_channel_credentials(grpc.LocalConnectionType.UDS)
5556
) as channel:

0 commit comments

Comments
 (0)