Skip to content

Commit 7b47dae

Browse files
Copilotnicoche
andcommitted
feat: add enable_mesh boolean parameter (default False) for sandbox creation
Agent-Logs-Url: https://github.com/koyeb/koyeb-python-sdk/sessions/2e7e436a-618e-4c48-973d-ce1da1cdae8b Co-authored-by: nicoche <78445450+nicoche@users.noreply.github.com>
1 parent 458995e commit 7b47dae

2 files changed

Lines changed: 19 additions & 0 deletions

File tree

koyeb/sandbox/sandbox.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,7 @@ def create(
119119
delete_after_delay: int = 0,
120120
delete_after_inactivity_delay: int = 0,
121121
app_id: Optional[str] = None,
122+
enable_mesh: bool = False,
122123
) -> Sandbox:
123124
"""
124125
Create a new sandbox instance.
@@ -151,6 +152,7 @@ def create(
151152
delete_after_sleep: If >0, automatically delete the sandbox if service sleeps due to inactivity
152153
after this many seconds.
153154
app_id: If provided, create the sandbox service in an existing app instead of creating a new one.
155+
enable_mesh: If True, enables service mesh for the deployment (default: False)
154156
155157
Returns:
156158
Sandbox: A new Sandbox instance
@@ -194,6 +196,7 @@ def create(
194196
delete_after_delay=delete_after_delay,
195197
delete_after_inactivity_delay=delete_after_inactivity_delay,
196198
app_id=app_id,
199+
enable_mesh=enable_mesh,
197200
)
198201

199202
if wait_ready:
@@ -227,6 +230,7 @@ def _create_sync(
227230
delete_after_delay: int = 0,
228231
delete_after_inactivity_delay: int = 0,
229232
app_id: Optional[str] = None,
233+
enable_mesh: bool = False,
230234
) -> Sandbox:
231235
"""
232236
Synchronous creation method that returns creation parameters.
@@ -273,6 +277,7 @@ def _create_sync(
273277
enable_tcp_proxy=enable_tcp_proxy,
274278
_experimental_enable_light_sleep=_experimental_enable_light_sleep,
275279
_experimental_deep_sleep_value=_experimental_deep_sleep_value,
280+
enable_mesh=enable_mesh,
276281
)
277282

278283
service_life_cycle = ServiceLifeCycle(
@@ -960,6 +965,7 @@ async def create(
960965
delete_after_delay: int = 0,
961966
delete_after_inactivity_delay: int = 0,
962967
app_id: Optional[str] = None,
968+
enable_mesh: bool = False,
963969
) -> AsyncSandbox:
964970
"""
965971
Create a new sandbox instance with async support.
@@ -994,6 +1000,7 @@ async def create(
9941000
delete_after_inactivity_delay: If >0, automatically delete the sandbox if service sleeps due to inactivity
9951001
after this many seconds.
9961002
app_id: If provided, create the sandbox service in an existing app instead of creating a new one.
1003+
enable_mesh: If True, enables service mesh for the deployment (default: False)
9971004
9981005
Returns:
9991006
AsyncSandbox: A new AsyncSandbox instance
@@ -1030,6 +1037,7 @@ async def create(
10301037
delete_after_delay=delete_after_delay,
10311038
delete_after_inactivity_delay=delete_after_inactivity_delay,
10321039
app_id=app_id,
1040+
enable_mesh=enable_mesh,
10331041
),
10341042
)
10351043

koyeb/sandbox/utils.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
from koyeb.api.models.deployment_scaling_target_sleep_idle_delay import (
3131
DeploymentScalingTargetSleepIdleDelay,
3232
)
33+
from koyeb.api.models.deployment_mesh import DeploymentMesh
3334
from koyeb.api.models.docker_source import DockerSource
3435
from koyeb.api.models.proxy_port_protocol import ProxyPortProtocol
3536

@@ -242,6 +243,7 @@ def create_deployment_definition(
242243
enable_tcp_proxy: bool = False,
243244
_experimental_enable_light_sleep: bool = False,
244245
_experimental_deep_sleep_value: int = 3900,
246+
enable_mesh: bool = False,
245247
) -> DeploymentDefinition:
246248
"""
247249
Create deployment definition for a sandbox service.
@@ -262,6 +264,7 @@ def create_deployment_definition(
262264
Light Sleep reduces cold starts to ~200ms. After scaling to zero, the service stays in Light Sleep for idle_timeout seconds before going into Deep Sleep.
263265
_experimental_deep_sleep_value: Number of seconds for deep sleep when light sleep is enabled (default: 3900).
264266
Only used if _experimental_enable_light_sleep is True. Ignored otherwise.
267+
enable_mesh: If True, enables service mesh for the deployment (default: False)
265268
266269
Returns:
267270
DeploymentDefinition object
@@ -312,6 +315,13 @@ def create_deployment_definition(
312315

313316
scalings = [DeploymentScaling(min=min_scale, max=1, targets=targets)]
314317

318+
# Set mesh configuration
319+
mesh = (
320+
DeploymentMesh.DEPLOYMENT_MESH_ENABLED
321+
if enable_mesh
322+
else DeploymentMesh.DEPLOYMENT_MESH_DISABLED
323+
)
324+
315325
return DeploymentDefinition(
316326
name=name,
317327
type=deployment_type,
@@ -323,6 +333,7 @@ def create_deployment_definition(
323333
instance_types=[DeploymentInstanceType(type=instance_type)],
324334
scalings=scalings,
325335
regions=regions_list,
336+
mesh=mesh,
326337
)
327338

328339

0 commit comments

Comments
 (0)