KubernetesGatewayExtensions Methods
AddGateway(IResourceBuilder<KubernetesEnvironmentResource>, string)Section titled AddGateway(IResourceBuilder<KubernetesEnvironmentResource>, string)extensionIResourceBuilder<KubernetesGatewayResource>gateway.networking.k8s.io/v1 Gateway resource and one or more HTTPRoute resources in the Helm chart output at publish time. public static class KubernetesGatewayExtensions{ public static IResourceBuilder<KubernetesGatewayResource> AddGateway( this IResourceBuilder<KubernetesEnvironmentResource> builder, string name) { // ... }}Parameters
builderIResourceBuilder<KubernetesEnvironmentResource>The Kubernetes environment resource builder.namestringThe name of the gateway resource.Returns
IResourceBuilder<KubernetesGatewayResource>A reference to the ApplicationModel.IResourceBuilder`1 for chaining.Examples
var k8s = builder.AddKubernetesEnvironment("k8s");var gateway = k8s.AddGateway("public") .WithGatewayClass("azure-alb-external");
var api = builder.AddProject<MyApi>("api");gateway.WithRoute("/api", api.GetEndpoint("http"));WithGatewayAnnotation(IResourceBuilder<KubernetesGatewayResource>, string, string)Section titled WithGatewayAnnotation(IResourceBuilder<KubernetesGatewayResource>, string, string)extensionIResourceBuilder<KubernetesGatewayResource>public static class KubernetesGatewayExtensions{ public static IResourceBuilder<KubernetesGatewayResource> WithGatewayAnnotation( this IResourceBuilder<KubernetesGatewayResource> builder, string key, string value) { // ... }}Parameters
builderIResourceBuilder<KubernetesGatewayResource>The gateway resource builder.keystringThe annotation key.valuestringThe annotation value.Returns
IResourceBuilder<KubernetesGatewayResource>A reference to the ApplicationModel.IResourceBuilder`1 for chaining.Remarks
This sets Kubernetes metadata.annotations on the generated K8S Gateway resource, not Aspire ApplicationModel.IResourceAnnotation instances. These are key-value string pairs used by ingress controllers for provider-specific configuration.
For Azure Application Gateway for Containers (AGC), you typically need: alb.networking.azure.io/alb-name and alb.networking.azure.io/alb-namespace.
WithGatewayAnnotation(IResourceBuilder<KubernetesGatewayResource>, string, IResourceBuilder<ParameterResource>)Section titled WithGatewayAnnotation(IResourceBuilder<KubernetesGatewayResource>, string, IResourceBuilder<ParameterResource>)extensionIResourceBuilder<KubernetesGatewayResource>public static class KubernetesGatewayExtensions{ public static IResourceBuilder<KubernetesGatewayResource> WithGatewayAnnotation( this IResourceBuilder<KubernetesGatewayResource> builder, string key, IResourceBuilder<ParameterResource> value) { // ... }}Parameters
builderIResourceBuilder<KubernetesGatewayResource>The gateway resource builder.keystringThe annotation key.valueIResourceBuilder<ParameterResource>A parameter resource builder for the annotation value.Returns
IResourceBuilder<KubernetesGatewayResource>A reference to the ApplicationModel.IResourceBuilder`1 for chaining.WithGatewayClass(IResourceBuilder<KubernetesGatewayResource>, string)Section titled WithGatewayClass(IResourceBuilder<KubernetesGatewayResource>, string)extensionIResourceBuilder<KubernetesGatewayResource>public static class KubernetesGatewayExtensions{ public static IResourceBuilder<KubernetesGatewayResource> WithGatewayClass( this IResourceBuilder<KubernetesGatewayResource> builder, string className) { // ... }}Parameters
builderIResourceBuilder<KubernetesGatewayResource>The gateway resource builder.classNamestringThe GatewayClass name (e.g., "azure-alb-external", "istio").Returns
IResourceBuilder<KubernetesGatewayResource>A reference to the ApplicationModel.IResourceBuilder`1 for chaining.WithGatewayClass(IResourceBuilder<KubernetesGatewayResource>, IResourceBuilder<ParameterResource>)Section titled WithGatewayClass(IResourceBuilder<KubernetesGatewayResource>, IResourceBuilder<ParameterResource>)extensionIResourceBuilder<KubernetesGatewayResource>public static class KubernetesGatewayExtensions{ public static IResourceBuilder<KubernetesGatewayResource> WithGatewayClass( this IResourceBuilder<KubernetesGatewayResource> builder, IResourceBuilder<ParameterResource> className) { // ... }}Parameters
builderIResourceBuilder<KubernetesGatewayResource>The gateway resource builder.classNameIResourceBuilder<ParameterResource>A parameter resource builder for the GatewayClass name.Returns
IResourceBuilder<KubernetesGatewayResource>A reference to the ApplicationModel.IResourceBuilder`1 for chaining.WithHostname(IResourceBuilder<KubernetesGatewayResource>, string)Section titled WithHostname(IResourceBuilder<KubernetesGatewayResource>, string)extensionIResourceBuilder<KubernetesGatewayResource>hostnames in generated HTTPRoute resources and as HTTPS listener hostnames when TLS is configured. public static class KubernetesGatewayExtensions{ public static IResourceBuilder<KubernetesGatewayResource> WithHostname( this IResourceBuilder<KubernetesGatewayResource> builder, string hostname) { // ... }}Parameters
builderIResourceBuilder<KubernetesGatewayResource>The gateway resource builder.hostnamestringThe hostname to match (e.g., "api.example.com").Returns
IResourceBuilder<KubernetesGatewayResource>A reference to the ApplicationModel.IResourceBuilder`1 for chaining.WithHostname(IResourceBuilder<KubernetesGatewayResource>, IResourceBuilder<ParameterResource>)Section titled WithHostname(IResourceBuilder<KubernetesGatewayResource>, IResourceBuilder<ParameterResource>)extensionIResourceBuilder<KubernetesGatewayResource>public static class KubernetesGatewayExtensions{ public static IResourceBuilder<KubernetesGatewayResource> WithHostname( this IResourceBuilder<KubernetesGatewayResource> builder, IResourceBuilder<ParameterResource> hostname) { // ... }}Parameters
builderIResourceBuilder<KubernetesGatewayResource>The gateway resource builder.hostnameIResourceBuilder<ParameterResource>A parameter resource builder for the hostname value.Returns
IResourceBuilder<KubernetesGatewayResource>A reference to the ApplicationModel.IResourceBuilder`1 for chaining.WithRoute(IResourceBuilder<KubernetesGatewayResource>, string, EndpointReference, GatewayPathMatchType)Section titled WithRoute(IResourceBuilder<KubernetesGatewayResource>, string, EndpointReference, GatewayPathMatchType)extensionIResourceBuilder<KubernetesGatewayResource>KubernetesGatewayExtensions.WithHostname, or all hosts when no hostname is configured, and routes matching traffic to the endpoint's backing Kubernetes service. This generates an HTTPRoute resource attached to the Gateway. public static class KubernetesGatewayExtensions{ public static IResourceBuilder<KubernetesGatewayResource> WithRoute( this IResourceBuilder<KubernetesGatewayResource> builder, string path, EndpointReference endpoint, GatewayPathMatchType pathType = GatewayPathMatchType.PathPrefix) { // ... }}Parameters
builderIResourceBuilder<KubernetesGatewayResource>The gateway resource builder.pathstringThe URL path to match (e.g., "/" or "/api"). Must start with /.endpointEndpointReferenceThe endpoint reference identifying the target service and port.pathTypeGatewayPathMatchTypeoptionalThe path matching strategy. Defaults to GatewayPathMatchType.PathPrefix.Returns
IResourceBuilder<KubernetesGatewayResource>A reference to the ApplicationModel.IResourceBuilder`1 for chaining.WithRoute(IResourceBuilder<KubernetesGatewayResource>, string, string, EndpointReference, GatewayPathMatchType)Section titled WithRoute(IResourceBuilder<KubernetesGatewayResource>, string, string, EndpointReference, GatewayPathMatchType)extensionIResourceBuilder<KubernetesGatewayResource>HTTPRoute resource with a hostnames filter. public static class KubernetesGatewayExtensions{ public static IResourceBuilder<KubernetesGatewayResource> WithRoute( this IResourceBuilder<KubernetesGatewayResource> builder, string host, string path, EndpointReference endpoint, GatewayPathMatchType pathType = GatewayPathMatchType.PathPrefix) { // ... }}Parameters
builderIResourceBuilder<KubernetesGatewayResource>The gateway resource builder.hoststringThe hostname to match (e.g., "api.example.com").pathstringThe URL path to match. Must start with /.endpointEndpointReferenceThe endpoint reference identifying the target service and port.pathTypeGatewayPathMatchTypeoptionalThe path matching strategy. Defaults to GatewayPathMatchType.PathPrefix.Returns
IResourceBuilder<KubernetesGatewayResource>A reference to the ApplicationModel.IResourceBuilder`1 for chaining.WithTls(IResourceBuilder<KubernetesGatewayResource>, string)Section titled WithTls(IResourceBuilder<KubernetesGatewayResource>, string)extensionIResourceBuilder<KubernetesGatewayResource>KubernetesGatewayExtensions.WithHostname. public static class KubernetesGatewayExtensions{ public static IResourceBuilder<KubernetesGatewayResource> WithTls( this IResourceBuilder<KubernetesGatewayResource> builder, string secretName) { // ... }}Parameters
builderIResourceBuilder<KubernetesGatewayResource>The gateway resource builder.secretNamestringThe name of the Kubernetes kubernetes.io/tls Secret.Returns
IResourceBuilder<KubernetesGatewayResource>A reference to the ApplicationModel.IResourceBuilder`1 for chaining.WithTls(IResourceBuilder<KubernetesGatewayResource>, IResourceBuilder<ParameterResource>)Section titled WithTls(IResourceBuilder<KubernetesGatewayResource>, IResourceBuilder<ParameterResource>)extensionIResourceBuilder<KubernetesGatewayResource>public static class KubernetesGatewayExtensions{ public static IResourceBuilder<KubernetesGatewayResource> WithTls( this IResourceBuilder<KubernetesGatewayResource> builder, IResourceBuilder<ParameterResource> secretName) { // ... }}Parameters
builderIResourceBuilder<KubernetesGatewayResource>The gateway resource builder.secretNameIResourceBuilder<ParameterResource>A parameter resource builder for the secret name.Returns
IResourceBuilder<KubernetesGatewayResource>A reference to the ApplicationModel.IResourceBuilder`1 for chaining.WithTls(IResourceBuilder<KubernetesGatewayResource>)Section titled WithTls(IResourceBuilder<KubernetesGatewayResource>)extensionIResourceBuilder<KubernetesGatewayResource>public static class KubernetesGatewayExtensions{ public static IResourceBuilder<KubernetesGatewayResource> WithTls( this IResourceBuilder<KubernetesGatewayResource> builder) { // ... }}Parameters
builderIResourceBuilder<KubernetesGatewayResource>The gateway resource builder.Returns
IResourceBuilder<KubernetesGatewayResource>A reference to the ApplicationModel.IResourceBuilder`1 for chaining.