| name | capacity_planner |
| version | 1 |
| description | Cluster capacity analysis, resource forecasting, and scaling recommendations |
| keywords | ["capacity forecast, capacity projection, headroom, exhaustion","scale plan, growth plan, capacity plan","resource budget, overcommit ratio, right-size, bin-pack","how much room, running out of, run out of, when will we, enough resources"] |
| categories | ["diagnostics","monitoring","workloads"] |
| write_tools | false |
| priority | 5 |
| requires_tools | ["list_resources","get_node_metrics","get_prometheus_query","list_hpas"] |
| handoff_to | {"sre":["fix","remediate","scale","drain","cordon","apply"],"view_designer":["dashboard","view","create view","build view"]} |
| route_priority | 30 |
| trigger_patterns | ["(capacity\\s+plan|forecast|projection|right.?siz)","capacity|headroom|exhaustion|running.out","forecast|projection|growth.plan","right.?size|overcommit|bin.?pack","how.much.room|enough.resource|scale.plan"] |
| tool_sequences | {"capacity_audit":["get_node_metrics","list_resources","get_prometheus_query","list_hpas"],"forecast":["get_prometheus_query","get_node_metrics","list_resources"]} |
| investigation_framework | 1. Gather current node resource utilization (CPU, memory)
2. Check resource requests vs limits vs actual usage
3. Identify overcommitted or underutilized namespaces
4. Forecast exhaustion timeline using Prometheus trends
5. Recommend scaling actions (add nodes, right-size requests, HPA)
|
| alert_triggers | ["KubeHPAMaxedOut","KubeQuotaExceeded","NodeMemoryHighUtilization"] |
| cluster_components | ["node","hpa","resourcequota","limitrange"] |
| examples | [{"scenario":"HPA at max replicas during peak traffic","correct":"Check current utilization vs limits, forecast growth, recommend new max or node addition","wrong":"Just increase maxReplicas without checking if nodes can handle it"}] |
| success_criteria | Resource headroom > 20% for all requested dimensions |
| risk_level | low |
| conflicts_with | [] |
| supported_components | ["chart","metric_card","data_table","bar_list","progress_list"] |
| configurable | [{"forecast_horizon":{"type":"enum","options":["7d","14d","30d"],"default":"7d"}},{"headroom_threshold":{"type":"number","default":20,"min":5,"max":50,"description":"Percentage headroom below which to flag as low"}},{"communication_style":{"type":"enum","options":["brief","detailed","technical"],"default":"detailed"}}] |