Release Notes
June 29, 2026 ยท View on GitHub
v3 highlights
- Leader election is available for multi-replica controller deployments. Only the leader runs checks and reaps pods, while all replicas serve the UI and APIs.
- The shipped Kustomize base and Helm chart enable leader election by default so the default
replicas: 2deployment does not race controller scheduling. - Leader election is configured with
KH_LEADER_ELECTION_*environment variables and requires Lease RBAC (coordination.k8s.ioleases). - Built-in checks (daemonset, deployment, and others) live in their own repositories under the
kuberhealthyGitHub organization. - Prometheus metrics include controller health, run counters, and a versioned catalog in METRICS_CATALOG.MD.
Helm chart repository
- Independent Helm chart releases are published from
kuberhealthy/kuberhealthy-helm. - The main Kuberhealthy repository keeps
deploy/helm/kuberhealthyas a source install path and compatibility reference. - Existing Helm releases can move from the in-tree chart to the dedicated chart repository without changing the deployed workload by keeping the same release name, namespace, user values, and deployed image. See HELM_CHART_REPOSITORY_MIGRATION.md.
- The in-tree chart is not a wrapper chart. Source-tree install and upgrade
commands that reference
deploy/helm/kuberhealthyrender the in-tree chart.
Use this migration path for an existing release:
RELEASE=kuberhealthy
NAMESPACE=kuberhealthy
DEPLOYMENT=kuberhealthy
helm get values "${RELEASE}" -n "${NAMESPACE}" --all -o yaml > kuberhealthy-values.yaml
KH_IMAGE="$(kubectl get deployment "${DEPLOYMENT}" -n "${NAMESPACE}" \
-o jsonpath='{.spec.template.spec.containers[?(@.name=="kuberhealthy")].image}')"
helm repo add kuberhealthy https://raw.githubusercontent.com/kuberhealthy/kuberhealthy-helm/main
helm repo update
helm upgrade "${RELEASE}" kuberhealthy/kuberhealthy \
--version 1.0.2 \
-n "${NAMESPACE}" \
--reuse-values \
-f kuberhealthy-values.yaml \
--set imageURL="${KH_IMAGE}"
helm status "${RELEASE}" -n "${NAMESPACE}"
kubectl rollout status deployment/"${DEPLOYMENT}" -n "${NAMESPACE}"
Upgrade notes
- v3 uses the
HealthCheckCRD. Use a clean reinstall and recreate checks with the v3 schema.