Skip to content

Commit 3bd7043

Browse files
committed
speedy startup
1 parent de78ea9 commit 3bd7043

File tree

1 file changed

+35
-7
lines changed

1 file changed

+35
-7
lines changed

src/warnet/deploy.py

Lines changed: 35 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import subprocess
22
import sys
33
import tempfile
4+
from multiprocessing import Process
45
from pathlib import Path
56
from typing import Optional
67

@@ -69,17 +70,44 @@ def _deploy(directory, debug, namespace, to_all_users):
6970

7071
if to_all_users:
7172
namespaces = get_namespaces_by_type(WARGAMES_NAMESPACE_PREFIX)
73+
processes = []
7274
for namespace in namespaces:
73-
deploy(directory, debug, namespace.metadata.name, False)
75+
p = Process(target=deploy, args=(directory, debug, namespace.metadata.name, False))
76+
p.start()
77+
processes.append(p)
78+
for p in processes:
79+
p.join()
7480
return
7581

7682
if (directory / NETWORK_FILE).exists():
77-
dl = deploy_logging_stack(directory, debug)
78-
deploy_network(directory, debug, namespace=namespace)
79-
df = deploy_fork_observer(directory, debug)
80-
if dl | df:
81-
deploy_ingress(debug)
82-
deploy_caddy(directory, debug)
83+
processes = []
84+
logging_process = Process(target=deploy_logging_stack, args=(directory, debug))
85+
logging_process.start()
86+
processes.append(logging_process)
87+
88+
network_process = Process(target=deploy_network, args=(directory, debug, namespace))
89+
network_process.start()
90+
91+
ingress_process = Process(target=deploy_ingress, args=(debug,))
92+
ingress_process.start()
93+
processes.append(ingress_process)
94+
95+
caddy_process = Process(target=deploy_caddy, args=(directory, debug))
96+
caddy_process.start()
97+
processes.append(caddy_process)
98+
99+
# Wait for the network process to complete
100+
network_process.join()
101+
102+
# Start the fork observer process immediately after network process completes
103+
fork_observer_process = Process(target=deploy_fork_observer, args=(directory, debug))
104+
fork_observer_process.start()
105+
processes.append(fork_observer_process)
106+
107+
# Wait for all other processes to complete
108+
for p in processes:
109+
p.join()
110+
83111
elif (directory / NAMESPACES_FILE).exists():
84112
deploy_namespaces(directory)
85113
else:

0 commit comments

Comments
 (0)