Quick Start

Prerequisites

  • Kubernetes 1.28+
  • Helm 3

1. Install the operator

helm install openclaw-operator \
  oci://ghcr.io/openclaw-rocks/charts/openclaw-operator \
  --namespace openclaw-operator-system \
  --create-namespace

2. Create a namespace and API key Secret

kubectl create namespace openclaw

kubectl create secret generic openclaw-api-keys \
  --namespace openclaw \
  --from-literal=ANTHROPIC_API_KEY=sk-your-key

3. Deploy an instance

kubectl apply -f - <<EOF
apiVersion: openclaw.rocks/v1alpha1
kind: OpenClawInstance
metadata:
  name: my-agent
  namespace: openclaw
spec:
  envFrom:
    - secretRef:
        name: openclaw-api-keys
  storage:
    persistence:
      enabled: true
      size: 10Gi
EOF

4. Verify

# Check instance status
kubectl get openclawinstance -n openclaw

# Check pods
kubectl get pods -n openclaw

The instance should reach Running phase within a minute or two.

What happens next

The operator creates a full stack of managed resources for your instance:

  • ServiceAccount, Role, RoleBinding for pod identity (least-privilege RBAC)
  • NetworkPolicy for default-deny network isolation
  • ConfigMap for OpenClaw configuration
  • PersistentVolumeClaim for data storage
  • PodDisruptionBudget for disruption protection
  • StatefulSet with the OpenClaw container
  • Service for in-cluster access
  • Gateway token Secret for API authentication

Configuration

You can configure OpenClaw via inline JSON in the CR:

spec:
  config:
    raw:
      mcpServers:
        filesystem:
          command: npx
          args: ["-y", "@modelcontextprotocol/server-filesystem", "/data"]

Or reference an external ConfigMap:

spec:
  config:
    configMapRef:
      name: my-openclaw-config
      key: openclaw.json

Next steps