pvc_create
Create PersistentVolumeClaims in Kubernetes namespaces using specified context, storage size, and access modes. Supports optional storage classes for dynamic provisioning.
Instructions
Create a PersistentVolumeClaim in the specified namespace.
Args: context_name: The Kubernetes context name namespace: The Kubernetes namespace name: The PersistentVolumeClaim name storage: The storage size (e.g., "10Gi") access_modes: List of access modes (e.g., ["ReadWriteOnce"]) storage_class: The storage class name (optional)
Returns: Status of the creation operation
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| access_modes | Yes | ||
| context_name | Yes | ||
| name | Yes | ||
| namespace | Yes | ||
| storage | Yes | ||
| storage_class | No |
Implementation Reference
- tools/pvc.py:27-55 (handler)The pvc_create MCP tool handler: decorated with @mcp.tool() for registration, uses Kubernetes CoreV1Api to create a PersistentVolumeClaim (PVC) in the specified namespace with given storage, access modes, and optional storage class. Includes input validation via type hints and docstring schema description.@mcp.tool() @use_current_context @check_readonly_permission def pvc_create(context_name: str, namespace: str, name: str, storage: str, access_modes: list, storage_class: str = None): """ Create a PersistentVolumeClaim in the specified namespace. Args: context_name: The Kubernetes context name namespace: The Kubernetes namespace name: The PersistentVolumeClaim name storage: The storage size (e.g., "10Gi") access_modes: List of access modes (e.g., ["ReadWriteOnce"]) storage_class: The storage class name (optional) Returns: Status of the creation operation """ core_v1: CoreV1Api = get_api_clients(context_name)["core"] pvc = V1PersistentVolumeClaim( metadata=V1ObjectMeta(name=name), spec=V1PersistentVolumeClaimSpec( access_modes=access_modes, resources=V1ResourceRequirements(requests={"storage": storage}), storage_class_name=storage_class ) ) created_pvc = core_v1.create_namespaced_persistent_volume_claim(namespace=namespace, body=pvc) return {"name": created_pvc.metadata.name, "status": "Created"}