# AzureKubernetesIngressExtensions Methods

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

Provides extension methods for adding Kubernetes Ingress and Gateway resources to AKS environments.

## AddGateway(IResourceBuilder<AzureKubernetesEnvironmentResource>, string)

- Name: `AddGateway(IResourceBuilder<AzureKubernetesEnvironmentResource>, string)`
- Modifiers: `extension`
- Returns: `IResourceBuilder<KubernetesGatewayResource>`
- Source: [GitHub](https://github.com/microsoft/aspire/blob/5bd693ae1897dee5e2ce71c2cc08879c1c7eff51/src/Aspire.Hosting.Azure.Kubernetes/AzureKubernetesIngressExtensions.cs#L75-L79)

Adds a Kubernetes Gateway API Gateway resource to the application model, associated with the inner Kubernetes environment of the specified AKS environment.

```csharp
public static class AzureKubernetesIngressExtensions
{
    public static IResourceBuilder<KubernetesGatewayResource> AddGateway(
        this IResourceBuilder<AzureKubernetesEnvironmentResource> builder,
        string name)
    {
        // ...
    }
}
```

## Parameters

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

## Returns

`IResourceBuilder<KubernetesGatewayResource>` -- A reference to the `ApplicationModel.IResourceBuilder`1` for chaining.

## Examples

```csharp
var aks = builder.AddAzureKubernetesEnvironment("aks");
var gateway = aks.AddGateway("public")
    .WithGatewayClass("azure-alb-external");

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

## ATS metadata

### ATS export

- Available to Polyglot AppHosts through the Aspire Type System.

## AddIngress(IResourceBuilder<AzureKubernetesEnvironmentResource>, string)

- Name: `AddIngress(IResourceBuilder<AzureKubernetesEnvironmentResource>, string)`
- Modifiers: `extension`
- Returns: `IResourceBuilder<KubernetesIngressResource>`
- Source: [GitHub](https://github.com/microsoft/aspire/blob/5bd693ae1897dee5e2ce71c2cc08879c1c7eff51/src/Aspire.Hosting.Azure.Kubernetes/AzureKubernetesIngressExtensions.cs#L46-L50)

Adds a Kubernetes Ingress resource to the application model, associated with the inner Kubernetes environment of the specified AKS environment. The ingress generates a `networking.k8s.io/v1 Ingress` resource in the Helm chart output at publish time.

```csharp
public static class AzureKubernetesIngressExtensions
{
    public static IResourceBuilder<KubernetesIngressResource> AddIngress(
        this IResourceBuilder<AzureKubernetesEnvironmentResource> builder,
        string name)
    {
        // ...
    }
}
```

## Parameters

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

## Returns

`IResourceBuilder<KubernetesIngressResource>` -- A reference to the `ApplicationModel.IResourceBuilder`1` for chaining.

## Remarks

This method delegates to the inner `Kubernetes.KubernetesEnvironmentResource` of the AKS environment. To use an AKS-specific ingress controller (e.g., Azure Application Gateway for Containers), call `KubernetesIngressExtensions.WithIngressClass` with the appropriate class name.

## Examples

```csharp
var aks = builder.AddAzureKubernetesEnvironment("aks");
var ingress = aks.AddIngress("public")
    .WithIngressClass("azure-alb-external");

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

## ATS metadata

### ATS export

- Available to Polyglot AppHosts through the Aspire Type System.
