Skip to content

Commit 12aea99

Browse files
authored
Merge pull request #2725 from orsenthil/patch-3
Clarify that ip-mode can be NodePort or ClusterIp
2 parents d8ee617 + c425a00 commit 12aea99

File tree

1 file changed

+32
-31
lines changed

1 file changed

+32
-31
lines changed

docs/guide/ingress/annotations.md

Lines changed: 32 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ By default, Ingresses don't belong to any IngressGroup, and we treat it as a "im
7474

7575
!!!warning "Security Risk"
7676
IngressGroup feature should only be used when all Kubernetes users with RBAC permission to create/modify Ingress resources are within trust boundary.
77-
77+
7878
If you turn your Ingress to belong a "explicit IngressGroup" by adding `group.name` annotation,
7979
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.
8080

@@ -86,7 +86,7 @@ By default, Ingresses don't belong to any IngressGroup, and we treat it as a "im
8686
```
8787

8888
- <a name="group.order">`alb.ingress.kubernetes.io/group.order`</a> specifies the order across all Ingresses within IngressGroup.
89-
89+
9090
!!!note ""
9191
- You can explicitly denote the order using a number between -1000 and 1000
9292
- 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
101101
Traffic Listening can be controlled with the following annotations:
102102

103103
- <a name="listen-ports">`alb.ingress.kubernetes.io/listen-ports`</a> specifies the ports that ALB listens on.
104-
104+
105105
!!!note "Merge Behavior"
106106
`listen-ports` is merged across all Ingresses in IngressGroup.
107-
107+
108108
- You can define different listen-ports per Ingress, Ingress rules will only impact the ports defined for that Ingress.
109109
- If same listen-port is defined by multiple Ingress within IngressGroup, Ingress rules will be merged with respect to their group order within IngressGroup.
110110

111111
!!!note "Default"
112112
- defaults to `'[{"HTTP": 80}]'` or `'[{"HTTPS": 443}]'` depending on whether `certificate-arn` is specified.
113113

114-
!!!warning ""
114+
!!!warning ""
115115
You may not have duplicate load balancer ports defined.
116-
116+
117117
!!!example
118118
```
119119
alb.ingress.kubernetes.io/listen-ports: '[{"HTTP": 80}, {"HTTPS": 443}, {"HTTP": 8080}, {"HTTPS": 8443}]'
120120
```
121-
121+
122122
- <a name="ssl-redirect">`alb.ingress.kubernetes.io/ssl-redirect`</a> enables SSLRedirect and specifies the SSL port that redirects to.
123-
123+
124124
!!!note "Merge Behavior"
125125
`ssl-redirect` is exclusive across all Ingresses in IngressGroup.
126126

@@ -143,7 +143,7 @@ Traffic Listening can be controlled with the following annotations:
143143
```
144144

145145
- <a name="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+
147147
!!!warning ""
148148
This annotation should be treated as immutable. To remove or change coIPv4Pool, you need to recreate Ingress.
149149

@@ -182,7 +182,7 @@ Traffic Routing can be controlled with following annotations:
182182
- [amazon-vpc-cni-k8s](https://github.com/aws/amazon-vpc-cni-k8s)
183183

184184
!!!note ""
185-
`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.
186186

187187
!!!example
188188
```
@@ -203,7 +203,7 @@ Traffic Routing can be controlled with following annotations:
203203
alb.ingress.kubernetes.io/backend-protocol: HTTPS
204204
```
205205

206-
- <a name="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+
- <a name="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.
207207

208208
!!!example
209209
- HTTP2
@@ -236,7 +236,7 @@ Traffic Routing can be controlled with following annotations:
236236
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.
237237
!!!note "use ServiceName/ServicePort in forward Action"
238238
ServiceName/ServicePort can be used in forward action(advanced schema only).
239-
239+
240240
!!!warning ""
241241
[Auth related annotations](#authentication) on Service object will only be respected if a single TargetGroup in is used.
242242

@@ -297,24 +297,24 @@ Traffic Routing can be controlled with following annotations:
297297
name: use-annotation
298298
```
299299

300-
- <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**.
301-
302-
The `conditions-name` in the annotation must match the serviceName in the Ingress rules.
300+
- <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**.
301+
302+
The `conditions-name` in the annotation must match the serviceName in the Ingress rules.
303303
It can be a either real serviceName or an annotation based action name when servicePort is `use-annotation`.
304-
304+
305305
!!!warning "limitations"
306306
General ALB limitations applies:
307307

308308
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+
310310
2. You can specify up to three match evaluations per condition.
311-
311+
312312
3. You can specify up to five match evaluations per rule.
313-
313+
314314
Refer [ALB documentation](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-listeners.html#rule-condition-types) for more details.
315315

316316
!!!example
317-
- rule-path1:
317+
- rule-path1:
318318
- Host is www.example.com OR anno.example.com
319319
- Path is /path1
320320
- rule-path2:
@@ -455,7 +455,7 @@ Access control for LoadBalancer can be controlled with following annotations:
455455
- if same listen-port is defined by multiple Ingress within IngressGroup, inbound-cidrs should only be defined on one of the Ingress.
456456

457457
!!!note "Default"
458-
458+
459459
- `0.0.0.0/0` will be used if the IPAddressType is "ipv4"
460460
- `0.0.0.0/0` and `::/0` will be used if the IPAddressType is "dualstack"
461461

@@ -506,7 +506,7 @@ ALB supports authentication with Cognito or OIDC. See [Authenticate Users Using
506506
```
507507
alb.ingress.kubernetes.io/auth-type: cognito
508508
```
509-
509+
510510
- <a name="auth-idp-cognito">`alb.ingress.kubernetes.io/auth-idp-cognito`</a> specifies the cognito idp configuration.
511511

512512
!!!tip ""
@@ -518,7 +518,7 @@ ALB supports authentication with Cognito or OIDC. See [Authenticate Users Using
518518
```
519519

520520
- <a name="auth-idp-oidc">`alb.ingress.kubernetes.io/auth-idp-oidc`</a> specifies the oidc idp configuration.
521-
521+
522522
!!!tip ""
523523
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:
524524
```yaml
@@ -538,12 +538,12 @@ ALB supports authentication with Cognito or OIDC. See [Authenticate Users Using
538538
```
539539

540540
- <a name="auth-on-unauthenticated-request">`alb.ingress.kubernetes.io/auth-on-unauthenticated-request`</a> specifies the behavior if the user is not authenticated.
541-
541+
542542
!!!info "options:"
543543
* **authenticate**: try authenticate with configured IDP.
544544
* **deny**: return an HTTP 401 Unauthorized error.
545545
* **allow**: allow the request to be forwarded to the target.
546-
546+
547547
!!!example
548548
```
549549
alb.ingress.kubernetes.io/auth-on-unauthenticated-request: authenticate
@@ -557,7 +557,7 @@ ALB supports authentication with Cognito or OIDC. See [Authenticate Users Using
557557
* **profile**
558558
* **openid**
559559
* **aws.cognito.signin.user.admin**
560-
560+
561561
!!!example
562562
```
563563
alb.ingress.kubernetes.io/auth-scope: 'email openid'
@@ -569,7 +569,7 @@ ALB supports authentication with Cognito or OIDC. See [Authenticate Users Using
569569
```
570570
alb.ingress.kubernetes.io/auth-session-cookie: custom-cookie
571571
```
572-
572+
573573
- <a name="auth-session-timeout">`alb.ingress.kubernetes.io/auth-session-timeout`</a> specifies the maximum duration of the authentication session, in seconds
574574

575575
!!!example
@@ -680,7 +680,7 @@ SSL support can be controlled with following annotations:
680680
!!!tip ""
681681
The first certificate in the list will be added as default certificate. And remaining certificate will be added to the optional certificate list.
682682
See [SSL Certificates](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/create-https-listener.html#https-listener-certificates) for more details.
683-
683+
684684
!!!tip "Certificate Discovery"
685685
TLS certificates for ALB Listeners can be automatically discovered with hostnames from Ingress resources. See [Certificate Discovery](cert_discovery.md) for instructions.
686686

@@ -693,7 +693,7 @@ SSL support can be controlled with following annotations:
693693
```
694694
alb.ingress.kubernetes.io/certificate-arn: arn:aws:acm:us-west-2:xxxxx:certificate/cert1,arn:aws:acm:us-west-2:xxxxx:certificate/cert2,arn:aws:acm:us-west-2:xxxxx:certificate/cert3
695695
```
696-
696+
697697
- <a name="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.
698698

699699
!!!example
@@ -712,7 +712,7 @@ Custom attributes to LoadBalancers and TargetGroups can be controlled with follo
712712
!!!note ""
713713
- 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.
714714
- 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+
716716
!!!example
717717
- enable access log to s3
718718
```
@@ -766,7 +766,7 @@ The AWS Load Balancer Controller automatically applies following tags to the AWS
766766
In addition, you can use annotations to specify additional tags
767767

768768
- <a name="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
770770
to the values specified on the service when there is conflict.
771771

772772
!!!example
@@ -801,3 +801,4 @@ In addition, you can use annotations to specify additional tags
801801
!!!example
802802
```alb.ingress.kubernetes.io/shield-advanced-protection: 'true'
803803
```
804+

0 commit comments

Comments
 (0)