Skip to content
Docs Try Aspire
Docs Try

KubernetesIngressExtensions Methods

Class Methods 13 members
Provides extension methods for configuring Kubernetes Ingress resources in the Aspire application model.
AddIngress(IResourceBuilder<KubernetesEnvironmentResource>, string) Section titled AddIngress(IResourceBuilder<KubernetesEnvironmentResource>, string) extension IResourceBuilder<KubernetesIngressResource>
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.
public static class KubernetesIngressExtensions
{
public static IResourceBuilder<KubernetesIngressResource> AddIngress(
this IResourceBuilder<KubernetesEnvironmentResource> builder,
string name)
{
// ...
}
}
builder IResourceBuilder<KubernetesEnvironmentResource> The Kubernetes environment resource builder.
name string The name of the ingress resource. This is used as the Kubernetes resource name.
IResourceBuilder<KubernetesIngressResource> A reference to the ApplicationModel.IResourceBuilder`1 for chaining.

After creating the ingress, configure routes using KubernetesIngressExtensions.WithRoute and optionally set an ingress class with KubernetesIngressExtensions.WithIngressClass.

var k8s = builder.AddKubernetesEnvironment("k8s");
var ingress = k8s.AddIngress("public")
.WithIngressClass("nginx");
var api = builder.AddProject<MyApi>("api");
ingress.WithRoute("/api", api.GetEndpoint("http"));
WithDefaultBackend(IResourceBuilder<KubernetesIngressResource>, EndpointReference) Section titled WithDefaultBackend(IResourceBuilder<KubernetesIngressResource>, EndpointReference) extension IResourceBuilder<KubernetesIngressResource>
Sets the default backend for the ingress. The default backend handles requests that do not match any of the defined routing rules.
public static class KubernetesIngressExtensions
{
public static IResourceBuilder<KubernetesIngressResource> WithDefaultBackend(
this IResourceBuilder<KubernetesIngressResource> builder,
EndpointReference endpoint)
{
// ...
}
}
builder IResourceBuilder<KubernetesIngressResource> The ingress resource builder.
endpoint EndpointReference The endpoint reference identifying the default backend service and port.
IResourceBuilder<KubernetesIngressResource> A reference to the ApplicationModel.IResourceBuilder`1 for chaining.
WithHostname(IResourceBuilder<KubernetesIngressResource>, string) Section titled WithHostname(IResourceBuilder<KubernetesIngressResource>, string) extension IResourceBuilder<KubernetesIngressResource>
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.
public static class KubernetesIngressExtensions
{
public static IResourceBuilder<KubernetesIngressResource> WithHostname(
this IResourceBuilder<KubernetesIngressResource> builder,
string hostname)
{
// ...
}
}
builder IResourceBuilder<KubernetesIngressResource> The ingress resource builder.
hostname string The hostname to match (e.g., "api.example.com").
IResourceBuilder<KubernetesIngressResource> A reference to the ApplicationModel.IResourceBuilder`1 for chaining.
ingress.WithHostname("api.example.com")
.WithHostname("www.example.com");
WithHostname(IResourceBuilder<KubernetesIngressResource>, IResourceBuilder<ParameterResource>) Section titled WithHostname(IResourceBuilder<KubernetesIngressResource>, IResourceBuilder<ParameterResource>) extension IResourceBuilder<KubernetesIngressResource>
Adds a hostname using a parameter that will be resolved at deploy time.
public static class KubernetesIngressExtensions
{
public static IResourceBuilder<KubernetesIngressResource> WithHostname(
this IResourceBuilder<KubernetesIngressResource> builder,
IResourceBuilder<ParameterResource> hostname)
{
// ...
}
}
builder IResourceBuilder<KubernetesIngressResource> The ingress resource builder.
hostname IResourceBuilder<ParameterResource> A parameter resource builder for the hostname value.
IResourceBuilder<KubernetesIngressResource> A reference to the ApplicationModel.IResourceBuilder`1 for chaining.
WithIngressAnnotation(IResourceBuilder<KubernetesIngressResource>, string, string) Section titled WithIngressAnnotation(IResourceBuilder<KubernetesIngressResource>, string, string) extension IResourceBuilder<KubernetesIngressResource>
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.
public static class KubernetesIngressExtensions
{
public static IResourceBuilder<KubernetesIngressResource> WithIngressAnnotation(
this IResourceBuilder<KubernetesIngressResource> builder,
string key,
string value)
{
// ...
}
}
builder IResourceBuilder<KubernetesIngressResource> The ingress resource builder.
key string The annotation key (e.g., "nginx.ingress.kubernetes.io/rewrite-target").
value string The annotation value.
IResourceBuilder<KubernetesIngressResource> A reference to the ApplicationModel.IResourceBuilder`1 for chaining.
This method sets Kubernetes metadata annotations, not Aspire ApplicationModel.IResourceAnnotation instances. Use these for controller-specific features like path rewriting, rate limiting, CORS configuration, or SSL redirect behavior.
ingress.WithIngressAnnotation("nginx.ingress.kubernetes.io/rewrite-target", "/$1");
ingress.WithIngressAnnotation("nginx.ingress.kubernetes.io/ssl-redirect", "true");
WithIngressAnnotation(IResourceBuilder<KubernetesIngressResource>, string, IResourceBuilder<ParameterResource>) Section titled WithIngressAnnotation(IResourceBuilder<KubernetesIngressResource>, string, IResourceBuilder<ParameterResource>) extension IResourceBuilder<KubernetesIngressResource>
Adds a Kubernetes metadata annotation with a parameter value that will be resolved at deploy time.
public static class KubernetesIngressExtensions
{
public static IResourceBuilder<KubernetesIngressResource> WithIngressAnnotation(
this IResourceBuilder<KubernetesIngressResource> builder,
string key,
IResourceBuilder<ParameterResource> value)
{
// ...
}
}
builder IResourceBuilder<KubernetesIngressResource> The ingress resource builder.
key string The annotation key.
value IResourceBuilder<ParameterResource> A parameter resource builder for the annotation value.
IResourceBuilder<KubernetesIngressResource> A reference to the ApplicationModel.IResourceBuilder`1 for chaining.
WithIngressClass(IResourceBuilder<KubernetesIngressResource>, string) Section titled WithIngressClass(IResourceBuilder<KubernetesIngressResource>, string) extension IResourceBuilder<KubernetesIngressResource>
Sets the Kubernetes ingress class name that selects which ingress controller handles this ingress resource.
public static class KubernetesIngressExtensions
{
public static IResourceBuilder<KubernetesIngressResource> WithIngressClass(
this IResourceBuilder<KubernetesIngressResource> builder,
string className)
{
// ...
}
}
builder IResourceBuilder<KubernetesIngressResource> The ingress resource builder.
className string The ingress class name (e.g., "nginx", "traefik", "azure-alb-external").
IResourceBuilder<KubernetesIngressResource> A reference to the ApplicationModel.IResourceBuilder`1 for chaining.
WithIngressClass(IResourceBuilder<KubernetesIngressResource>, IResourceBuilder<ParameterResource>) Section titled WithIngressClass(IResourceBuilder<KubernetesIngressResource>, IResourceBuilder<ParameterResource>) extension IResourceBuilder<KubernetesIngressResource>
Sets the Kubernetes ingress class name using a parameter that will be resolved at deploy time.
public static class KubernetesIngressExtensions
{
public static IResourceBuilder<KubernetesIngressResource> WithIngressClass(
this IResourceBuilder<KubernetesIngressResource> builder,
IResourceBuilder<ParameterResource> className)
{
// ...
}
}
builder IResourceBuilder<KubernetesIngressResource> The ingress resource builder.
className IResourceBuilder<ParameterResource> A parameter resource builder for the ingress class name.
IResourceBuilder<KubernetesIngressResource> A reference to the ApplicationModel.IResourceBuilder`1 for chaining.
WithRoute(IResourceBuilder<KubernetesIngressResource>, string, EndpointReference, IngressPathType) Section titled WithRoute(IResourceBuilder<KubernetesIngressResource>, string, EndpointReference, IngressPathType) extension IResourceBuilder<KubernetesIngressResource>
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.
public static class KubernetesIngressExtensions
{
public static IResourceBuilder<KubernetesIngressResource> WithRoute(
this IResourceBuilder<KubernetesIngressResource> builder,
string path,
EndpointReference endpoint,
IngressPathType pathType = IngressPathType.Prefix)
{
// ...
}
}
builder IResourceBuilder<KubernetesIngressResource> The ingress resource builder.
path string The URL path to match (e.g., "/" or "/api"). Must start with /.
endpoint EndpointReference The endpoint reference identifying the target service and port.
pathType IngressPathType optional The path matching strategy. Defaults to IngressPathType.Prefix.
IResourceBuilder<KubernetesIngressResource> A reference to the ApplicationModel.IResourceBuilder`1 for chaining.
var api = builder.AddProject<MyApi>("api");
ingress.WithRoute("/api", api.GetEndpoint("http"));
WithRoute(IResourceBuilder<KubernetesIngressResource>, string, string, EndpointReference, IngressPathType) Section titled WithRoute(IResourceBuilder<KubernetesIngressResource>, string, string, EndpointReference, IngressPathType) extension IResourceBuilder<KubernetesIngressResource>
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.
public static class KubernetesIngressExtensions
{
public static IResourceBuilder<KubernetesIngressResource> WithRoute(
this IResourceBuilder<KubernetesIngressResource> builder,
string host,
string path,
EndpointReference endpoint,
IngressPathType pathType = IngressPathType.Prefix)
{
// ...
}
}
builder IResourceBuilder<KubernetesIngressResource> The ingress resource builder.
host string The hostname to match (e.g., "api.example.com").
path string The URL path to match (e.g., "/" or "/api"). Must start with /.
endpoint EndpointReference The endpoint reference identifying the target service and port.
pathType IngressPathType optional The path matching strategy. Defaults to IngressPathType.Prefix.
IResourceBuilder<KubernetesIngressResource> A reference to the ApplicationModel.IResourceBuilder`1 for chaining.
var api = builder.AddProject<MyApi>("api");
ingress.WithRoute("api.example.com", "/", api.GetEndpoint("http"));
WithTls(IResourceBuilder<KubernetesIngressResource>, string) Section titled WithTls(IResourceBuilder<KubernetesIngressResource>, string) extension IResourceBuilder<KubernetesIngressResource>
Configures TLS termination for the ingress by referencing a Kubernetes TLS secret. The TLS configuration applies to all hostnames configured via KubernetesIngressExtensions.WithHostname.
public static class KubernetesIngressExtensions
{
public static IResourceBuilder<KubernetesIngressResource> WithTls(
this IResourceBuilder<KubernetesIngressResource> builder,
string secretName)
{
// ...
}
}
builder IResourceBuilder<KubernetesIngressResource> The ingress resource builder.
secretName string The name of the Kubernetes kubernetes.io/tls Secret.
IResourceBuilder<KubernetesIngressResource> A reference to the ApplicationModel.IResourceBuilder`1 for chaining.
WithTls(IResourceBuilder<KubernetesIngressResource>, IResourceBuilder<ParameterResource>) Section titled WithTls(IResourceBuilder<KubernetesIngressResource>, IResourceBuilder<ParameterResource>) extension IResourceBuilder<KubernetesIngressResource>
Configures TLS termination using a parameter for the secret name.
public static class KubernetesIngressExtensions
{
public static IResourceBuilder<KubernetesIngressResource> WithTls(
this IResourceBuilder<KubernetesIngressResource> builder,
IResourceBuilder<ParameterResource> secretName)
{
// ...
}
}
builder IResourceBuilder<KubernetesIngressResource> The ingress resource builder.
secretName IResourceBuilder<ParameterResource> A parameter resource builder for the secret name.
IResourceBuilder<KubernetesIngressResource> A reference to the ApplicationModel.IResourceBuilder`1 for chaining.
WithTls(IResourceBuilder<KubernetesIngressResource>) Section titled WithTls(IResourceBuilder<KubernetesIngressResource>) extension IResourceBuilder<KubernetesIngressResource>
Configures TLS termination with an auto-generated secret name derived from the ingress name.
public static class KubernetesIngressExtensions
{
public static IResourceBuilder<KubernetesIngressResource> WithTls(
this IResourceBuilder<KubernetesIngressResource> builder)
{
// ...
}
}
builder IResourceBuilder<KubernetesIngressResource> The ingress resource builder.
IResourceBuilder<KubernetesIngressResource> A reference to the ApplicationModel.IResourceBuilder`1 for chaining.