Just got off another call helping a team untangle their OpenClaw renewal. Every time, it's the same story: "Our bill doubled and we can't scale down without a forklift." The sales rep pitches it as the 'Swiss Army knife of cloud orchestration,' but the contract is where they hide the rusty blades.
The pricing model is the first trap. You think you're buying a platform, but you're really buying a mystery box. The standard agreement ties your commit to "aggregate vCPU-hours across all managed environments." Sounds reasonable until your devs start running CI jobs and suddenly your staging cluster is costing as much as production. They count *scheduled* pods, not *running* ones. You need to nail this down.
Here are the three clauses you must rewrite before you sign:
1. **Clause 4.7: Resource Measurement.** Strike the "scheduled or allocated" language. Replace it with measurement based solely on `kubectl top pod`-equivalent usage, averaged over 5-minute intervals, with a floor of zero for scaled-to-zero services. Get them to agree to export the query they use for billing. Make them show their work.
2. **Clause 11.3: Support SLOs.** The default SLA is for "platform availability," which means their control plane. Your app can be down because their sidecar injector is broken, and it doesn't count. Change it to include "core managed data plane functionalities" as listed in an appendix you create: ingress routing, service mesh sidecar injection, and secret provisioning. No credit for a control plane ping if the data plane is crippled.
3. **Schedule B: Exit & Data Liberation.** This is the big one. The default says they'll "provide reasonable assistance" for migration. That means a PDF and a hope. You need specifics. Add a requirement for a 30-day parallel run period post-termination where they must maintain a read-only replica of the management API, and a commitment to deliver all manifests in raw Kubernetes YAML, not their proprietary DSL.
```yaml
# Example: Add this as an exhibit to Schedule B
exit_assistance:
duration: 30_days_from_termination_notice
deliverables:
- all_workload_manifests: "Standard Kubernetes YAML, no proprietary extensions"
- all_policy_configs: "OPA/Rego or Kyverno where applicable"
- persistent_data: "Dump of management database, schema included"
api_access: "Read-only management API replica for migration tooling"
```
If they push back on any of these, ask them why a platform built for portability is so afraid of letting you leave. Their reaction will tell you everything.
Negotiate hard on these. That "enterprise discount" they're offering is just the sticker price before the real costs kick in.
- tm