Service plans are operator-side presets for OpenClawInstance.spec.plan.
They let platform operators publish named, reviewable instance baselines such as:
- CPU and memory requests/limits
- persistent storage size
- default OpenClaw config fragments
- which parts remain overridable per instance
A plan is resolved by the operator from SERVICE_PLANS_JSON (rendered from Helm servicePlans) and then merged into the instance spec during reconciliation.
Use a plan when you want a stable, queryable product/profile name instead of repeating the same resource and config defaults in every manifest.
Example:
apiVersion: openclaw.rocks/v1alpha1
kind: OpenClawInstance
metadata:
name: architect-bot
spec:
plan: architect-juno
envFrom:
- secretRef:
name: openclaw-api-keysThe instance may still provide explicit overrides for fields that the selected plan marks as overridable.
The operator stores the plan registry in the SERVICE_PLANS_JSON environment variable.
Examples:
# show the raw plan registry configured on the operator deployment
kubectl -n openclaw-system get deploy openclaw-operator \
-o jsonpath='{.spec.template.spec.containers[0].env[?(@.name=="SERVICE_PLANS_JSON")].value}' | jq .# list only the plan names
kubectl -n openclaw-system get deploy openclaw-operator \
-o jsonpath='{.spec.template.spec.containers[0].env[?(@.name=="SERVICE_PLANS_JSON")].value}' \
| jq -r 'keys[]'Adjust the namespace/deployment name to match your installation.
Intent: first real Architect-Bot baseline for serious interactive product and architecture work.
- CPU request:
1 - CPU limit:
4 - memory request:
4Gi - memory limit:
8Gi - storage:
20Gi
architect-juno currently uses an OpenRouter-only transition posture.
This is deliberate and temporary. It exists so the first operator-backed Architect plan can be materialized with the currently available provider path. It should not be read as the permanent long-term Architect routing/provider design.
Current default model refs in the plan:
- primary:
openrouter/anthropic/claude-sonnet-4.6 - fallback:
openrouter/openai/gpt-5.1-codex
When a user selects spec.plan: architect-juno, they are asking for:
- a non-toy Architect baseline
- enough CPU/memory/storage headroom for long-running interactive work
- a named, operator-curated default config profile rather than ad-hoc per-instance sizing
This first materialization intentionally stays narrow:
- it uses the existing operator plan mechanism
- it sets only supported resource/storage/config defaults
- it does not introduce a new operator API for richer Architect semantics yet
Future plans can be added to this catalog in the same format.
Suggested next comparison slot:
Use this section later to document how architect-ceres differs from architect-juno, for example in:
- target workload
- model posture
- resource envelope
- override policy
- session/runtime topology