Install Reactor
Quickstart
Section titled “Quickstart”Create an API key in the UniFi UI under Settings → Control Plane → Integrations, then:
kubectl create namespace reactor-system
kubectl -n reactor-system create secret generic unifi-reactor-credentials \ --from-literal=UNIFI_API_KEY=<your-api-key>
helm install reactor oci://ghcr.io/robbeverhelst/charts/reactor \ --namespace reactor-system \ --set unifi.url=https://192.168.1.1Or without Helm, using the manifest bundle from the latest release:
kubectl apply -f https://github.com/robbeverhelst/unifi-reactor/releases/latest/download/install.yamlConfirm it can see your hardware:
kubectl -n reactor-system logs deploy/reactor | grep 'state transition'# INFO state transition provider=unifi key=ups from= to=online# INFO state transition provider=unifi key=wan from= to=primaryThe first observation reports every key it can see, so these lines are your inventory. For the full per-poll state, set log.level=debug.
The CRD
Section titled “The CRD”The Automation CRD is a template in this chart rather than a file under crds/. Helm installs a chart’s crds/ directory on first install and never touches it again on upgrade, silently — so a release that changed the schema would upgrade cleanly while the cluster kept the old CRD, and the operator would start writing fields the API server rejects.
As a template it upgrades with everything else. It carries helm.sh/resource-policy: keep, so helm uninstall leaves both the CRD and every Automation stored under it in place. Removing it is a deliberate act:
kubectl delete crd automations.reactor.robbeverhelst.com # also deletes every Automation