Project

General

Profile

Feature #13493

Updated by Tom Clegg almost 6 years ago

From [[Federation implementation roadmap]] First step in 

 https://dev.arvados.org/projects/arvados/wiki/Federation_implementation_roadmap 

 > When retrieving a workflow record for arvados-cwl-runner, API server notices workflow UUID is remote, and fetches it with salted token (instead of looking in local DB) 

 Implementation notes 
 Notes here: 

 https://dev.arvados.org/projects/arvados/wiki/Routing_multi_cluster_requests 

 Design questions: 

 * This is Is this a feature added to the current Rails API server, as a proxy in front of the new (Go) API server, or added to the SDK? 
 ** Adding to the Rails API server (#13497) seems complicated.    Requests need to be routed before they hit regular handling.    Requests to remote API servers tie up a request handler process. 
 * Implement ** A separate request broker can act as http handler middleware ("proxy a transparent proxy and route requests to remote cluster if applicable, otherwise fall through to next handler") the correct API server.  
 ** Embedding in the SDK means no new infrastructure required, but is less transparent. 

 Configuration Proposed strategy: 

 * Implement request routing in the Go SDK 
 * Add configs (similar Write an API broker in Go that uses the SDK. 

 # Client contacts the API broker with GET request 
 # API broker inspects uuid to Rails API's remote_hosts determine where the request should be sent. 
 # Sends request and remote_hosts_via_dns) to cluster config object in source:sdk/go/arvados/config.go gets response 
 # Returns result or error 

Back