# K3sBuilderExtensions

- Kind: `class`
- Package: [CommunityToolkit.Aspire.Hosting.K3s](/reference/api/csharp/communitytoolkit.aspire.hosting.k3s.md)
- Version: `13.4.1-beta.706`
- Namespace: `Aspire.Hosting`
- Target framework: `net10.0`
- Source: [GitHub](https://github.com/CommunityToolkit/Aspire/blob/d479e13473b1d29d06b974f144a0049289a3cb5c/src/CommunityToolkit.Aspire.Hosting.K3s/K3sBuilderExtensions.cs)

Provides extension methods for adding k3s cluster resources to an `Hosting.IDistributedApplicationBuilder`.

## Definition

```csharp
namespace Aspire.Hosting;

public static class K3sBuilderExtensions
{
    // ...
}
```

## Methods

- [AddK3sCluster(IDistributedApplicationBuilder, string, int?, int?)](/reference/api/csharp/communitytoolkit.aspire.hosting.k3s/k3sbuilderextensions/methods.md#addk3scluster-idistributedapplicationbuilder-string-int-int) : `IResourceBuilder<K3sClusterResource>` `extension` `ats export` -- Adds a k3s Kubernetes cluster to the distributed application.
- [WithAgentCount(IResourceBuilder<K3sClusterResource>, int)](/reference/api/csharp/communitytoolkit.aspire.hosting.k3s/k3sbuilderextensions/methods.md#withagentcount-iresourcebuilder-k3sclusterresource-int) : `IResourceBuilder<K3sClusterResource>` `extension` `ats export` -- Sets the number of k3s agent (worker) nodes to add to the cluster.
- [WithDataVolume(IResourceBuilder<K3sClusterResource>, string?)](/reference/api/csharp/communitytoolkit.aspire.hosting.k3s/k3sbuilderextensions/methods.md#withdatavolume-iresourcebuilder-k3sclusterresource-string) : `IResourceBuilder<K3sClusterResource>` `extension` `ats export` -- Mounts a named Docker volume at the k3s data directory so cluster state persists across AppHost restarts.
- [WithDisabledComponent(IResourceBuilder<K3sClusterResource>, string)](/reference/api/csharp/communitytoolkit.aspire.hosting.k3s/k3sbuilderextensions/methods.md#withdisabledcomponent-iresourcebuilder-k3sclusterresource-string) : `IResourceBuilder<K3sClusterResource>` `extension` `ats export` -- Disables a built-in k3s component ( `--disable=<component>`).
- [WithExtraArg(IResourceBuilder<K3sClusterResource>, string)](/reference/api/csharp/communitytoolkit.aspire.hosting.k3s/k3sbuilderextensions/methods.md#withextraarg-iresourcebuilder-k3sclusterresource-string) : `IResourceBuilder<K3sClusterResource>` `extension` `ats export` -- Appends a raw argument to the `k3s server` command line.
- [WithHelmImage(IResourceBuilder<K3sClusterResource>, string?, string?, string?)](/reference/api/csharp/communitytoolkit.aspire.hosting.k3s/k3sbuilderextensions/methods.md#withhelmimage-iresourcebuilder-k3sclusterresource-string-string-string) : `IResourceBuilder<K3sClusterResource>` `extension` `ats export` -- Overrides the container image used to run `helm upgrade --install` for all [HelmReleaseResource](/reference/api/csharp/communitytoolkit.aspire.hosting.k3s/helmreleaseresource.md) children of this cluster.
- [WithK3sVersion(IResourceBuilder<K3sClusterResource>, string)](/reference/api/csharp/communitytoolkit.aspire.hosting.k3s/k3sbuilderextensions/methods.md#withk3sversion-iresourcebuilder-k3sclusterresource-string) : `IResourceBuilder<K3sClusterResource>` `extension` `ats export` -- Sets the k3s image version used by the cluster server and all its agent nodes.
- [WithKubectlImage(IResourceBuilder<K3sClusterResource>, string?, string?, string?)](/reference/api/csharp/communitytoolkit.aspire.hosting.k3s/k3sbuilderextensions/methods.md#withkubectlimage-iresourcebuilder-k3sclusterresource-string-string-string) : `IResourceBuilder<K3sClusterResource>` `extension` `ats export` -- Overrides the container image used to run `kubectl apply` for all [K8sManifestResource](/reference/api/csharp/communitytoolkit.aspire.hosting.k3s/k8smanifestresource.md) children of this cluster.
- [WithLifetime(IResourceBuilder<K3sClusterResource>, ContainerLifetime)](/reference/api/csharp/communitytoolkit.aspire.hosting.k3s/k3sbuilderextensions/methods.md#withlifetime-iresourcebuilder-k3sclusterresource-containerlifetime) : `IResourceBuilder<K3sClusterResource>` `extension` `ats export` -- Sets the container lifetime for the k3s cluster and all its agent nodes.
- [WithPodSubnet(IResourceBuilder<K3sClusterResource>, string)](/reference/api/csharp/communitytoolkit.aspire.hosting.k3s/k3sbuilderextensions/methods.md#withpodsubnet-iresourcebuilder-k3sclusterresource-string) : `IResourceBuilder<K3sClusterResource>` `extension` `ats export` -- Sets the CIDR range for pod IP addresses ( `--cluster-cidr`).
- [WithServiceSubnet(IResourceBuilder<K3sClusterResource>, string)](/reference/api/csharp/communitytoolkit.aspire.hosting.k3s/k3sbuilderextensions/methods.md#withservicesubnet-iresourcebuilder-k3sclusterresource-string) : `IResourceBuilder<K3sClusterResource>` `extension` `ats export` -- Sets the CIDR range for Service cluster IPs ( `--service-cidr`).
