This repository contains a minimal Go example program under cmd/example
that reports its status back to Kuberhealthy. The example uses the official checkclient
package from the Kuberhealthy project, which you can import into your own Go checks.
Import the client and report success or failure:
import checkclient "github.com/kuberhealthy/kuberhealthy/v3/pkg/checkclient"
func runCheck() error {
// do some work...
if problem {
return checkclient.ReportFailure([]string{"something went wrong"})
}
return checkclient.ReportSuccess()
}
The client expects the KH_REPORTING_URL
and KH_RUN_UUID
environment variables, which are provided by Kuberhealthy when the check runs.
cmd/example/main.go
demonstrates using checkclient
to report either success or failure based on the FAIL
environment variable.
make build
make docker-build IMAGE=yourrepo/example-check:tag
make docker-push IMAGE=yourrepo/example-check:tag
Create a KHCheck
that references the image you built:
apiVersion: kuberhealthy.github.io/v2
kind: KHCheck
metadata:
name: example-check
spec:
runInterval: 1m
timeout: 30s
podSpec:
containers:
- name: example
image: yourrepo/example-check:tag
env:
- name: FAIL
value: "true"
Apply the resource to any cluster running Kuberhealthy:
kubectl apply -f khcheck.yaml