Skip to content

Commit 736e120

Browse files
committed
Added docs for NLB ssl-domains usage
1 parent 48915c6 commit 736e120

File tree

1 file changed

+24
-12
lines changed

1 file changed

+24
-12
lines changed

docs/guide/service/annotations.md

Lines changed: 24 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
## Annotations
1212
!!!warning
1313
These annotations are specific to the kubernetes [service resources reconciled](#lb-type) by the AWS Load Balancer Controller. Although the list was initially derived from the k8s in-tree `kube-controller-manager`, this
14-
documentation is not an accurate reference for the services reconciled by the in-tree controller.
14+
documentation is not an accurate reference for the services reconciled by the in-tree controller.
1515

1616
| Name | Type | Default | Notes |
1717
|--------------------------------------------------------------------------------------------------|-------------------------|---------------------------|--------------------------------------------------------|
@@ -29,6 +29,7 @@
2929
| [service.beta.kubernetes.io/aws-load-balancer-access-log-s3-bucket-prefix](#deprecated-attributes)| string | | deprecated, in favor of [aws-load-balancer-attributes](#load-balancer-attributes)|
3030
| [service.beta.kubernetes.io/aws-load-balancer-cross-zone-load-balancing-enabled](#deprecated-attributes)| boolean | false | deprecated, in favor of [aws-load-balancer-attributes](#load-balancer-attributes)|
3131
| [service.beta.kubernetes.io/aws-load-balancer-ssl-cert](#ssl-cert) | stringList | | |
32+
| [service.beta.kubernetes.io/aws-load-balancer-ssl-domains](#ssl-domains) | stringList | | |
3233
| [service.beta.kubernetes.io/aws-load-balancer-ssl-ports](#ssl-ports) | stringList | | |
3334
| [service.beta.kubernetes.io/aws-load-balancer-ssl-negotiation-policy](#ssl-negotiation-policy) | string | ELBSecurityPolicy-2016-08 | |
3435
| [service.beta.kubernetes.io/aws-load-balancer-backend-protocol](#backend-protocol) | string | | |
@@ -49,9 +50,9 @@
4950
| [service.beta.kubernetes.io/aws-load-balancer-alpn-policy](#alpn-policy) | string | | |
5051
| [service.beta.kubernetes.io/aws-load-balancer-target-node-labels](#target-node-labels) | stringMap | | |
5152
| [service.beta.kubernetes.io/aws-load-balancer-attributes](#load-balancer-attributes) | stringMap | | |
52-
| [service.beta.kubernetes.io/aws-load-balancer-security-groups](#security-groups) | stringList | | |
53+
| [service.beta.kubernetes.io/aws-load-balancer-security-groups](#security-groups) | stringList | | |
5354
| [service.beta.kubernetes.io/aws-load-balancer-manage-backend-security-group-rules](#manage-backend-sg-rules) | boolean | true | If `service.beta.kubernetes.io/aws-load-balancer-security-groups` is specified, this must also be explicitly specified otherwise it defaults to `false`. |
54-
| [service.beta.kubernetes.io/aws-load-balancer-inbound-sg-rules-on-private-link-traffic](#update-security-settings) | string | |
55+
| [service.beta.kubernetes.io/aws-load-balancer-inbound-sg-rules-on-private-link-traffic](#update-security-settings) | string | |
5556

5657
## Traffic Routing
5758
Traffic Routing can be controlled with following annotations:
@@ -70,7 +71,7 @@ Traffic Routing can be controlled with following annotations:
7071

7172
!!!tip
7273
This annotation specifies the controller used to provision LoadBalancers (as specified in [legacy-cloud-provider](#legacy-cloud-provider)). Refer to [lb-scheme](#lb-scheme) to specify whether the LoadBalancer is internet-facing or internal.
73-
74+
7475
!!!note ""
7576
- [Deprecated] For type `nlb-ip`, the controller will provision an NLB with targets registered by IP address. This value is supported for backwards compatibility.
7677
- For type `external`, the NLB target type depends on the [nlb-target-type](#nlb-target-type) annotation.
@@ -242,11 +243,11 @@ for proxy protocol v2 configuration.
242243
!!!warning ""
243244
Only attributes defined in the annotation will be updated. To unset any AWS defaults(e.g. Disabling access logs after having them enabled once), the values need to be explicitly set to the original values(`access_logs.s3.enabled=false`) and omitting them is not sufficient.
244245
Custom attributes set in this annotation's config map will be overriden by annotation-specific attributes. For backwards compatibility, existing annotations for the individual load balancer attributes get precedence in case of ties.
245-
246+
246247
!!!note ""
247248
- If `deletion_protection.enabled=true` is in the annotation, the controller will not be able to delete the NLB during reconciliation. Once the attribute gets edited to `deletion_protection.enabled=false` during reconciliation, the deployer will force delete the resource.
248249
- Please note, if the deletion protection is not enabled via annotation (e.g. via AWS console), the controller still deletes the underlying resource.
249-
250+
250251
!!!example
251252
- enable access log to s3
252253
```
@@ -272,7 +273,7 @@ for proxy protocol v2 configuration.
272273
service.beta.kubernetes.io/aws-load-balancer-access-log-enabled
273274
service.beta.kubernetes.io/aws-load-balancer-access-log-s3-bucket-name
274275
service.beta.kubernetes.io/aws-load-balancer-access-log-s3-bucket-prefix
275-
service.beta.kubernetes.io/aws-load-balancer-cross-zone-load-balancing-enabled
276+
service.beta.kubernetes.io/aws-load-balancer-cross-zone-load-balancing-enabled
276277
```
277278

278279

@@ -385,6 +386,17 @@ You can configure TLS support via the following annotations:
385386
service.beta.kubernetes.io/aws-load-balancer-ssl-cert: arn:aws:acm:us-west-2:xxxxx:certificate/xxxxxxx
386387
```
387388

389+
- <a name="ssl-domains">`service.beta.kubernetes.io/aws-load-balancer-ssl-domains`</a> specifies the domain names for the NLB to which you want auto-discover the SSL certs.
390+
391+
!!!note ""
392+
When both the [ssl-cert](#ssl-cert) and [ssl-domains](#ssl-domains) are specified, `service.beta.kubernetes.io/aws-load-balancer-ssl-cert` annotation
393+
takes precedence over the `service.beta.kubernetes.io/aws-load-balancer-ssl-domains`.
394+
395+
!!!example
396+
```
397+
service.beta.kubernetes.io/aws-load-balancer-ssl-domains: my-nlb.example.com
398+
```
399+
388400
- <a name="ssl-ports">`service.beta.kubernetes.io/aws-load-balancer-ssl-ports`</a> specifies the frontend ports with TLS listeners.
389401

390402
!!!note ""
@@ -434,7 +446,7 @@ Load balancer access can be controlled via following annotations:
434446
This annotation will be ignored in case preserve client IP is not enabled.
435447
- preserve client IP is disabled by default for `IP` targets
436448
- preserve client IP is enabled by default for `instance` targets
437-
449+
438450
!!!warning ""
439451
Preserve client IP has no effect on traffic converted from IPv4 to IPv6 and on traffic converted from IPv6 to IPv4. The source IP of this type of traffic is always the private IP address of the Network Load Balancer.
440452
- This could cause the clients that have their traffic converted to bypass the specified CIDRs that are allowed to access the NLB.
@@ -495,7 +507,7 @@ Load balancer access can be controlled via following annotations:
495507
```
496508
service.beta.kubernetes.io/aws-load-balancer-security-groups: sg-xxxx, nameOfSg1, nameOfSg2
497509
```
498-
510+
499511
- <a name="manage-backend-sg-rules">`service.beta.kubernetes.io/aws-load-balancer-manage-backend-security-group-rules`</a> specifies whether the controller should automatically add the ingress rules to the instance/ENI security group.
500512

501513
!!!warning ""
@@ -506,7 +518,7 @@ Load balancer access can be controlled via following annotations:
506518
service.beta.kubernetes.io/aws-load-balancer-manage-backend-security-group-rules: "false"
507519
```
508520

509-
- <a name="update-security-settings">`service.beta.kubernetes.io/aws-load-balancer-inbound-sg-rules-on-private-link-traffic`</a> specifies whether to apply security group rules to traffic sent to the load balancer through AWS PrivateLink.
521+
- <a name="update-security-settings">`service.beta.kubernetes.io/aws-load-balancer-inbound-sg-rules-on-private-link-traffic`</a> specifies whether to apply security group rules to traffic sent to the load balancer through AWS PrivateLink.
510522

511523
!!!example
512524
```
@@ -517,8 +529,8 @@ Load balancer access can be controlled via following annotations:
517529
## Legacy Cloud Provider
518530
The AWS Load Balancer Controller manages Kubernetes Services in a compatible way with the AWS cloud provider's legacy service controller.
519531

520-
- For users on v2.5.0+, The AWS LBC provides a mutating webhook for service resources to set the `spec.loadBalancerCLass` field for Serive of type LoadBalancer, effectively making the AWS LBC the default controller for Service of type LoadBalancer.
532+
- For users on v2.5.0+, The AWS LBC provides a mutating webhook for service resources to set the `spec.loadBalancerCLass` field for Serive of type LoadBalancer, effectively making the AWS LBC the default controller for Service of type LoadBalancer.
521533
Users can disable this feature and revert to using the AWS Cloud Controller Manager as the default service controller by setting the helm chart value `enableServiceMutatorWebhook` to false with `--set enableServiceMutatorWebhook=false` .
522534
- For users on older versions, the annotation `service.beta.kubernetes.io/aws-load-balancer-type` is used to determine which controller reconciles the service. If the annotation value is `nlb-ip` or `external`,
523-
recent versions of the legacy cloud provider ignore the Service resource so that the AWS LBC can take over. For all other values of the annotation, the legacy cloud provider will handle the service.
535+
recent versions of the legacy cloud provider ignore the Service resource so that the AWS LBC can take over. For all other values of the annotation, the legacy cloud provider will handle the service.
524536
Note that this annotation should be specified during service creation and not edited later. Support for the annotation was added to the legacy cloud provider in Kubernetes v1.20, and is backported to v1.18.18+ and v1.19.10+.

0 commit comments

Comments
 (0)