Home Assistant Helm chart
This repository maintains a public chart for the official Home Assistant
Container image. It declares the Deployment, Service, optional Ingress routes,
and persistent /config volume. The chart defaults to the upstream image
version in Chart.yaml.appVersion; no custom image is built.
The Recreate deployment strategy prevents two instances writing the same
configuration volume. Host networking and privileged mode are optional, not
defaults. Startup, readiness, and liveness probes are included.
Install from the public indexed repository:
helm repo add brunner.ninja https://brunner.ninja/charts
helm repo update brunner.ninja
helm upgrade --install home-assistant brunner.ninja/home-assistant \
--namespace home-assistant --create-namespace \
--set ingress.enabled=true --set ingress.host=ha.example.org
Or install this checkout with ./install.sh -f my-values.yaml. To reuse a
volume, set persistence.existingClaim. Never delete a bound claim during a
normal upgrade; the PVC contains Home Assistant state.
The homelab's namespace, existing PVC, network mode, fixed LAN address, ingress host, and Authentik route are selected in the GitOps application. Its PostgreSQL server is a separate Argo CD application and is not installed by this chart.
Run ./scripts/test.sh for a local lint/render check. Main-branch CI packages
the chart using the upstream application version Git tag (for example
v2026.10.2) and git describe for subsequent chart-only changes, publishes
to brunner.ninja/charts, then promotes exactly that package in GitOps. CI
needs PACKAGE_USERNAME, PACKAGE_TOKEN, and GITOPS_TOKEN, but no kubeconfig.