Skip to content
DocsTry Aspire
DocsTry

AzureKubernetesIngressExtensions Methods

ClassMethods5 members
Provides extension methods for adding Kubernetes Ingress and Gateway resources to AKS environments.
AddGateway(IResourceBuilder<AzureKubernetesEnvironmentResource>, string)Section titled AddGateway(IResourceBuilder<AzureKubernetesEnvironmentResource>, string)extensionIResourceBuilder<KubernetesGatewayResource>
Adds a Kubernetes Gateway API Gateway resource to the application model, associated with the inner Kubernetes environment of the specified AKS environment.
public static class AzureKubernetesIngressExtensions
{
public static IResourceBuilder<KubernetesGatewayResource> AddGateway(
this IResourceBuilder<AzureKubernetesEnvironmentResource> builder,
string name)
{
// ...
}
}
builderIResourceBuilder<AzureKubernetesEnvironmentResource>The AKS environment resource builder.
namestringThe name of the gateway resource.
IResourceBuilder<KubernetesGatewayResource>A reference to the ApplicationModel.IResourceBuilder`1 for chaining.
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"));
AddHelmChart(IResourceBuilder<AzureKubernetesEnvironmentResource>, string, string, string)Section titled AddHelmChart(IResourceBuilder<AzureKubernetesEnvironmentResource>, string, string, string)extensionIResourceBuilder<KubernetesHelmChartResource>
Adds an external Helm chart to be installed in the AKS environment's inner Kubernetes environment. The chart is installed via helm upgrade --install as a pipeline step after the main application Helm chart is deployed.
public static class AzureKubernetesIngressExtensions
{
public static IResourceBuilder<KubernetesHelmChartResource> AddHelmChart(
this IResourceBuilder<AzureKubernetesEnvironmentResource> builder,
string name,
string chartReference,
string chartVersion)
{
// ...
}
}
builderIResourceBuilder<AzureKubernetesEnvironmentResource>The AKS environment resource builder.
namestringThe name of the Helm chart resource.
chartReferencestring The Helm chart reference. Can be an OCI registry URL (e.g., oci://quay.io/jetstack/charts/cert-manager) or a chart name from an added repository.
chartVersionstringThe chart version to install.
IResourceBuilder<KubernetesHelmChartResource>A resource builder for the Helm chart resource.

This method delegates to the inner Kubernetes.KubernetesEnvironmentResource of the AKS environment, so the returned Kubernetes.KubernetesHelmChartResource can be configured with the same KubernetesHelmChartExtensions.WithHelmValue, KubernetesHelmChartExtensions.WithNamespace, KubernetesHelmChartExtensions.WithReleaseName, and KubernetesHelmChartExtensions.WithDestroy extensions used with non-AKS Kubernetes environments.

External Helm charts are not uninstalled by aspire destroy by default, because they may be shared with workloads outside the Aspire app. Opt in by chaining KubernetesHelmChartExtensions.WithDestroy.

var aks = builder.AddAzureKubernetesEnvironment("aks");
// Install cert-manager
aks.AddHelmChart("cert-manager", "oci://quay.io/jetstack/charts/cert-manager", "1.17.0")
.WithHelmValue("crds.enabled", "true");
AddIngress(IResourceBuilder<AzureKubernetesEnvironmentResource>, string)Section titled AddIngress(IResourceBuilder<AzureKubernetesEnvironmentResource>, string)extensionIResourceBuilder<KubernetesIngressResource>
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.
public static class AzureKubernetesIngressExtensions
{
public static IResourceBuilder<KubernetesIngressResource> AddIngress(
this IResourceBuilder<AzureKubernetesEnvironmentResource> builder,
string name)
{
// ...
}
}
builderIResourceBuilder<AzureKubernetesEnvironmentResource>The AKS environment resource builder.
namestringThe name of the ingress resource.
IResourceBuilder<KubernetesIngressResource>A reference to the ApplicationModel.IResourceBuilder`1 for chaining.

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.

var aks = builder.AddAzureKubernetesEnvironment("aks");
var ingress = aks.AddIngress("public")
.WithIngressClass("azure-alb-external");
var api = builder.AddProject<MyApi>("api");
ingress.WithPath("/api", api.GetEndpoint("http"));
WithLoadBalancer(IResourceBuilder<KubernetesGatewayResource>, IResourceBuilder<AzureKubernetesLoadBalancerResource>)Section titled WithLoadBalancer(IResourceBuilder<KubernetesGatewayResource>, IResourceBuilder<AzureKubernetesLoadBalancerResource>)extensionIResourceBuilder<KubernetesGatewayResource>
Routes a Kubernetes Kubernetes.KubernetesGatewayResource through the supplied Azure Application Gateway for Containers (AGC) AzureKubernetesLoadBalancerResource.
public static class AzureKubernetesIngressExtensions
{
public static IResourceBuilder<KubernetesGatewayResource> WithLoadBalancer(
this IResourceBuilder<KubernetesGatewayResource> builder,
IResourceBuilder<AzureKubernetesLoadBalancerResource> loadBalancer)
{
// ...
}
}
builderIResourceBuilder<KubernetesGatewayResource>The gateway resource builder.
loadBalancerIResourceBuilder<AzureKubernetesLoadBalancerResource>The AGC load balancer to route through.
IResourceBuilder<KubernetesGatewayResource>A reference to the ApplicationModel.IResourceBuilder`1 for chaining.
Writes the AGC routing annotations ( alb.networking.azure.io/alb-name and alb.networking.azure.io/alb-namespace) onto the rendered Gateway and defaults the GatewayClass to azure-alb-external when one has not already been set via WithGatewayClass(...).
var lb = aks.AddLoadBalancer("lb", albSubnet);
var gateway = aks.AddGateway("public").WithLoadBalancer(lb);
WithLoadBalancer(IResourceBuilder<KubernetesIngressResource>, IResourceBuilder<AzureKubernetesLoadBalancerResource>)Section titled WithLoadBalancer(IResourceBuilder<KubernetesIngressResource>, IResourceBuilder<AzureKubernetesLoadBalancerResource>)extensionIResourceBuilder<KubernetesIngressResource>
Routes a Kubernetes Kubernetes.KubernetesIngressResource through the supplied Azure Application Gateway for Containers (AGC) AzureKubernetesLoadBalancerResource.
public static class AzureKubernetesIngressExtensions
{
public static IResourceBuilder<KubernetesIngressResource> WithLoadBalancer(
this IResourceBuilder<KubernetesIngressResource> builder,
IResourceBuilder<AzureKubernetesLoadBalancerResource> loadBalancer)
{
// ...
}
}
builderIResourceBuilder<KubernetesIngressResource>The ingress resource builder.
loadBalancerIResourceBuilder<AzureKubernetesLoadBalancerResource>The AGC load balancer to route through.
IResourceBuilder<KubernetesIngressResource>A reference to the ApplicationModel.IResourceBuilder`1 for chaining.
Writes the AGC routing annotations ( alb.networking.azure.io/alb-name and alb.networking.azure.io/alb-namespace) onto the rendered Ingress and defaults the IngressClass to azure-alb-external when one has not already been set via WithIngressClass(...).