# KubernetesIngressResource

- Kind: `class`
- Package: [Aspire.Hosting.Kubernetes](/reference/api/csharp/aspire.hosting.kubernetes.md)
- Version: `13.3.0-preview.1.26254.5`
- Namespace: `Aspire.Hosting.Kubernetes`
- Target framework: `net8.0`
- Source: [GitHub](https://github.com/microsoft/aspire/blob/5bd693ae1897dee5e2ce71c2cc08879c1c7eff51/src/Aspire.Hosting.Kubernetes/KubernetesIngressResource.cs)
- Inherits: `Resource`
- Implements: `IResource`, `IResourceWithParent`, `IResourceWithParent<KubernetesEnvironmentResource>`

Represents a Kubernetes Ingress as a first-class resource in the Aspire application model. An Ingress defines HTTP routing rules that direct external traffic to services in the cluster.

## Definition

```csharp
namespace Aspire.Hosting.Kubernetes;

public class KubernetesIngressResource
    : Aspire.Hosting.ApplicationModel.Resource,
      Aspire.Hosting.ApplicationModel.IResource,
      Aspire.Hosting.ApplicationModel.IResourceWithParent,
      Aspire.Hosting.ApplicationModel.IResourceWithParent<Aspire.Hosting.Kubernetes.KubernetesEnvironmentResource>
{
    // ...
}
```

## ATS metadata

### ATS export

- Type ID: `Aspire.Hosting.Kubernetes/KubernetesIngressResource`

## Remarks

Create an ingress using [KubernetesIngressExtensions.AddIngress(IResourceBuilder<KubernetesEnvironmentResource>, string)](/reference/api/csharp/aspire.hosting.kubernetes/kubernetesingressextensions/methods.md#addingress-iresourcebuilder-kubernetesenvironmentresource-string) and configure routes using [KubernetesIngressExtensions.WithRoute(IResourceBuilder<KubernetesIngressResource>, string, EndpointReference, IngressPathType)](/reference/api/csharp/aspire.hosting.kubernetes/kubernetesingressextensions/methods.md#withroute-iresourcebuilder-kubernetesingressresource-string-endpointreference-ingresspathtype).

At publish time, the ingress generates a Kubernetes `networking.k8s.io/v1 Ingress` resource in the Helm chart output with rules derived from the configured routes.

## Constructors

- [KubernetesIngressResource(string, KubernetesEnvironmentResource)](/reference/api/csharp/aspire.hosting.kubernetes/kubernetesingressresource/constructors.md#constructor-string-kubernetesenvironmentresource) -- Represents a Kubernetes Ingress as a first-class resource in the Aspire application model. An Ingress defines HTTP routing rules that direct external traffic to services in the cluster.

## Properties

- [IngressClassName](/reference/api/csharp/aspire.hosting.kubernetes/kubernetesingressresource/properties.md#ingressclassname) : `ReferenceExpression?` `get; set` -- Gets or sets the Kubernetes ingress class name that selects which ingress controller will handle this ingress resource.
- [Parent](/reference/api/csharp/aspire.hosting.kubernetes/kubernetesingressresource/properties.md#parent) : [KubernetesEnvironmentResource](/reference/api/csharp/aspire.hosting.kubernetes/kubernetesenvironmentresource.md) `get` -- Gets the parent Kubernetes environment resource.

## Examples

```csharp
var k8s = builder.AddKubernetesEnvironment("k8s");
var ingress = k8s.AddIngress("public")
    .WithIngressClass("nginx");

var api = builder.AddProject<MyApi>("api");
ingress.WithRoute("/api", api.GetEndpoint("http"));
```
