# KubernetesIngressExtensions

- Kind: `class`
- Package: [Aspire.Hosting.Kubernetes](/reference/api/csharp/aspire.hosting.kubernetes.md)
- Version: `13.3.0-preview.1.26254.5`
- Namespace: `Aspire.Hosting`
- Target framework: `net8.0`
- Source: [GitHub](https://github.com/microsoft/aspire/blob/5bd693ae1897dee5e2ce71c2cc08879c1c7eff51/src/Aspire.Hosting.Kubernetes/KubernetesIngressExtensions.cs)

Provides extension methods for configuring Kubernetes Ingress resources in the Aspire application model.

## Definition

```csharp
namespace Aspire.Hosting;

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

## Methods

- [AddIngress(IResourceBuilder<KubernetesEnvironmentResource>, string)](/reference/api/csharp/aspire.hosting.kubernetes/kubernetesingressextensions/methods.md#addingress-iresourcebuilder-kubernetesenvironmentresource-string) : `IResourceBuilder<KubernetesIngressResource>` `extension` `ats export` -- 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.
- [WithDefaultBackend(IResourceBuilder<KubernetesIngressResource>, EndpointReference)](/reference/api/csharp/aspire.hosting.kubernetes/kubernetesingressextensions/methods.md#withdefaultbackend-iresourcebuilder-kubernetesingressresource-endpointreference) : `IResourceBuilder<KubernetesIngressResource>` `extension` `ats export` -- Sets the default backend for the ingress. The default backend handles requests that do not match any of the defined routing rules.
- [WithHostname(IResourceBuilder<KubernetesIngressResource>, string)](/reference/api/csharp/aspire.hosting.kubernetes/kubernetesingressextensions/methods.md#withhostname-iresourcebuilder-kubernetesingressresource-string) : `IResourceBuilder<KubernetesIngressResource>` `extension` `ats export` -- Adds a hostname that this ingress matches. Multiple hostnames can be added by calling this method repeatedly. If no hostnames are configured, the ingress matches all hosts.
- [WithHostname(IResourceBuilder<KubernetesIngressResource>, IResourceBuilder<ParameterResource>)](/reference/api/csharp/aspire.hosting.kubernetes/kubernetesingressextensions/methods.md#withhostname-iresourcebuilder-kubernetesingressresource-iresourcebuilder-parameterresource) : `IResourceBuilder<KubernetesIngressResource>` `extension` `ats export` -- Adds a hostname using a parameter that will be resolved at deploy time.
- [WithIngressAnnotation(IResourceBuilder<KubernetesIngressResource>, string, string)](/reference/api/csharp/aspire.hosting.kubernetes/kubernetesingressextensions/methods.md#withingressannotation-iresourcebuilder-kubernetesingressresource-string-string) : `IResourceBuilder<KubernetesIngressResource>` `extension` `ats export` -- Adds a Kubernetes metadata annotation to the generated Ingress resource. These are key-value pairs in the `metadata.annotations` field of the K8S Ingress, commonly used to configure ingress controller-specific behavior.
- [WithIngressAnnotation(IResourceBuilder<KubernetesIngressResource>, string, IResourceBuilder<ParameterResource>)](/reference/api/csharp/aspire.hosting.kubernetes/kubernetesingressextensions/methods.md#withingressannotation-iresourcebuilder-kubernetesingressresource-string-iresourcebuilder-parameterresource) : `IResourceBuilder<KubernetesIngressResource>` `extension` `ats export` -- Adds a Kubernetes metadata annotation with a parameter value that will be resolved at deploy time.
- [WithIngressClass(IResourceBuilder<KubernetesIngressResource>, string)](/reference/api/csharp/aspire.hosting.kubernetes/kubernetesingressextensions/methods.md#withingressclass-iresourcebuilder-kubernetesingressresource-string) : `IResourceBuilder<KubernetesIngressResource>` `extension` `ats export` -- Sets the Kubernetes ingress class name that selects which ingress controller handles this ingress resource.
- [WithIngressClass(IResourceBuilder<KubernetesIngressResource>, IResourceBuilder<ParameterResource>)](/reference/api/csharp/aspire.hosting.kubernetes/kubernetesingressextensions/methods.md#withingressclass-iresourcebuilder-kubernetesingressresource-iresourcebuilder-parameterresource) : `IResourceBuilder<KubernetesIngressResource>` `extension` `ats export` -- Sets the Kubernetes ingress class name using a parameter that will be resolved at deploy time.
- [WithRoute(IResourceBuilder<KubernetesIngressResource>, string, EndpointReference, IngressPathType)](/reference/api/csharp/aspire.hosting.kubernetes/kubernetesingressextensions/methods.md#withroute-iresourcebuilder-kubernetesingressresource-string-endpointreference-ingresspathtype) : `IResourceBuilder<KubernetesIngressResource>` `extension` `ats export` -- Adds a path-based routing rule to the ingress. The rule matches all hosts and routes traffic matching the specified path to the given endpoint's backing Kubernetes service.
- [WithRoute(IResourceBuilder<KubernetesIngressResource>, string, string, EndpointReference, IngressPathType)](/reference/api/csharp/aspire.hosting.kubernetes/kubernetesingressextensions/methods.md#withroute-iresourcebuilder-kubernetesingressresource-string-string-endpointreference-ingresspathtype) : `IResourceBuilder<KubernetesIngressResource>` `extension` `ats export` -- Adds a host-and-path-based routing rule to the ingress. The rule matches traffic for the specified host and path, routing it to the given endpoint's backing Kubernetes service.
- [WithTls(IResourceBuilder<KubernetesIngressResource>, string)](/reference/api/csharp/aspire.hosting.kubernetes/kubernetesingressextensions/methods.md#withtls-iresourcebuilder-kubernetesingressresource-string) : `IResourceBuilder<KubernetesIngressResource>` `extension` `ats export` -- Configures TLS termination for the ingress by referencing a Kubernetes TLS secret. The TLS configuration applies to all hostnames configured via [KubernetesIngressExtensions.WithHostname(IResourceBuilder<KubernetesIngressResource>, string)](/reference/api/csharp/aspire.hosting.kubernetes/kubernetesingressextensions/methods.md#withhostname-iresourcebuilder-kubernetesingressresource-string).
- [WithTls(IResourceBuilder<KubernetesIngressResource>, IResourceBuilder<ParameterResource>)](/reference/api/csharp/aspire.hosting.kubernetes/kubernetesingressextensions/methods.md#withtls-iresourcebuilder-kubernetesingressresource-iresourcebuilder-parameterresource) : `IResourceBuilder<KubernetesIngressResource>` `extension` `ats export` -- Configures TLS termination using a parameter for the secret name.
- [WithTls(IResourceBuilder<KubernetesIngressResource>)](/reference/api/csharp/aspire.hosting.kubernetes/kubernetesingressextensions/methods.md#withtls-iresourcebuilder-kubernetesingressresource) : `IResourceBuilder<KubernetesIngressResource>` `extension` `ats export` -- Configures TLS termination with an auto-generated secret name derived from the ingress name.
