minio / kes

Key Managament Server for Object Storage and more
https://min.io/docs/kes/concepts/
GNU Affero General Public License v3.0
456 stars 95 forks source link

honor offline caching in `/v1/status` API #412

Closed aead closed 10 months ago

aead commented 10 months ago

Now, the /v1/status API will not try fetch the backend keystore status if:

The idea here is that if the cache considered the backend keystore as offline then it is unlikely that a Status suceeds. Instead, we can directly return unreachable.

Once, the keystore becomes available again, the cache will detect it eventually (on its next health check cycle).

Among other things, this improves pod availability when /v1/status is used as (part of) readiness probes. (i.e. MinIO) Such probes are now less likely to time out since /v1/status returns immediately. However, if the backend keystore becomes unavailable and a /v1/status request arrives BEFORE the cache detects that the keystore is offline then these requests may time out. Hence, it is recommended to use readiness probes with a retry threshold > 1.