Deploy the complete AI SRE stack on OpenShift from a single custom resource. Agent, UI, PostgreSQL, monitoring — fully lifecycle-managed.
One CR. Seven reconcilers. Zero manual wiring.
ClusterRole with configurable RBAC scope, WS token Secret (32-char hex, never rotated), 1Gi memory PVC (gated — Deployment only starts after PVC is Bound), Deployment + Service.
UBI 9 postgresql-15 StatefulSet with RHSCL env vars. pg-data PVC is retained on CR delete — data survives operator upgrades. Headless + ClusterIP Services. pg-auth Secret generated once.
nginx Deployment serving the React SPA. oauth-proxy sidecar with TLS on :8443. Route hostname auto-detected from cluster ingress config. OAuthClient redirect URI patched after Route is admitted.
ServiceMonitor targeting agent /metrics. PrometheusRule with PulseAgentDown, PulsePostgreSQLDown, and PulseUIDown alert rules. Toggle with monitoring.enabled: true.
Model Context Protocol server for extending the agent with custom tools. Deployed as a separate Deployment + Service. Toggle with agent.mcp.enabled: true.
UI ingress restricted to OCP router + Prometheus only. PostgreSQL ingress restricted to agent pods only. Zero trust by default — NetworkPolicy created for every CR.
On first reconcile: reads ingress domain from ingresses.config.openshift.io/cluster, oauth-proxy image digest from ImageStream, ACM availability from namespace existence. Cached with sync.Once — zero API calls after warmup.
pulse.ai/cleanup finalizer removes all cluster-scoped resources (ClusterRole, ClusterRoleBinding, OAuthClient) when the CR is deleted. No orphans, ever.
Install via OLM so the operator appears in Installed Operators and gets auto-upgrades.
Progressive autonomy. You decide how much the agent can act without asking.
Operator layout. Every managed resource is CR-scoped — multiple CRs coexist on the same cluster.
The full Pulse ecosystem.
Pair with Pulse Agent and Pulse UI for the complete AI SRE experience on OpenShift.