# KubernetesEnvironmentResource

- Module: [Aspire.Hosting.Kubernetes](/reference/api/typescript/aspire.hosting.kubernetes.md)
- Version: `13.4.0-preview.1.26281.18`
- Kind: `handle`
- Source: [GitHub](https://github.com/microsoft/aspire)

Represents a Kubernetes environment resource that can host application resources.

## Definition

```typescript
interface KubernetesEnvironmentResource
  extends IComputeEnvironmentResource,
    IResource {
  dashboardEnabled: boolean;
  defaultImagePullPolicy: string;
  defaultServiceType: string;
  defaultStorageClassName: string;
  defaultStorageReadWritePolicy: string;
  defaultStorageSize: string;
  defaultStorageType: string;
  kubeConfigPath: string;
  addCertManager(
      name: string,
      chartVersion?: string): CertManagerResource;
  addGateway(name: string): KubernetesGatewayResource;
  addHelmChart(
      name: string,
      chartReference: string,
      chartVersion: string): KubernetesHelmChartResource;
  addIngress(name: string): KubernetesIngressResource;
  addNodePool(name: string): KubernetesNodePoolResource;
  configureDashboard(configure: (obj: KubernetesAspireDashboardResource) => Promise<void>): KubernetesEnvironmentResource;
  withDashboard(enabled?: boolean): KubernetesEnvironmentResource;
  withHelm(configure?: (obj: HelmChartOptions) => Promise<void>): KubernetesEnvironmentResource;
  withProperties(configure: (obj: KubernetesEnvironmentResource) => Promise<void>): KubernetesEnvironmentResource;
}
```

## Properties

- `dashboardEnabled`: `boolean` `get - set` -- Determines whether to include an Aspire dashboard for telemetry visualization in this environment.
- `defaultImagePullPolicy`: `string` `get - set` -- Gets or sets the default policy that determines how Docker images are pulled during deployment. Possible values are: "Always" - Always attempt to pull the image from the registry. "IfNotPresent" - Pull the image only if it is not already present locally. "Never" - Never pull the image, use only the local image. The default value is "IfNotPresent".
- `defaultServiceType`: `string` `get - set` -- Gets or sets the default Kubernetes service type to be used when generating artifacts.
- `defaultStorageClassName`: `string` `get - set` -- Specifies the default name of the storage class to be used for persistent volume claims in Kubernetes. This property allows customization of the storage class for specifying storage requirements such as performance, retention policies, and provisioning parameters. If set to null, the default storage class for the cluster will be used.
- `defaultStorageReadWritePolicy`: `string` `get - set` -- Gets or sets the default access policy for reading and writing to the storage.
- `defaultStorageSize`: `string` `get - set` -- Gets or sets the default storage size for persistent volumes.
- `defaultStorageType`: `string` `get - set` -- Specifies the default type of storage used for Kubernetes deployments.
- `kubeConfigPath`: `string` `get - set` -- Gets or sets the path to an explicit kubeconfig file for Helm and kubectl commands. When set, all Helm and kubectl commands will use `--kubeconfig` to target this file instead of the default `~/.kube/config`.

## Methods

- [addCertManager](/reference/api/typescript/aspire.hosting.kubernetes/kubernetesenvironmentresource/addcertmanager.md) -- `method` -- Installs cert-manager into a Kubernetes environment
    ```typescript
  addCertManager(name: string, chartVersion?: string): CertManagerResource
  ```
- [addGateway](/reference/api/typescript/aspire.hosting.kubernetes/kubernetesenvironmentresource/addgateway.md) -- `method` -- Adds a Kubernetes Gateway API Gateway resource to the application model as a child of the specified Kubernetes environment. The gateway generates a `gateway.networking.k8s.io/v1 Gateway` resource and one or more `HTTPRoute` resources in the Helm chart output at publish time.
    ```typescript
  addGateway(name: string): KubernetesGatewayResource
  ```
- [addHelmChart](/reference/api/typescript/aspire.hosting.kubernetes/kubernetesenvironmentresource/addhelmchart.md) -- `method` -- Adds an external Helm chart to be installed in the Kubernetes environment. The chart is installed via `helm upgrade --install` as a pipeline step after the main application Helm chart is deployed.
    ```typescript
  addHelmChart(name: string, chartReference: string, chartVersion: string): KubernetesHelmChartResource
  ```
- [addIngress](/reference/api/typescript/aspire.hosting.kubernetes/kubernetesenvironmentresource/addingress.md) -- `method` -- Adds a Kubernetes Ingress resource to the application model as a child of the specified Kubernetes environment. The ingress generates a `networking.k8s.io/v1 Ingress` resource in the Helm chart output at publish time.
    ```typescript
  addIngress(name: string): KubernetesIngressResource
  ```
- [addNodePool](/reference/api/typescript/aspire.hosting.kubernetes/kubernetesenvironmentresource/addnodepool.md) -- `method` -- Adds a named node pool to the Kubernetes environment.
    ```typescript
  addNodePool(name: string): KubernetesNodePoolResource
  ```
- [configureDashboard](/reference/api/typescript/aspire.hosting.kubernetes/kubernetesenvironmentresource/configuredashboard.md) -- `method` -- Configures the dashboard properties for this Kubernetes environment.
    ```typescript
  configureDashboard(configure: (obj: KubernetesAspireDashboardResource) => Promise<void>): KubernetesEnvironmentResource
  ```
- [withDashboard](/reference/api/typescript/aspire.hosting.kubernetes/kubernetesenvironmentresource/withdashboard.md) -- `method` -- Enables the Aspire dashboard for telemetry visualization in this Kubernetes environment.
    ```typescript
  withDashboard(enabled?: boolean): KubernetesEnvironmentResource
  ```
- [withHelm](/reference/api/typescript/aspire.hosting.kubernetes/kubernetesenvironmentresource/withhelm.md) -- `method` -- Configures the Kubernetes environment to deploy using Helm charts.
    ```typescript
  withHelm(configure?: (obj: HelmChartOptions) => Promise<void>): KubernetesEnvironmentResource
  ```
- [withProperties](/reference/api/typescript/aspire.hosting.kubernetes/kubernetesenvironmentresource/withproperties.md) -- `method` -- Allows setting the properties of a Kubernetes environment resource.
    ```typescript
  withProperties(configure: (obj: KubernetesEnvironmentResource) => Promise<void>): KubernetesEnvironmentResource
  ```
