dex icon indicating copy to clipboard operation
dex copied to clipboard

feat: grpc health service

Open mouchar opened this issue 10 months ago • 0 comments

Overview

Implements gRPC Health check using standard grpc library.

Reuses the health as reported by gosundheit health checker. Grpc health server implements also streaming Watch method, so it was necessary to add Stop() failback to stop server even if some clients ignore NOT_SERVING status. Timeout for graceful shutdown was chosen to match timeouts for http and telemetry servers.

What this PR does / why we need it

Dex already provides health check endpoint via HTTP. For integrations based on gRPC, notably if we want to use client-side health checks for higher reliability, as described here, we also need to report service health using grpc.health.v1.Health service.

Special notes for your reviewer

Golang is not my mother tongue, so if there is something utterly wrong, please let me know.

mouchar avatar Mar 04 '25 16:03 mouchar