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) { // ... }}Parameters
builder IResourceBuilder<KubernetesEnvironmentResource> The Kubernetes environment resource builder. name string The name of the ingress resource. This is used as the Kubernetes resource name. Returns
IResourceBuilder<KubernetesIngressResource> A reference to the ApplicationModel.IResourceBuilder`1 for chaining. Remarks
After creating the ingress, configure routes using KubernetesIngressExtensions.WithRoute and optionally set an ingress class with KubernetesIngressExtensions.WithIngressClass.
Examples
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) { // ... }}Parameters
builder IResourceBuilder<KubernetesIngressResource> The ingress resource builder. endpoint EndpointReference The endpoint reference identifying the default backend service and port. Returns
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) { // ... }}Parameters
builder IResourceBuilder<KubernetesIngressResource> The ingress resource builder. hostname string The hostname to match (e.g., "api.example.com"). Returns
IResourceBuilder<KubernetesIngressResource> A reference to the ApplicationModel.IResourceBuilder`1 for chaining. Examples
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) { // ... }}Parameters
builder IResourceBuilder<KubernetesIngressResource> The ingress resource builder. hostname IResourceBuilder<ParameterResource> A parameter resource builder for the hostname value. Returns
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) { // ... }}Parameters
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. Returns
IResourceBuilder<KubernetesIngressResource> A reference to the ApplicationModel.IResourceBuilder`1 for chaining. Remarks
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. Examples
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) { // ... }}Parameters
builder IResourceBuilder<KubernetesIngressResource> The ingress resource builder. key string The annotation key. value IResourceBuilder<ParameterResource> A parameter resource builder for the annotation value. Returns
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) { // ... }}Parameters
builder IResourceBuilder<KubernetesIngressResource> The ingress resource builder. className string The ingress class name (e.g., "nginx", "traefik", "azure-alb-external"). Returns
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) { // ... }}Parameters
builder IResourceBuilder<KubernetesIngressResource> The ingress resource builder. className IResourceBuilder<ParameterResource> A parameter resource builder for the ingress class name. Returns
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) { // ... }}Parameters
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. Returns
IResourceBuilder<KubernetesIngressResource> A reference to the ApplicationModel.IResourceBuilder`1 for chaining. Examples
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) { // ... }}Parameters
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. Returns
IResourceBuilder<KubernetesIngressResource> A reference to the ApplicationModel.IResourceBuilder`1 for chaining. Examples
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) { // ... }}Parameters
builder IResourceBuilder<KubernetesIngressResource> The ingress resource builder. secretName string The name of the Kubernetes kubernetes.io/tls Secret. Returns
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) { // ... }}Parameters
builder IResourceBuilder<KubernetesIngressResource> The ingress resource builder. secretName IResourceBuilder<ParameterResource> A parameter resource builder for the secret name. Returns
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) { // ... }}Parameters
builder IResourceBuilder<KubernetesIngressResource> The ingress resource builder. Returns
IResourceBuilder<KubernetesIngressResource> A reference to the ApplicationModel.IResourceBuilder`1 for chaining.