Idea #9551
closed[SDKs] Python SDK supports an ARVADOS_KEEP_SERVICES environment variable
Description
ARVADOS_KEEP_SERVICES is an environment variable that lets the client set its own list of Keep services, instead of fetching it from the API server. It is a space-separated list of Keep API endpoint URLs. Those endpoints are expected to be non-disk services: the client should assume it does not know how many replicas the service will store, should send the X-Keep-Desired-Replicas request header, and respect the X-Keep-Replicas-Stored response header.
A client should pay attention to this env var if its api_host/token/insecure settings were also taken from the environment. IOW, treat it as an additional client config entry, rather than checking the environment variable from the depths of KeepClient.
Functional requirements:
- When the variable is set, it does not query the API server for the Keep services list, or respect the ARVADOS_KEEP_PROXY environment variable. Instead it uses the value of the variable as the services list, following the rules above.
- When the variable is unset or empty, the Keep client should behave as it currently does: if ARVADOS_KEEP_PROXY is set, it treats that as a single service to use. Otherwise, it gets the list of Keep services from the API server.
Related issues