...

Package healthz

import "sigs.k8s.io/controller-runtime/pkg/healthz"
Overview
Index

Overview ▾

Package healthz contains helpers from supporting liveness and readiness endpoints. (often referred to as healthz and readyz, respectively).

This package draws heavily from the apiserver's healthz package ( https://github.com/kubernetes/apiserver/tree/master/pkg/server/healthz ) but has some changes to bring it in line with controller-runtime's style.

The main entrypoint is the Handler -- this serves both aggregated health status and individual health check endpoints.

type CheckHandler

CheckHandler is an http.Handler that serves a health check endpoint at the root path, based on its checker.

type CheckHandler struct {
    Checker
}

func (CheckHandler) ServeHTTP

func (h CheckHandler) ServeHTTP(resp http.ResponseWriter, req *http.Request)

type Checker

Checker knows how to perform a health check.

type Checker func(req *http.Request) error

Ping returns true automatically when checked.

var Ping Checker = func(_ *http.Request) error { return nil }

type Handler

Handler is an http.Handler that aggregates the results of the given checkers to the root path, and supports calling individual checkers on subpaths of the name of the checker.

Adding checks on the fly is *not* threadsafe -- use a wrapper.

type Handler struct {
    Checks map[string]Checker
}

func (*Handler) ServeHTTP

func (h *Handler) ServeHTTP(resp http.ResponseWriter, req *http.Request)