Commit 5534625c authored by Chris O'Haver's avatar Chris O'Haver Committed by GitHub

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

Automatically submitted.
parent c6bcc8f2
...@@ -87,7 +87,7 @@ kubernetes [ZONES...] { ...@@ -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.
......
...@@ -136,7 +136,8 @@ func EndpointSliceToEndpoints(obj meta.Object) (meta.Object, error) { ...@@ -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) { ...@@ -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
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment