# AzureKubernetesPersistentVolumeExtensions Methods

- Package: [Aspire.Hosting.Azure.Kubernetes](/reference/api/csharp/aspire.hosting.azure.kubernetes.md)
- Type: [AzureKubernetesPersistentVolumeExtensions](/reference/api/csharp/aspire.hosting.azure.kubernetes/azurekubernetespersistentvolumeextensions.md)
- Kind: `Methods`
- Members: `1`

Provides extension methods for adding Kubernetes persistent volumes to an [AzureKubernetesEnvironmentResource](/reference/api/csharp/aspire.hosting.azure.kubernetes/azurekubernetesenvironmentresource.md).

<a id="addpersistentvolume"></a>
<a id="addpersistentvolume-iresourcebuilder-azurekubernetesenvironmentresource-string"></a>

## AddPersistentVolume(IResourceBuilder<AzureKubernetesEnvironmentResource>, string)

- Name: `AddPersistentVolume(IResourceBuilder<AzureKubernetesEnvironmentResource>, string)`
- Modifiers: `extension`
- Returns: `IResourceBuilder<KubernetesPersistentVolumeResource>`
- Source: [GitHub](https://github.com/microsoft/aspire/blob/69db530a4816698cf1d5fa4557933e0ac4f127c6/src/Aspire.Hosting.Azure.Kubernetes/AzureKubernetesPersistentVolumeExtensions.cs#L57-L61)

Adds a Kubernetes PersistentVolumeClaim resource to the application model for the specified AKS environment.

```csharp
public static class AzureKubernetesPersistentVolumeExtensions
{
    public static IResourceBuilder<KubernetesPersistentVolumeResource> AddPersistentVolume(
        this IResourceBuilder<AzureKubernetesEnvironmentResource> builder,
        string name)
    {
        // ...
    }
}
```

## Parameters

- `builder` (`IResourceBuilder<AzureKubernetesEnvironmentResource>`)
  The AKS environment resource builder.
- `name` (`string`)
  The name of the persistent volume resource.

## Returns

`IResourceBuilder<KubernetesPersistentVolumeResource>` -- A builder for the new `Kubernetes.KubernetesPersistentVolumeResource`.

## Remarks

The persistent volume is associated with the AKS environment's underlying Kubernetes environment and generates a `v1.PersistentVolumeClaim` in the Helm chart output.

When no storage class is configured, the generated claim omits `spec.storageClassName` so the cluster's default storage class is used. A standard AKS cluster dynamically provisions an Azure managed disk for such claims. Use `KubernetesPersistentVolumeExtensions.WithStorageClass` to select a different storage class explicitly.

## Examples

```csharp
var aks = builder.AddAzureKubernetesEnvironment("aks");

var data = aks.AddPersistentVolume("data")
    .WithCapacity("20Gi");

builder.AddProject<Projects.Api>("api")
    .WithPersistentVolume(data, "/data");
```

## ATS metadata

### ATS export

- Available to Polyglot AppHosts through the Aspire Type System.
