| name | diagnose-storage-issue |
| description | Diagnose storage and persistent volume issues. Checks PVC binding, storage class configuration, and volume mount status. Use when pods are stuck pending due to volume issues. Keywords: PVC, PV, storage, volume, pending, mount, storage class. |
| metadata | [object Object] |
Diagnose Storage Issue
Preconditions
Before applying this skill, verify:
- PVC name or pod name is known
- Namespace is specified
- Storage issue symptoms observed
Actions
1. Get PVC Status
Check PersistentVolumeClaim binding status.
mcp_tool: kubernetes-mcp-server/resources_get
params:
apiVersion: v1
kind: PersistentVolumeClaim
name: $pvc_name
namespace: $namespace
timeout: 30s
2. Get PV Details
Check bound PersistentVolume if exists.
mcp_tool: kubernetes-mcp-server/resources_list
params:
apiVersion: v1
kind: PersistentVolume
timeout: 30s
3. Check Storage Classes
Verify storage class exists and is configured.
mcp_tool: kubernetes-mcp-server/resources_list
params:
apiVersion: storage.k8s.io/v1
kind: StorageClass
timeout: 30s
4. Get Pod Volume Mounts
Check pod's volume mount status.
mcp_tool: kubernetes-mcp-server/pods_get
params:
name: $pod_name
namespace: $namespace
timeout: 30s
5. Check Events
Look for storage-related events.
mcp_tool: kubernetes-mcp-server/events_list
params:
namespace: $namespace
timeout: 30s
Success Criteria
The skill succeeds when:
- PVC status determined (Bound/Pending/Lost)
- Storage class availability confirmed
- Root cause identified
Failure Handling
If storage issue cannot be resolved:
- Check CSI driver logs
- Verify node has available storage
- Escalate with volume details
Examples
Input Context:
{
"pvc_name": "data-volume",
"namespace": "default",
"pod_name": "db-pod-abc123"
}
Output:
{
"pvc_status": "Pending",
"pv_bound": false,
"storage_class": "local-path",
"diagnosis": "No available PV matching storage class requirements",
"recommendation": "Create PV with matching storage class or use dynamic provisioning"
}