func()

in pkg/server/healthz.go [44:67]


func (h *HealthZ) ServeHTTP(w http.ResponseWriter, _ *http.Request) {
	klog.V(5).Infof("Started health check")
	ctx, cancel := context.WithTimeout(context.Background(), h.RPCTimeout)
	defer cancel()

	conn, err := h.dialUnixSocket()
	if err != nil {
		http.Error(w, err.Error(), http.StatusServiceUnavailable)
		return
	}
	defer conn.Close()

	// create the health check grpc client
	client := grpc_health_v1.NewHealthClient(conn)
	// check health check response against gRPC endpoint.
	err = h.checkRPC(ctx, client)
	if err != nil {
		http.Error(w, err.Error(), http.StatusServiceUnavailable)
		return
	}
	w.WriteHeader(http.StatusOK)
	w.Write([]byte("ok"))
	klog.V(5).Infof("Completed health check")
}