Skip to content

v0.4.0

Choose a tag to compare

@przemekhys przemekhys released this 21 Feb 17:32
· 373 commits to main since this release
dcd480e

[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 percentiles
    • homeassistant_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 ReloadResult fields — 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.RawExtension for 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.enabled field
    • 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)
  • 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.fields map
    • 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)