How execution reaches your cluster
- The executor runs in your cluster and polls the control plane outbound over HTTPS, authenticating with a scoped API key. There is no inbound path: ChangeGuard cannot connect into your cluster, and there is no kubeconfig, token, or cloud credential for your cluster stored on our side.
- The control plane’s only lever is what it serves to the executor from the validated queue - work that has already passed the field allowlist and execution-policy checks.
- The executor applies patches using its own ServiceAccount, so every write is subject to Kubernetes RBAC evaluation in your cluster, attributable in your audit logs, and revocable by you at any moment.
Two independent fences
Autonomous execution is bounded by two mechanisms that fail independently:- The execution policy (logical): namespaces, fix types, confidence floor, hourly cap - evaluated by the control plane at queue and serve time.
- The executor’s RBAC (physical): a namespace-scoped Role limited to patching workload resources (Deployments and similar) in the namespaces you chose at install time.
You hold the off switches
Every one of these is under your control, effective immediately, with no ChangeGuard involvement:- Scale the executor to zero (or uninstall it) - queued work simply holds in
approvedand executes nothing; the platform was validated to hold and resume cleanly across executor outages. - Revoke the executor’s API key - the poll loop stops being served.
- Shrink the executor’s RBAC - writes outside the new scope fail at the API server.
- Empty the execution policy or lower the autonomy dial - nothing further auto-queues, and already-queued work is demoted at serve time.
The executor is intentionally boring: it fetches validated work, records pre-state, applies a patch, reports the result, and heartbeats. Analysis, policy, verification, and audit all live in the control plane where they cannot widen cluster access. Executor liveness is monitored - a stale executor is flagged in the dashboard so “nothing is happening” is always distinguishable from “nothing is wrong.”