Feature #21773
openkeep-web and keepproxy should use Services.Keepstore.InternalURLs configs directly instead of requesting /arvados/v1/keep_services/accessible
Description
Background:
Currently sdk/go/keepclient
polls the /arvados/v1/keep_services/accessible
endpoint (which controller proxies through to railsapi) to find keepstore endpoints.
When the client is configured using environment variables, ARVADOS_KEEP_SERVICES
can be used to override discovery. However, when the client is configured using /etc/arvados/config.yml
, ARVADOS_KEEP_SERVICES
is ignored.
This makes it unnecessarily awkward to override only (for example) keep-web's upstream keepstore services for testing/troubleshooting purposes: in order for keep-web to use alternate backends, one would need to also run a controller+railsapi pair using the altered config.
Proposed change:
System services that act as keep clients (i.e., Go programs that use arvados.NewClientFromConfig()
) should obey the ARVADOS_KEEP_SERVICES
environment variable if set, otherwise use Services.Keepstore.InternalURLs
from the config file.
They could also periodically (once an hour?) check the discovery endpoint and log a warning if it doesn't match. OTOH this might be redundant with the existing config-sync approach (system services report in-use config file checksums via metrics, and healthcheck reports if they aren't all equal).
Files
Updated by Tom Clegg about 2 months ago
- File arvados-server-38051951da96557240fa64ffffe33a992f49d46d-dev arvados-server-38051951da96557240fa64ffffe33a992f49d46d-dev added
21773-keep-service-discovery @ 38051951da96557240fa64ffffe33a992f49d46d -- developer-run-tests: #4218
- Allow
ARVADOS_KEEP_SERVICES
environment variable to override service discovery in server context.
Updated by Peter Amstutz about 1 month ago
- Target version changed from Development 2024-05-22 sprint to Development 2024-06-05 sprint
Updated by Peter Amstutz about 1 month ago
- Target version changed from Development 2024-06-05 sprint to Development 2024-07-03 sprint
Updated by Peter Amstutz 13 days ago
- Target version changed from Development 2024-07-03 sprint to Development 2024-07-24 sprint
Updated by Peter Amstutz 1 day ago
- Target version changed from Development 2024-07-24 sprint to Development 2024-08-07 sprint