Kubernetes operator that manages BotModule and IpcConfig resources for the eevee chatbot ecosystem.
This operator manages two custom resource types:
- BotModule - Deploys and manages all eevee modules (connectors, plugins, router, toolbox)
- IpcConfig - Manages NATS inter-process communication infrastructure
For each BotModule resource, the operator creates and maintains a Kubernetes Deployment, ConfigMap (for module configuration), and optional PersistentVolumeClaim. For each IpcConfig resource, the operator deploys and manages a NATS server with authentication.
The eevee Operator is installed using Helm. The chart is hosted in our custom repository.
- Helm 3.0+
- Kubernetes cluster with access to add Helm repositories
-
Add the eevee Helm repository:
helm repo add eevee https://helm.eevee.bot helm repo update
-
Install the CRDs and operator:
helm install eevee-crds eevee/crds --namespace eevee-bot helm install eevee-operator eevee/operator --namespace eevee-bot
The operator can be configured using Helm values. See the chart documentation at helm.eevee.bot for available options.
npm run buildThis command will:
- Run ESLint to check for code issues
- Compile TypeScript files
npm run devThis command will:
- Build the project
- Run the operator locally
npm run update-librariesUpdates the core eevee libraries to their latest versions.
| Variable | Default | Description |
|---|---|---|
NAMESPACE |
eevee-bot |
The namespace the operator should watch |
WATCH_OTHER_NAMESPACES |
false |
Watch resources in namespaces other than the operator's namespace |
KUBE_IN_CLUSTER_CONFIG |
false |
Use in-cluster Kubernetes configuration |
HTTP_API_PORT |
9000 |
Port for the HTTP API server |
EEVEE_OPERATOR_API_TOKEN |
(none) | Bearer token for authenticated API endpoints |
The operator automatically sets default health probes on module pods:
- Liveness probe: HTTP GET
/healthon the module'smetricsPort, withinitialDelaySeconds: 10andperiodSeconds: 30 - Readiness probe: HTTP GET
/healthon the module'smetricsPort, withinitialDelaySeconds: 5andperiodSeconds: 10 - Startup probe: None (modules typically start quickly)
Modules use setupHttpServer({ natsClients }) from @eeveebot/libeevee to wire the /health endpoint to NATS connectivity checks. When NATS is disconnected, /health returns 503, causing the readiness probe to fail and eventually triggering a liveness restart.
Custom probes can be specified via livenessProbe, readinessProbe, and startupProbe fields in the BotModule spec. These accept standard Kubernetes V1Probe objects and override the defaults entirely.
If a module has metrics: false, no default probes are set.
npm run buildnpm run devContributions are welcome! Please see the eevee contributing guide for details.
CC BY-NC-SA 4.0 — see LICENSE for the full text.