@@ -110,7 +110,7 @@ impl openshell_server::ComputeDriverFactory for KubernetesFactory {
110110 async fn build (
111111 & self ,
112112 context : openshell_server:: ComputeDriverBuildContext < ' _ > ,
113- ) -> openshell_core:: Result < openshell_server:: ComputeDriverBuildOutput > {
113+ ) -> openshell_core:: Result < openshell_server:: ComputeDriverInstance > {
114114 let mut config: openshell_driver_kubernetes:: KubernetesComputeConfig =
115115 context. driver_config ( ) ?;
116116 if let Ok ( size) = std:: env:: var ( "OPENSHELL_K8S_WORKSPACE_DEFAULT_STORAGE_SIZE" ) {
@@ -119,27 +119,16 @@ impl openshell_server::ComputeDriverFactory for KubernetesFactory {
119119 if let Ok ( storage_class) = std:: env:: var ( "OPENSHELL_K8S_WORKSPACE_STORAGE_CLASS" ) {
120120 config. workspace_storage_class = storage_class;
121121 }
122- if context
123- . gateway_config ( )
124- . gateway_jwt
125- . as_ref ( )
126- . is_some_and ( |jwt| jwt. ttl_secs == 0 )
127- {
128- tracing:: warn!(
129- "Kubernetes gateway configured with non-expiring sandbox JWTs; set gateway_jwt.ttl_secs > 0 for shared deployments"
130- ) ;
131- }
132122 let driver = openshell_driver_kubernetes:: KubernetesComputeDriver :: new (
133123 config,
134124 context. shutdown_receiver ( ) ,
135125 )
136126 . await
137127 . map_err ( |error| openshell_core:: Error :: execution ( error. to_string ( ) ) ) ?;
138- let allowlist = driver. operator_allowlist ( ) . cloned ( ) ;
139128 let driver = openshell_driver_kubernetes:: ComputeDriverService :: new ( driver) ;
140- context
141- . finish_in_process_with_allowlist ( std:: sync:: Arc :: new ( driver) , allowlist )
142- . await
129+ Ok ( openshell_server :: ComputeDriverInstance :: InProcess (
130+ std:: sync:: Arc :: new ( driver) ,
131+ ) )
143132 }
144133}
145134
@@ -153,19 +142,24 @@ impl openshell_server::ComputeDriverFactory for DockerFactory {
153142 async fn build (
154143 & self ,
155144 context : openshell_server:: ComputeDriverBuildContext < ' _ > ,
156- ) -> openshell_core:: Result < openshell_server:: ComputeDriverBuildOutput > {
145+ ) -> openshell_core:: Result < openshell_server:: ComputeDriverInstance > {
157146 let mut config: openshell_driver_docker:: DockerComputeConfig = context. driver_config ( ) ?;
158147 apply_guest_tls (
159148 & mut config. guest_tls_ca ,
160149 & mut config. guest_tls_cert ,
161150 & mut config. guest_tls_key ,
162151 context. guest_tls_paths ( ) ,
163152 ) ;
164- let driver =
165- openshell_driver_docker:: DockerComputeDriver :: new ( context. gateway_config ( ) , & config)
166- . await
167- . map_err ( |error| openshell_core:: Error :: execution ( error. to_string ( ) ) ) ?;
168- context. finish_in_process ( std:: sync:: Arc :: new ( driver) ) . await
153+ let driver = openshell_driver_docker:: DockerComputeDriver :: new (
154+ context. gateway_bind_address ( ) ,
155+ context. gateway_log_level ( ) ,
156+ & config,
157+ )
158+ . await
159+ . map_err ( |error| openshell_core:: Error :: execution ( error. to_string ( ) ) ) ?;
160+ Ok ( openshell_server:: ComputeDriverInstance :: InProcess (
161+ std:: sync:: Arc :: new ( driver) ,
162+ ) )
169163 }
170164}
171165
@@ -179,7 +173,7 @@ impl openshell_server::ComputeDriverFactory for PodmanFactory {
179173 async fn build (
180174 & self ,
181175 context : openshell_server:: ComputeDriverBuildContext < ' _ > ,
182- ) -> openshell_core:: Result < openshell_server:: ComputeDriverBuildOutput > {
176+ ) -> openshell_core:: Result < openshell_server:: ComputeDriverInstance > {
183177 let mut config: openshell_driver_podman:: PodmanComputeConfig = context. driver_config ( ) ?;
184178 config. gateway_port = context. gateway_port ( ) ;
185179 if let Ok ( path) = std:: env:: var ( "OPENSHELL_PODMAN_SOCKET" ) {
@@ -201,7 +195,9 @@ impl openshell_server::ComputeDriverFactory for PodmanFactory {
201195 . await
202196 . map_err ( |error| openshell_core:: Error :: execution ( error. to_string ( ) ) ) ?;
203197 let driver = openshell_driver_podman:: ComputeDriverService :: new ( driver) ;
204- context. finish_in_process ( std:: sync:: Arc :: new ( driver) ) . await
198+ Ok ( openshell_server:: ComputeDriverInstance :: InProcess (
199+ std:: sync:: Arc :: new ( driver) ,
200+ ) )
205201 }
206202}
207203
@@ -215,7 +211,7 @@ impl openshell_server::ComputeDriverFactory for VmFactory {
215211 async fn build (
216212 & self ,
217213 context : openshell_server:: ComputeDriverBuildContext < ' _ > ,
218- ) -> openshell_core:: Result < openshell_server:: ComputeDriverBuildOutput > {
214+ ) -> openshell_core:: Result < openshell_server:: ComputeDriverInstance > {
219215 let mut config: vm:: VmComputeConfig = context. driver_config ( ) ?;
220216 if config. state_dir . as_os_str ( ) . is_empty ( ) {
221217 config. state_dir = vm:: VmComputeConfig :: default_state_dir ( ) ;
@@ -236,8 +232,11 @@ impl openshell_server::ComputeDriverFactory for VmFactory {
236232 & mut config. guest_tls_key ,
237233 context. guest_tls_paths ( ) ,
238234 ) ;
239- let endpoint = vm:: spawn ( context. gateway_config ( ) , & config, context. otlp_config ( ) ) . await ?;
240- context. finish_remote ( endpoint) . await
235+ let endpoint =
236+ vm:: spawn ( context. gateway_log_level ( ) , & config, context. otlp_config ( ) ) . await ?;
237+ Ok ( openshell_server:: ComputeDriverInstance :: ManagedRemote (
238+ endpoint,
239+ ) )
241240 }
242241}
243242
0 commit comments