Skip to content

Commit acc95aa

Browse files
authored
Merge pull request #4396 from andreybutenko/2025-10-16-public-url-rewrite-rebase
Implement support for URL and Host Header Rewrite for Application Load Balancer
2 parents edd83f2 + 08cbc9d commit acc95aa

20 files changed

+2769
-117
lines changed

docs/guide/ingress/annotations.md

Lines changed: 133 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,9 @@ You can add annotations to kubernetes Ingress and Service objects to customize t
6262
| [alb.ingress.kubernetes.io/auth-session-cookie](#auth-session-cookie) | string |AWSELBAuthSessionCookie| Ingress,Service | N/A |
6363
| [alb.ingress.kubernetes.io/auth-session-timeout](#auth-session-timeout) | integer |'604800'| Ingress,Service | N/A |
6464
| [alb.ingress.kubernetes.io/actions.${action-name}](#actions) | json |N/A| Ingress | N/A |
65+
| [alb.ingress.kubernetes.io/transforms.${transforms-name}](#transforms) | json |N/A| Ingress | N/A |
6566
| [alb.ingress.kubernetes.io/conditions.${conditions-name}](#conditions) | json |N/A| Ingress | N/A |
67+
| [alb.ingress.kubernetes.io/use-regex-path-match](#use-regex-path-match) | boolean |N/A| Ingress | false |
6668
| [alb.ingress.kubernetes.io/target-node-labels](#target-node-labels) | stringMap |N/A| Ingress,Service | N/A |
6769
| [alb.ingress.kubernetes.io/mutual-authentication](#mutual-authentication) | json |N/A| Ingress | Exclusive |
6870
| [alb.ingress.kubernetes.io/multi-cluster-target-group](#multi-cluster-target-group) | boolean |N/A| Ingress, Service | N/A |
@@ -362,11 +364,67 @@ Traffic Routing can be controlled with following annotations:
362364
name: use-annotation
363365
```
364366

367+
- <a name="transforms">`alb.ingress.kubernetes.io/transforms.${transforms-name}`</a> Provides a method for specifying transforms on Ingress spec.
368+
369+
The `transforms-name` in the annotation must match the serviceName in the Ingress rules.
370+
371+
!!!example "URL rewrite"
372+
373+
Example transform to remove the leading `/api/` from request paths:
374+
375+
```yaml
376+
alb.ingress.kubernetes.io/transforms.my-service: >
377+
[
378+
{
379+
"type": "url-rewrite",
380+
"urlRewriteConfig": {
381+
"rewrites": [
382+
{
383+
"regex": "^\\/api\\/(.+)$",
384+
"replace": "/$1"
385+
}
386+
]
387+
}
388+
}
389+
]
390+
```
391+
392+
!!!example "Host header rewrite"
393+
394+
Example transform to replace `example.com` with `example.org` from request host headers:
395+
396+
```yaml
397+
alb.ingress.kubernetes.io/transforms.my-service: >
398+
[
399+
{
400+
"type": "host-header-rewrite",
401+
"hostHeaderRewriteConfig": {
402+
"rewrites": [
403+
{
404+
"regex": "^(.+)\\.example\\.com$",
405+
"replace": "$1.example.org"
406+
}
407+
]
408+
}
409+
}
410+
]
411+
```
412+
365413
- <a name="conditions">`alb.ingress.kubernetes.io/conditions.${conditions-name}`</a> Provides a method for specifying routing conditions **in addition to original host/path condition on Ingress spec**.
366414

367415
The `conditions-name` in the annotation must match the serviceName in the Ingress rules.
368416
It can be a either real serviceName or an annotation based action name when servicePort is `use-annotation`.
369417

418+
Condition values can be specified using *either* `values` or `regexValues`:
419+
420+
- `values`: Wildcard syntax, where `*` matches 0 or more characters, and `?` matches exactly 1 character.
421+
422+
`values` is supported for all condition types: `host-header`, `http-header`, `http-request-method`, `path-pattern`, and `source-ip`.
423+
424+
- `regexValues`: Regex syntax.
425+
426+
`regexValues` is supported for the following condition types: `host-header`, `http-header`, and `path-pattern`.
427+
370428
!!!warning "limitations"
371429
General ALB limitations applies:
372430

@@ -378,7 +436,7 @@ Traffic Routing can be controlled with following annotations:
378436

379437
Refer [ALB documentation](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-listeners.html#rule-condition-types) for more details.
380438

381-
!!!example
439+
!!!example "Examples using `values`"
382440
- rule-path1:
383441
- Host is www.example.com OR anno.example.com
384442
- Path is /path1
@@ -504,7 +562,7 @@ Traffic Routing can be controlled with following annotations:
504562
!!!note
505563
If you are using `alb.ingress.kubernetes.io/target-group-attributes` with `stickiness.enabled=true`, you should add `TargetGroupStickinessConfig` under `alb.ingress.kubernetes.io/actions.weighted-routing`
506564

507-
!!!example
565+
!!!example "Example using target group stickiness config"
508566

509567
```yaml
510568
apiVersion: networking.k8s.io/v1
@@ -552,6 +610,79 @@ Traffic Routing can be controlled with following annotations:
552610
port:
553611
name: use-annotation
554612
```
613+
614+
!!!example "Examples using `regexValues`"
615+
616+
HTTP header condition using regex values:
617+
618+
```yaml
619+
alb.ingress.kubernetes.io/conditions.my-service: >
620+
[{ "field": "http-header", "httpHeaderConfig": { "httpHeaderName": "User-Agent", "regexValues": [ ".+Chrome.+" ] } }]
621+
```
622+
623+
Path condition using regex values:
624+
625+
```yaml
626+
alb.ingress.kubernetes.io/conditions.my-service: >
627+
[{ "field": "path-pattern", "pathPatternConfig": { "regexValues": [ "^/api/?(.*)$" ] } }]
628+
```
629+
630+
Host header condition using regex values:
631+
632+
```yaml
633+
alb.ingress.kubernetes.io/conditions.my-service: >
634+
[{ "field": "host-header", "hostHeaderConfig": { "regexValues": [ "^(.+)\\.example\\.com" ] } }]
635+
```
636+
637+
!!!warning "Considerations when using `regexValues`"
638+
639+
ALB does not support mixing `values` (wildcard syntax) and `regexValues` (regex syntax) for the same condition type.
640+
641+
In particular, when using the AWS Load Balancer Controller:
642+
643+
- By default, additional `path-pattern` conditions **must** use `values`.
644+
645+
This is because the AWS Load Balancer Controller automatically adds `path-pattern` conditions using `values` according to your [Ingress specification](../spec/).
646+
647+
To configure additional `path-pattern` conditions using `regexValues`, configure the [`alb.ingress.kubernetes.io/use-regex-path-match`](#use-regex-path-match) annotation. When this annotation is set to `"true"`, the AWS Load Balancer Controller can add `path-pattern` conditions with `regexValues`.
648+
649+
- If your [Ingress specification](../spec/) includes a `host` rule, additional `host-header` conditions **must** use `values`.
650+
651+
To configure `host-header` conditions using `regexValues`, use the `alb.ingress.kubernetes.io/conditions.${conditions-name}` annotation instead of Ingress specification rules.
652+
653+
In other words:
654+
655+
- When [`alb.ingress.kubernetes.io/use-regex-path-match`](#use-regex-path-match) is `"false"` (default value), for HTTP paths using `pathType: ImplementationSpecific`, additional `path-pattern` conditions can **only** use `values`.
656+
- When [`alb.ingress.kubernetes.io/use-regex-path-match`](#use-regex-path-match) is `"true"`, for HTTP paths using `pathType: ImplementationSpecific`, additional `path-pattern` conditions can **only** use `regexValues`.
657+
- If a ingress rule `host` is specified, additional `host-header` conditions can only use `values`.
658+
659+
660+
- <a name="use-regex-path-match">`alb.ingress.kubernetes.io/use-regex-path-match`</a> Configure whether HTTP paths in your [Ingress specification](../spec/) should be evaluated using regex.
661+
662+
* This configuration only applies to HTTP paths using `pathType: ImplementationSpecific`. HTTP paths using `pathType: Exact` or `pathType: Prefix` are not affected by this annotation.
663+
* A leading `/` must precede the regex. The leading `/` will be removed from the regex.
664+
665+
!!!example "Ingress rule path evaluated as regex"
666+
667+
Annotation:
668+
669+
```yaml
670+
alb.ingress.kubernetes.io/use-regex-path-match: "true"
671+
```
672+
673+
Ingress rule path:
674+
675+
```yaml
676+
- path: "/^/api/(.+)$"
677+
pathType: ImplementationSpecific
678+
backend:
679+
service:
680+
name: service-2048
681+
port:
682+
number: 80
683+
```
684+
685+
With this configuration, the rule condition regex value will be `^/api/(.+)$` as the leading `/` is removed from the regex.
555686

556687
## Access control
557688
Access control for LoadBalancer can be controlled with following annotations:

docs/guide/tasks/url_rewrite.md

Lines changed: 126 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,126 @@
1+
# URL rewrite
2+
3+
URL rewrite enables request URLs to be transformed before the request reaches your backend services.
4+
5+
Consider the following scenario:
6+
7+
- An ingress exposes two services:
8+
- An API service exposed at path prefix `/api/`.
9+
- A users service exposed at path prefix `/users/`.
10+
- These service **do not expect** the `/api/` or `/users/` prefixes in the request path.
11+
12+
For this scenario, URL rewrite would be used to remove the leading `/api/` and `/users/` from the request paths.
13+
14+
Example ingress manifest:
15+
16+
```yaml
17+
apiVersion: networking.k8s.io/v1
18+
kind: Ingress
19+
metadata:
20+
namespace: default
21+
name: ingress
22+
annotations:
23+
alb.ingress.kubernetes.io/certificate-arn: arn:aws:acm:us-west-2:xxxx:certificate/xxxxxx
24+
alb.ingress.kubernetes.io/listen-ports: '[{"HTTP": 80}, {"HTTPS":443}]'
25+
alb.ingress.kubernetes.io/ssl-redirect: "443"
26+
27+
# Add transform to users-service to remove "/users/" prefix from paths
28+
alb.ingress.kubernetes.io/transforms.users-service: >
29+
[
30+
{
31+
"type": "url-rewrite",
32+
"urlRewriteConfig": {
33+
"rewrites": [{
34+
"regex": "^/users/(.+)$",
35+
"replace": "/$1"
36+
}]
37+
}
38+
}
39+
]
40+
# Add transform to api-service to remove "/api/" prefix from paths
41+
alb.ingress.kubernetes.io/transforms.api-service: >
42+
[
43+
{
44+
"type": "url-rewrite",
45+
"urlRewriteConfig": {
46+
"rewrites": [{
47+
"regex": "^/api/(.+)$",
48+
"replace": "/$1"
49+
}]
50+
}
51+
}
52+
]
53+
spec:
54+
ingressClassName: alb
55+
rules:
56+
- http:
57+
paths:
58+
- path: /users/
59+
pathType: Prefix
60+
backend:
61+
service:
62+
name: users-service
63+
port:
64+
number: 80
65+
- path: /api/
66+
pathType: Prefix
67+
backend:
68+
service:
69+
name: api-service
70+
port:
71+
number: 80
72+
- path: /*
73+
pathType: ImplementationSpecific
74+
backend:
75+
service:
76+
name: default-service
77+
port:
78+
number: 80
79+
```
80+
81+
## Host header rewrite
82+
83+
To rewrite from `api.example.com` to `example.com`:
84+
85+
```yaml
86+
apiVersion: networking.k8s.io/v1
87+
kind: Ingress
88+
metadata:
89+
namespace: default
90+
name: ingress
91+
annotations:
92+
alb.ingress.kubernetes.io/certificate-arn: arn:aws:acm:us-west-2:xxxx:certificate/xxxxxx
93+
alb.ingress.kubernetes.io/listen-ports: '[{"HTTP": 80}, {"HTTPS":443}]'
94+
alb.ingress.kubernetes.io/ssl-redirect: "443"
95+
96+
# add transform to api-service to replace "api.example.com" hostname with "example.com"
97+
alb.ingress.kubernetes.io/transforms.api-service: >
98+
[
99+
{
100+
"type": "host-header-rewrite",
101+
"hostHeaderRewriteConfig": {
102+
"rewrites": [{
103+
"regex": "^api\\.example\\.com$",
104+
"replace": "example.com"
105+
}]
106+
}
107+
}
108+
]
109+
spec:
110+
ingressClassName: alb
111+
rules:
112+
- host: api.example.com
113+
http:
114+
paths:
115+
- path: /*
116+
pathType: Prefix
117+
backend:
118+
service:
119+
name: api-service
120+
port:
121+
number: 80
122+
```
123+
124+
## Additional resources
125+
126+
- [`alb.ingress.kubernetes.io/transforms.${transforms-name}` annotation documentation](../../ingress/annotations#transforms)

go.mod

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,21 +3,21 @@ module sigs.k8s.io/aws-load-balancer-controller
33
go 1.24.6
44

55
require (
6-
github.com/aws/aws-sdk-go-v2 v1.36.3
6+
github.com/aws/aws-sdk-go-v2 v1.39.2
77
github.com/aws/aws-sdk-go-v2/config v1.27.27
88
github.com/aws/aws-sdk-go-v2/credentials v1.17.27
99
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.11
1010
github.com/aws/aws-sdk-go-v2/service/acm v1.28.4
1111
github.com/aws/aws-sdk-go-v2/service/appmesh v1.27.7
1212
github.com/aws/aws-sdk-go-v2/service/ec2 v1.173.0
13-
github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2 v1.45.0
13+
github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2 v1.51.0
1414
github.com/aws/aws-sdk-go-v2/service/resourcegroupstaggingapi v1.23.3
1515
github.com/aws/aws-sdk-go-v2/service/servicediscovery v1.31.7
1616
github.com/aws/aws-sdk-go-v2/service/shield v1.27.3
1717
github.com/aws/aws-sdk-go-v2/service/sts v1.30.3
1818
github.com/aws/aws-sdk-go-v2/service/wafregional v1.23.3
1919
github.com/aws/aws-sdk-go-v2/service/wafv2 v1.51.4
20-
github.com/aws/smithy-go v1.22.2
20+
github.com/aws/smithy-go v1.23.0
2121
github.com/evanphx/json-patch v5.9.11+incompatible
2222
github.com/gavv/httpexpect/v2 v2.9.0
2323
github.com/go-logr/logr v1.4.3
@@ -60,8 +60,8 @@ require (
6060
github.com/ajg/form v1.5.1 // indirect
6161
github.com/andybalholm/brotli v1.0.4 // indirect
6262
github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2 // indirect
63-
github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.34 // indirect
64-
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.34 // indirect
63+
github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.9 // indirect
64+
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.9 // indirect
6565
github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0 // indirect
6666
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.3 // indirect
6767
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.17 // indirect

go.sum

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,8 @@ github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2 h1:DklsrG3d
3131
github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2/go.mod h1:WaHUgvxTVq04UNunO+XhnAqY/wQc+bxr74GqbsZ/Jqw=
3232
github.com/aws/aws-sdk-go-v2 v1.36.3 h1:mJoei2CxPutQVxaATCzDUjcZEjVRdpsiiXi2o38yqWM=
3333
github.com/aws/aws-sdk-go-v2 v1.36.3/go.mod h1:LLXuLpgzEbD766Z5ECcRmi8AzSwfZItDtmABVkRLGzg=
34+
github.com/aws/aws-sdk-go-v2 v1.39.2 h1:EJLg8IdbzgeD7xgvZ+I8M1e0fL0ptn/M47lianzth0I=
35+
github.com/aws/aws-sdk-go-v2 v1.39.2/go.mod h1:sDioUELIUO9Znk23YVmIk86/9DOpkbyyVb1i/gUNFXY=
3436
github.com/aws/aws-sdk-go-v2/config v1.27.27 h1:HdqgGt1OAP0HkEDDShEl0oSYa9ZZBSOmKpdpsDMdO90=
3537
github.com/aws/aws-sdk-go-v2/config v1.27.27/go.mod h1:MVYamCg76dFNINkZFu4n4RjDixhVr51HLj4ErWzrVwg=
3638
github.com/aws/aws-sdk-go-v2/credentials v1.17.27 h1:2raNba6gr2IfA0eqqiP2XiQ0UVOpGPgDSi0I9iAP+UI=
@@ -39,8 +41,12 @@ github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.11 h1:KreluoV8FZDEtI6Co2xuNk
3941
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.11/go.mod h1:SeSUYBLsMYFoRvHE0Tjvn7kbxaUhl75CJi1sbfhMxkU=
4042
github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.34 h1:ZK5jHhnrioRkUNOc+hOgQKlUL5JeC3S6JgLxtQ+Rm0Q=
4143
github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.34/go.mod h1:p4VfIceZokChbA9FzMbRGz5OV+lekcVtHlPKEO0gSZY=
44+
github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.9 h1:se2vOWGD3dWQUtfn4wEjRQJb1HK1XsNIt825gskZ970=
45+
github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.9/go.mod h1:hijCGH2VfbZQxqCDN7bwz/4dzxV+hkyhjawAtdPWKZA=
4246
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.34 h1:SZwFm17ZUNNg5Np0ioo/gq8Mn6u9w19Mri8DnJ15Jf0=
4347
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.34/go.mod h1:dFZsC0BLo346mvKQLWmoJxT+Sjp+qcVR1tRVHQGOH9Q=
48+
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.9 h1:6RBnKZLkJM4hQ+kN6E7yWFveOTg8NLPHAkqrs4ZPlTU=
49+
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.9/go.mod h1:V9rQKRmK7AWuEsOMnHzKj8WyrIir1yUJbZxDuZLFvXI=
4450
github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0 h1:hT8rVHwugYE2lEfdFE0QWVo81lF7jMrYJVDWI+f+VxU=
4551
github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0/go.mod h1:8tu/lYfQfFe6IGnaOdrpVgEL2IrrDOf6/m9RQum4NkY=
4652
github.com/aws/aws-sdk-go-v2/service/acm v1.28.4 h1:wiW1Y6/1lysA0eJZRq0I53YYKuV9MNAzL15z2eZRlEE=
@@ -51,6 +57,8 @@ github.com/aws/aws-sdk-go-v2/service/ec2 v1.173.0 h1:ta62lid9JkIpKZtZZXSj6rP2AqY
5157
github.com/aws/aws-sdk-go-v2/service/ec2 v1.173.0/go.mod h1:o6QDjdVKpP5EF0dp/VlvqckzuSDATr1rLdHt3A5m0YY=
5258
github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2 v1.45.0 h1:RB7V8wT9ypjE/YJVBgKjoydTOh4IFoqceGiKxFH70mY=
5359
github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2 v1.45.0/go.mod h1:xnCC3vFBfOKpU6PcsCKL2ktgBTZfOwTGxj6V8/X3IS4=
60+
github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2 v1.51.0 h1:Zy1yjx+R6cR4pAwzFFJ8nWJh4ri8I44H76PDJ77tcJo=
61+
github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2 v1.51.0/go.mod h1:RuZwE3p8IrWqK1kZhwH2TymlHLPuiI/taBMb8vrD39Q=
5462
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.3 h1:dT3MqvGhSoaIhRseqw2I0yH81l7wiR2vjs57O51EAm8=
5563
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.3/go.mod h1:GlAeCkHwugxdHaueRr4nhPuY+WW+gR8UjlcqzPr1SPI=
5664
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.17 h1:HGErhhrxZlQ044RiM+WdoZxp0p+EGM62y3L6pwA4olE=
@@ -73,6 +81,8 @@ github.com/aws/aws-sdk-go-v2/service/wafv2 v1.51.4 h1:1khBA5uryBRJoCb4G2iR5RT06B
7381
github.com/aws/aws-sdk-go-v2/service/wafv2 v1.51.4/go.mod h1:QpFImaPGKNwa+MiZ+oo6LbV1PVQBapc0CnrAMRScoxM=
7482
github.com/aws/smithy-go v1.22.2 h1:6D9hW43xKFrRx/tXXfAlIZc4JI+yQe6snnWcQyxSyLQ=
7583
github.com/aws/smithy-go v1.22.2/go.mod h1:irrKGvNn1InZwb2d7fkIRNucdfwR8R+Ts3wxYa/cJHg=
84+
github.com/aws/smithy-go v1.23.0 h1:8n6I3gXzWJB2DxBDnfxgBaSX6oe0d/t10qGz7OKqMCE=
85+
github.com/aws/smithy-go v1.23.0/go.mod h1:t1ufH5HMublsJYulve2RKmHDC15xu1f26kHCp/HgceI=
7686
github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM=
7787
github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw=
7888
github.com/blang/semver/v4 v4.0.0 h1:1PFHFE6yCCTv8C1TeyNNarDzntLi7wMI5i/pzqYIsAM=

mkdocs.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ nav:
4444
- Tasks:
4545
- Cognito Authentication: guide/tasks/cognito_authentication.md
4646
- SSL Redirect: guide/tasks/ssl_redirect.md
47+
- URL Rewrite: guide/tasks/url_rewrite.md
4748
- Use Cases:
4849
- NLB TLS Termination: guide/use_cases/nlb_tls_termination/index.md
4950
- Externally Managed Load Balancer: guide/use_cases/self_managed_lb/index.md

pkg/annotations/constants.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,7 @@ const (
7575
IngressSuffixFrontendNlHealthCheckbUnhealthyThresholdCount = "frontend-nlb-healthcheck-unhealthy-threshold-count"
7676
IngressSuffixFrontendNlbHealthCheckSuccessCodes = "frontend-nlb-healthcheck-success-codes"
7777
IngressSuffixFrontendNlbTags = "frontend-nlb-tags"
78+
IngressSuffixUseRegexPathMatch = "use-regex-path-match"
7879

7980
// NLB annotation suffixes
8081
// prefixes service.beta.kubernetes.io, service.kubernetes.io

0 commit comments

Comments
 (0)