Skip to content
DocsTry Aspire
DocsTry

KubernetesIngressExtensions Methods

ClassMethods13 members
Provides extension methods for configuring Kubernetes Ingress resources in the Aspire application model.
AddIngress(IResourceBuilder<KubernetesEnvironmentResource>, string)Section titled AddIngress(IResourceBuilder<KubernetesEnvironmentResource>, string)extensionIResourceBuilder<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)
{
// ...
}
}
builderIResourceBuilder<KubernetesEnvironmentResource>The Kubernetes environment resource builder.
namestringThe 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 path-based rules using KubernetesIngressExtensions.WithPath 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.WithPath("/api", api.GetEndpoint("http"));
WithDefaultBackend(IResourceBuilder<KubernetesIngressResource>, EndpointReference)Section titled WithDefaultBackend(IResourceBuilder<KubernetesIngressResource>, EndpointReference)extensionIResourceBuilder<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)
{
// ...
}
}
builderIResourceBuilder<KubernetesIngressResource>The ingress resource builder.
endpointEndpointReferenceThe 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)extensionIResourceBuilder<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)
{
// ...
}
}
builderIResourceBuilder<KubernetesIngressResource>The ingress resource builder.
hostnamestringThe 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>)extensionIResourceBuilder<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)
{
// ...
}
}
builderIResourceBuilder<KubernetesIngressResource>The ingress resource builder.
hostnameIResourceBuilder<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)extensionIResourceBuilder<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)
{
// ...
}
}
builderIResourceBuilder<KubernetesIngressResource>The ingress resource builder.
keystringThe annotation key (e.g., "nginx.ingress.kubernetes.io/rewrite-target").
valuestringThe 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>)extensionIResourceBuilder<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)
{
// ...
}
}
builderIResourceBuilder<KubernetesIngressResource>The ingress resource builder.
keystringThe annotation key.
valueIResourceBuilder<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)extensionIResourceBuilder<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)
{
// ...
}
}
builderIResourceBuilder<KubernetesIngressResource>The ingress resource builder.
classNamestringThe 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>)extensionIResourceBuilder<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)
{
// ...
}
}
builderIResourceBuilder<KubernetesIngressResource>The ingress resource builder.
classNameIResourceBuilder<ParameterResource>A parameter resource builder for the ingress class name.
IResourceBuilder<KubernetesIngressResource>A reference to the ApplicationModel.IResourceBuilder`1 for chaining.
WithPath(IResourceBuilder<KubernetesIngressResource>, string, EndpointReference, IngressPathType)Section titled WithPath(IResourceBuilder<KubernetesIngressResource>, string, EndpointReference, IngressPathType)extensionIResourceBuilder<KubernetesIngressResource>
Adds a path-based rule to the ingress. The rule matches all hosts and forwards traffic matching the specified path to the given endpoint's backing Kubernetes service.
public static class KubernetesIngressExtensions
{
public static IResourceBuilder<KubernetesIngressResource> WithPath(
this IResourceBuilder<KubernetesIngressResource> builder,
string path,
EndpointReference endpoint,
IngressPathType pathType = IngressPathType.Prefix)
{
// ...
}
}
builderIResourceBuilder<KubernetesIngressResource>The ingress resource builder.
pathstringThe URL path to match (e.g., "/" or "/api"). Must start with /.
endpointEndpointReferenceThe endpoint reference identifying the target service and port.
pathTypeIngressPathTypeoptionalThe 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.WithPath("/api", api.GetEndpoint("http"));
WithPath(IResourceBuilder<KubernetesIngressResource>, string, string, EndpointReference, IngressPathType)Section titled WithPath(IResourceBuilder<KubernetesIngressResource>, string, string, EndpointReference, IngressPathType)extensionIResourceBuilder<KubernetesIngressResource>
Adds a host-scoped path rule to the ingress. The rule matches traffic for the specified host and path, forwarding it to the given endpoint's backing Kubernetes service.
public static class KubernetesIngressExtensions
{
public static IResourceBuilder<KubernetesIngressResource> WithPath(
this IResourceBuilder<KubernetesIngressResource> builder,
string host,
string path,
EndpointReference endpoint,
IngressPathType pathType = IngressPathType.Prefix)
{
// ...
}
}
builderIResourceBuilder<KubernetesIngressResource>The ingress resource builder.
hoststringThe hostname to match (e.g., "api.example.com").
pathstringThe URL path to match (e.g., "/" or "/api"). Must start with /.
endpointEndpointReferenceThe endpoint reference identifying the target service and port.
pathTypeIngressPathTypeoptionalThe 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.WithPath("api.example.com", "/", api.GetEndpoint("http"));
WithTls(IResourceBuilder<KubernetesIngressResource>, string)Section titled WithTls(IResourceBuilder<KubernetesIngressResource>, string)extensionIResourceBuilder<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)
{
// ...
}
}
builderIResourceBuilder<KubernetesIngressResource>The ingress resource builder.
secretNamestringThe 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>)extensionIResourceBuilder<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)
{
// ...
}
}
builderIResourceBuilder<KubernetesIngressResource>The ingress resource builder.
secretNameIResourceBuilder<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>)extensionIResourceBuilder<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)
{
// ...
}
}
builderIResourceBuilder<KubernetesIngressResource>The ingress resource builder.
IResourceBuilder<KubernetesIngressResource>A reference to the ApplicationModel.IResourceBuilder`1 for chaining.