Project

General

Profile

Actions

Idea #13497

closed

[API] Initial "arvados-controller" server that proxies API endpoints to Rails server

Added by Tom Clegg almost 6 years ago. Updated over 5 years ago.

Status:
Resolved
Priority:
Normal
Assigned To:
Category:
-
Target version:
Story points:
0.5
Release:
Release relationship:
Auto

Description

Background

This is the first step toward retiring the Rails API server (#9053). It unblocks:
  • implementing new APIs in Go (without increasing the discovery/routing burden in every client/SDK)
  • porting individual APIs to Go (without having to update all clients/SDKs each time, or proxy requests through Rails)
  • federation routing (#13493)
Related goal:
  • refactor existing Go services as packages so they can be used in unit tests

Objective

This initial version changes the way requests are routed inside an API server node.
  • Before: client → Nginx → arvados-api-server
  • After: client → Nginx → arvados-controller → arvados-api-server
This version does not add or change any new API endpoints, port any existing API endpoints to Go, or implement load balancing or service discovery. For example:
  • Request and response headers are passed through blindly
  • All requests are proxied to one single arvados-api-server (Rails) service at the configured address and port (typically localhost:8000)

Requirements

Load configuration from the cluster configuration document from #12260. There will be no arvados-controller config file.


Subtasks 4 (0 open4 closed)

Task #13584: Review 13497-controllerResolvedTom Clegg06/15/2018Actions
Task #13654: Update docsResolvedTom Clegg06/15/2018Actions
Task #13655: Review 13497-controllerResolvedTom Clegg06/15/2018Actions
Task #13938: Review 13497-controllerResolvedTom Clegg06/15/2018Actions

Related issues

Related to Arvados - Bug #14383: [API] Java SDK double slash bug with arvados-controllerResolvedTom Morris02/13/2019Actions
Blocks Arvados Epics - Idea #9053: Port API server to GoNewActions
Blocks Arvados - Feature #13493: Federated record retrievalResolvedPeter Amstutz06/28/2018Actions
Blocks Arvados - Idea #13574: [Controller] Update container priorities asynchronouslyNewActions
Actions

Also available in: Atom PDF