plugin/kubernetes: Don't use pod names longer than 63 characters as dns labels (#4908)

Automatically submitted.
This commit is contained in:
Chris O'Haver
2021-10-06 11:59:37 -04:00
committed by GitHub
parent c6bcc8f2ff
commit 5534625c75
2 changed files with 5 additions and 3 deletions

View File

@@ -87,7 +87,7 @@ kubernetes [ZONES...] {
If this directive is included, then name selection for endpoints changes as If this directive is included, then name selection for endpoints changes as
follows: Use the hostname of the endpoint, or if hostname is not set, use the follows: Use the hostname of the endpoint, or if hostname is not set, use the
pod name of the pod targeted by the endpoint. If there is no pod targeted by pod name of the pod targeted by the endpoint. If there is no pod targeted by
the endpoint, use the dashed IP address form. the endpoint or pod name is longer than 63, use the dashed IP address form.
* `ttl` allows you to set a custom TTL for responses. The default is 5 seconds. The minimum TTL allowed is * `ttl` allows you to set a custom TTL for responses. The default is 5 seconds. The minimum TTL allowed is
0 seconds, and the maximum is capped at 3600 seconds. Setting TTL to 0 will prevent records from being cached. 0 seconds, and the maximum is capped at 3600 seconds. Setting TTL to 0 will prevent records from being cached.
* `noendpoints` will turn off the serving of endpoint records by disabling the watch on endpoints. * `noendpoints` will turn off the serving of endpoint records by disabling the watch on endpoints.

View File

@@ -136,7 +136,8 @@ func EndpointSliceToEndpoints(obj meta.Object) (meta.Object, error) {
if end.Hostname != nil { if end.Hostname != nil {
ea.Hostname = *end.Hostname ea.Hostname = *end.Hostname
} }
if end.TargetRef != nil { // ignore pod names that are too long to be a valid label
if end.TargetRef != nil && len(end.TargetRef.Name) < 64 {
ea.TargetRefName = end.TargetRef.Name ea.TargetRefName = end.TargetRef.Name
} }
if end.NodeName != nil { if end.NodeName != nil {
@@ -186,7 +187,8 @@ func EndpointSliceV1beta1ToEndpoints(obj meta.Object) (meta.Object, error) {
if end.Hostname != nil { if end.Hostname != nil {
ea.Hostname = *end.Hostname ea.Hostname = *end.Hostname
} }
if end.TargetRef != nil { // ignore pod names that are too long to be a valid label
if end.TargetRef != nil && len(end.TargetRef.Name) < 64 {
ea.TargetRefName = end.TargetRef.Name ea.TargetRefName = end.TargetRef.Name
} }
// EndpointSlice does not contain NodeName, leave blank // EndpointSlice does not contain NodeName, leave blank