v0.4.0
[0.4.0] - 2026-02-21
Added
-
Prometheus metrics for hot-reload operations — three new domain-specific metrics exposed at
/metrics:homeassistant_reload_total{component, result}— counter per component (automation/scene/script) and result (success/failed/skipped)homeassistant_reload_duration_seconds{component}— histogram (buckets: 0.5s–30s) for reload latency percentileshomeassistant_reload_retries_total{component}— extra retry attempts beyond the first; non-zero value indicates the reload required more than one attempt- All data sourced from existing
ReloadResultfields — no additional API calls required
-
HomeAssistantAutomation CRD: Declarative automation management with hot-reload capabilities
- Full automation definition via CRD with triggers, conditions, and actions
- Uses
runtime.RawExtensionfor flexible YAML compatibility with Home Assistant syntax - Aggregates multiple automation CRs into single ConfigMap (
<name>-automations) - Finalizer-based deletion: regenerates ConfigMap without removed automation before CR deletion
- Enable/disable without deletion via
spec.enabledfield - Short names:
haautomation,haauto
-
HomeAssistantScene CRD: Declarative scene management for Home Assistant
- Aggregation pattern - multiple CR instances → single
scenes.yaml - Entity validation with pattern regex (
domain.object_id) - Flexible entity attributes support via
runtime.RawExtension - Short names:
hascene,hasc - Status tracking: Ready, LastActivated, LastReloadTime
- Finalizer-based cleanup - regenerates ConfigMap without deleted scene
- Auto-reload control via
spec.autoReload(default: true)
- Aggregation pattern - multiple CR instances → single
-
HomeAssistantScript CRD: Declarative script management for Home Assistant
- Aggregation pattern - multiple CR instances → single
scripts.yaml - Flexible sequence definition via
runtime.RawExtension - Input parameters support via
spec.fieldsmap - Short names:
hascript,hascp - Status tracking: Ready, LastReloadTime, LastReloadMethod
- Finalizer-based cleanup - regenerates ConfigMap without deleted script
- Auto-reload control via
spec.autoReload(default: true)
- Aggregation pattern - multiple CR instances → single