You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/guide/ingress/annotations.md
+32-31Lines changed: 32 additions & 31 deletions
Original file line number
Diff line number
Diff line change
@@ -74,7 +74,7 @@ By default, Ingresses don't belong to any IngressGroup, and we treat it as a "im
74
74
75
75
!!!warning "Security Risk"
76
76
IngressGroup feature should only be used when all Kubernetes users with RBAC permission to create/modify Ingress resources are within trust boundary.
77
-
77
+
78
78
If you turn your Ingress to belong a "explicit IngressGroup" by adding `group.name` annotation,
79
79
other Kubernetes users may create/modify their Ingresses to belong to the same IngressGroup, and can thus add more rules or overwrite existing rules with higher priority to the ALB for your Ingress.
80
80
@@ -86,7 +86,7 @@ By default, Ingresses don't belong to any IngressGroup, and we treat it as a "im
86
86
```
87
87
88
88
- <aname="group.order">`alb.ingress.kubernetes.io/group.order`</a> specifies the order across all Ingresses within IngressGroup.
89
-
89
+
90
90
!!!note ""
91
91
- You can explicitly denote the order using a number between -1000 and 1000
92
92
- The smaller the order, the rule will be evaluated first. All Ingresses without an explicit order setting get order value as 0
@@ -101,26 +101,26 @@ By default, Ingresses don't belong to any IngressGroup, and we treat it as a "im
101
101
Traffic Listening can be controlled with the following annotations:
102
102
103
103
- <aname="listen-ports">`alb.ingress.kubernetes.io/listen-ports`</a> specifies the ports that ALB listens on.
104
-
104
+
105
105
!!!note "Merge Behavior"
106
106
`listen-ports` is merged across all Ingresses in IngressGroup.
107
-
107
+
108
108
- You can define different listen-ports per Ingress, Ingress rules will only impact the ports defined for that Ingress.
109
109
- If same listen-port is defined by multiple Ingress within IngressGroup, Ingress rules will be merged with respect to their group order within IngressGroup.
110
110
111
111
!!!note "Default"
112
112
- defaults to `'[{"HTTP": 80}]'` or `'[{"HTTPS": 443}]'` depending on whether `certificate-arn` is specified.
113
113
114
-
!!!warning ""
114
+
!!!warning ""
115
115
You may not have duplicate load balancer ports defined.
- <aname="ssl-redirect">`alb.ingress.kubernetes.io/ssl-redirect`</a> enables SSLRedirect and specifies the SSL port that redirects to.
123
-
123
+
124
124
!!!note "Merge Behavior"
125
125
`ssl-redirect` is exclusive across all Ingresses in IngressGroup.
126
126
@@ -143,7 +143,7 @@ Traffic Listening can be controlled with the following annotations:
143
143
```
144
144
145
145
- <aname="customer-owned-ipv4-pool">`alb.ingress.kubernetes.io/customer-owned-ipv4-pool`</a> specifies the customer-owned IPv4 address pool for ALB on Outpost.
146
-
146
+
147
147
!!!warning ""
148
148
This annotation should be treated as immutable. To remove or change coIPv4Pool, you need to recreate Ingress.
149
149
@@ -182,7 +182,7 @@ Traffic Routing can be controlled with following annotations:
`ip` mode is required for sticky sessions to work with Application Load Balancers.
185
+
`ip` mode is required for sticky sessions to work with Application Load Balancers. The Service type does not matter, when using `ip` mode.
186
186
187
187
!!!example
188
188
```
@@ -203,7 +203,7 @@ Traffic Routing can be controlled with following annotations:
203
203
alb.ingress.kubernetes.io/backend-protocol: HTTPS
204
204
```
205
205
206
-
- <aname="backend-protocol-version">`alb.ingress.kubernetes.io/backend-protocol-version`</a> specifies the application protocol used to route traffic to pods. Only valid when HTTP or HTTPS is used as the backend protocol.
206
+
- <aname="backend-protocol-version">`alb.ingress.kubernetes.io/backend-protocol-version`</a> specifies the application protocol used to route traffic to pods. Only valid when HTTP or HTTPS is used as the backend protocol.
207
207
208
208
!!!example
209
209
- HTTP2
@@ -236,7 +236,7 @@ Traffic Routing can be controlled with following annotations:
236
236
ARN can be used in forward action(both simplified schema and advanced schema), it must be an targetGroup created outside of k8s, typically an targetGroup for legacy application.
237
237
!!!note "use ServiceName/ServicePort in forward Action"
238
238
ServiceName/ServicePort can be used in forward action(advanced schema only).
239
-
239
+
240
240
!!!warning ""
241
241
[Auth related annotations](#authentication) on Service object will only be respected if a single TargetGroup in is used.
242
242
@@ -297,24 +297,24 @@ Traffic Routing can be controlled with following annotations:
297
297
name: use-annotation
298
298
```
299
299
300
-
- <aname="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**.
301
-
302
-
The `conditions-name` in the annotation must match the serviceName in the Ingress rules.
300
+
- <aname="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**.
301
+
302
+
The `conditions-name` in the annotation must match the serviceName in the Ingress rules.
303
303
It can be a either real serviceName or an annotation based action name when servicePort is `use-annotation`.
304
-
304
+
305
305
!!!warning "limitations"
306
306
General ALB limitations applies:
307
307
308
308
1. Each rule can optionally include up to one of each of the following conditions: host-header, http-request-method, path-pattern, and source-ip. Each rule can also optionally include one or more of each of the following conditions: http-header and query-string.
309
-
309
+
310
310
2. You can specify up to three match evaluations per condition.
311
-
311
+
312
312
3. You can specify up to five match evaluations per rule.
313
-
313
+
314
314
Refer [ALB documentation](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-listeners.html#rule-condition-types) for more details.
315
315
316
316
!!!example
317
-
- rule-path1:
317
+
- rule-path1:
318
318
- Host is www.example.com OR anno.example.com
319
319
- Path is /path1
320
320
- rule-path2:
@@ -455,7 +455,7 @@ Access control for LoadBalancer can be controlled with following annotations:
455
455
- if same listen-port is defined by multiple Ingress within IngressGroup, inbound-cidrs should only be defined on one of the Ingress.
456
456
457
457
!!!note "Default"
458
-
458
+
459
459
- `0.0.0.0/0` will be used if the IPAddressType is "ipv4"
460
460
- `0.0.0.0/0` and `::/0` will be used if the IPAddressType is "dualstack"
461
461
@@ -506,7 +506,7 @@ ALB supports authentication with Cognito or OIDC. See [Authenticate Users Using
506
506
```
507
507
alb.ingress.kubernetes.io/auth-type: cognito
508
508
```
509
-
509
+
510
510
- <aname="auth-idp-cognito">`alb.ingress.kubernetes.io/auth-idp-cognito`</a> specifies the cognito idp configuration.
511
511
512
512
!!!tip ""
@@ -518,7 +518,7 @@ ALB supports authentication with Cognito or OIDC. See [Authenticate Users Using
518
518
```
519
519
520
520
- <aname="auth-idp-oidc">`alb.ingress.kubernetes.io/auth-idp-oidc`</a> specifies the oidc idp configuration.
521
-
521
+
522
522
!!!tip ""
523
523
You need to create an [secret](https://kubernetes.io/docs/concepts/configuration/secret/) within the same namespace as Ingress to hold your OIDC clientID and clientSecret. The format of secret is as below:
524
524
```yaml
@@ -538,12 +538,12 @@ ALB supports authentication with Cognito or OIDC. See [Authenticate Users Using
538
538
```
539
539
540
540
- <aname="auth-on-unauthenticated-request">`alb.ingress.kubernetes.io/auth-on-unauthenticated-request`</a> specifies the behavior if the user is not authenticated.
541
-
541
+
542
542
!!!info "options:"
543
543
* **authenticate**: try authenticate with configured IDP.
544
544
* **deny**: return an HTTP 401 Unauthorized error.
545
545
* **allow**: allow the request to be forwarded to the target.
- <aname="auth-session-timeout">`alb.ingress.kubernetes.io/auth-session-timeout`</a> specifies the maximum duration of the authentication session, in seconds
574
574
575
575
!!!example
@@ -680,7 +680,7 @@ SSL support can be controlled with following annotations:
680
680
!!!tip ""
681
681
The first certificate in the list will be added as default certificate. And remaining certificate will be added to the optional certificate list.
682
682
See [SSL Certificates](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/create-https-listener.html#https-listener-certificates) for more details.
683
-
683
+
684
684
!!!tip "Certificate Discovery"
685
685
TLS certificates for ALB Listeners can be automatically discovered with hostnames from Ingress resources. See [Certificate Discovery](cert_discovery.md) for instructions.
686
686
@@ -693,7 +693,7 @@ SSL support can be controlled with following annotations:
- <aname="ssl-policy">`alb.ingress.kubernetes.io/ssl-policy`</a> specifies the [Security Policy](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/create-https-listener.html#describe-ssl-policies) that should be assigned to the ALB, allowing you to control the protocol and ciphers.
698
698
699
699
!!!example
@@ -712,7 +712,7 @@ Custom attributes to LoadBalancers and TargetGroups can be controlled with follo
712
712
!!!note ""
713
713
- If `deletion_protection.enabled=true` is in annotation, the controller will not be able to delete the ALB during reconciliation. Once the attribute gets edited to `deletion_protection.enabled=false` during reconciliation, the deployer will force delete the resource.
714
714
- Please note, if the deletion protection is not enabled via annotation (e.g. via AWS console), the controller still deletes the underlying resource.
715
-
715
+
716
716
!!!example
717
717
- enable access log to s3
718
718
```
@@ -766,7 +766,7 @@ The AWS Load Balancer Controller automatically applies following tags to the AWS
766
766
In addition, you can use annotations to specify additional tags
767
767
768
768
- <aname="tags">`alb.ingress.kubernetes.io/tags`</a> specifies additional tags that will be applied to AWS resources created.
769
-
In case of target group, the controller will merge the tags from the ingress and the backend service giving precedence
769
+
In case of target group, the controller will merge the tags from the ingress and the backend service giving precedence
770
770
to the values specified on the service when there is conflict.
771
771
772
772
!!!example
@@ -801,3 +801,4 @@ In addition, you can use annotations to specify additional tags
0 commit comments