Skip to content

Prerequisites

Before deploying OnCallM, ensure your environment meets these requirements.

Kubernetes Cluster

Minimum Requirements

  • Kubernetes version: v1.20 or higher
  • Node resources: At least 1 CPU core and 1GB RAM available
  • Storage: Persistent storage for configuration (optional)
  • Network: Outbound HTTPS access for OpenAI API calls

Supported Platforms

OnCallM works on any standard Kubernetes distribution:

  • Cloud Managed Kubernetes: EKS, GKE, AKS
  • Self-managed: kubeadm, k3s, RKE
  • Local development: kind, minikube, Docker Desktop

Required Tools

Helm 3.x

OnCallM uses Helm for package management and deployment.

Installation:

bash
# macOS
brew install helm

# Linux
curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash

# Windows
choco install kubernetes-helm

Verify installation:

bash
helm version

kubectl

You need kubectl configured to access your cluster.

Verify cluster access:

bash
kubectl cluster-info
kubectl get nodes

Monitoring Stack

Prometheus

OnCallM integrates with Prometheus for metrics collection.

Quick setup with helm:

bash
helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
helm repo update
helm install prometheus prometheus-community/kube-prometheus-stack

AlertManager

AlertManager sends alerts to OnCallM via webhooks.

Verify AlertManager is running:

bash
kubectl get pods -n monitoring -l app=alertmanager

AI Provider

OpenAI API Key

OnCallM uses OpenAI for intelligent analysis.

  1. Create an OpenAI account at platform.openai.com
  2. Generate an API key in the API Keys section
  3. Set usage limits to control costs
  4. Test the key:
bash
curl https://api.openai.com/v1/models \
  -H "Authorization: Bearer YOUR_API_KEY"

Cost Management

AI analysis incurs OpenAI API costs. Monitor your usage and set billing limits in your OpenAI dashboard.

Alternative AI Providers

OnCallM also supports:

  • Azure OpenAI: Enterprise-grade OpenAI in your Azure environment
  • Self-hosted models: Compatible with OpenAI API format (e.g., ollama, vLLM)

Network Requirements

Outbound Connectivity

OnCallM requires outbound HTTPS access to:

  • OpenAI API: api.openai.com:443
  • Package registries: For updates and dependencies

Inbound Connectivity

  • AlertManager: Must reach OnCallM webhook endpoint
  • Users: Access to OnCallM web interface (optional)

Firewall Configuration

If you have strict network policies:

yaml
# Example NetworkPolicy
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: oncallm-network-policy
spec:
  podSelector:
    matchLabels:
      app: oncallm
  policyTypes:
  - Egress
  egress:
  - to: []
    ports:
    - protocol: TCP
      port: 443  # HTTPS to OpenAI

Resource Planning

Compute Resources

Minimum:

  • CPU: 250m (0.25 cores)
  • Memory: 256Mi

Recommended:

  • CPU: 500m (0.5 cores)
  • Memory: 512Mi

High volume:

  • CPU: 1000m (1 core)
  • Memory: 1Gi

Storage

OnCallM is primarily stateless, but you may want persistent storage for:

  • Configuration files: 1GB
  • Logs: 5-10GB (with log rotation)
  • Temporary analysis data: 1-5GB

Security Considerations

RBAC Permissions

OnCallM needs minimal cluster access:

yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: oncallm-reader
rules:
- apiGroups: [""]
  resources: ["pods", "services", "endpoints", "events"]
  verbs: ["get", "list"]
- apiGroups: ["apps"]
  resources: ["deployments", "replicasets"]
  verbs: ["get", "list"]

Secrets Management

  • OpenAI API key: Store in Kubernetes Secret
  • TLS certificates: For secure webhook endpoints
  • Authentication: For web interface access

Verification Checklist

Before proceeding with installation, verify:

  • [ ] Kubernetes cluster is accessible
  • [ ] Helm 3.x is installed
  • [ ] Prometheus is running and collecting metrics
  • [ ] AlertManager is configured and functional
  • [ ] OpenAI API key is valid and has credits
  • [ ] Network policies allow required connectivity
  • [ ] Sufficient compute and storage resources available

Next Steps

Once prerequisites are met:

  1. Quick Start Installation
  2. Helm Installation Guide
  3. Configuration Options

Troubleshooting

Common Issues

Kubernetes version too old?

bash
kubectl version --short

Upgrade your cluster to v1.20+

Helm not found?

bash
which helm

Install Helm 3.x from helm.sh

Can't reach OpenAI?

bash
curl -I https://api.openai.com

Check network policies and firewalls

AlertManager not running?

bash
kubectl get pods -A | grep alertmanager

Install monitoring stack first

Getting Help

Released under the MIT License.