Skip to content

Commit 604eb15

Browse files
committed
speedy startup namespaces
1 parent 06c7a76 commit 604eb15

File tree

1 file changed

+32
-24
lines changed

1 file changed

+32
-24
lines changed

src/warnet/deploy.py

Lines changed: 32 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -314,32 +314,40 @@ def deploy_namespaces(directory: Path):
314314
)
315315
return
316316

317+
processes = []
317318
for namespace in namespaces_file["namespaces"]:
318-
click.echo(f"Deploying namespace: {namespace.get('name')}")
319-
try:
320-
temp_override_file_path = ""
321-
namespace_name = namespace.get("name")
322-
namespace_config_override = {k: v for k, v in namespace.items() if k != "name"}
323-
324-
cmd = f"{HELM_COMMAND} {namespace_name} {NAMESPACES_CHART_LOCATION} -f {defaults_file_path}"
325-
326-
if namespace_config_override:
327-
with tempfile.NamedTemporaryFile(
328-
mode="w", suffix=".yaml", delete=False
329-
) as temp_file:
330-
yaml.dump(namespace_config_override, temp_file)
331-
temp_override_file_path = Path(temp_file.name)
332-
cmd = f"{cmd} -f {temp_override_file_path}"
333-
334-
if not stream_command(cmd):
335-
click.echo(f"Failed to run Helm command: {cmd}")
336-
return
337-
except Exception as e:
338-
click.echo(f"Error: {e}")
319+
p = Process(target=deploy_single_namespace, args=(namespace, defaults_file_path))
320+
p.start()
321+
processes.append(p)
322+
323+
for p in processes:
324+
p.join()
325+
326+
327+
def deploy_single_namespace(namespace, defaults_file_path: Path):
328+
click.echo(f"Deploying namespace: {namespace.get('name')}")
329+
temp_override_file_path = ""
330+
try:
331+
namespace_name = namespace.get("name")
332+
namespace_config_override = {k: v for k, v in namespace.items() if k != "name"}
333+
334+
cmd = f"{HELM_COMMAND} {namespace_name} {NAMESPACES_CHART_LOCATION} -f {defaults_file_path}"
335+
336+
if namespace_config_override:
337+
with tempfile.NamedTemporaryFile(mode="w", suffix=".yaml", delete=False) as temp_file:
338+
yaml.dump(namespace_config_override, temp_file)
339+
temp_override_file_path = Path(temp_file.name)
340+
cmd = f"{cmd} -f {temp_override_file_path}"
341+
342+
if not stream_command(cmd):
343+
click.echo(f"Failed to run Helm command: {cmd}")
339344
return
340-
finally:
341-
if temp_override_file_path:
342-
temp_override_file_path.unlink()
345+
except Exception as e:
346+
click.echo(f"Error: {e}")
347+
return
348+
finally:
349+
if temp_override_file_path:
350+
Path(temp_override_file_path).unlink()
343351

344352

345353
def is_windows():

0 commit comments

Comments
 (0)