From 50e940795156a310aa2fadb0ce5dcbb71cc45d85 Mon Sep 17 00:00:00 2001 From: Andrew Lytvynov Date: Mon, 7 May 2018 14:51:38 -0700 Subject: [PATCH] Populate internal DNS names in GCE provider Both VM name and hostname are internally routable. --- pkg/cloudprovider/providers/gce/gce_instances.go | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/pkg/cloudprovider/providers/gce/gce_instances.go b/pkg/cloudprovider/providers/gce/gce_instances.go index 0d4dc631494..4e791accd42 100644 --- a/pkg/cloudprovider/providers/gce/gce_instances.go +++ b/pkg/cloudprovider/providers/gce/gce_instances.go @@ -91,10 +91,20 @@ func (gce *GCECloud) NodeAddresses(_ context.Context, _ types.NodeName) ([]v1.No if err != nil { return nil, fmt.Errorf("couldn't get external IP: %v", err) } - return []v1.NodeAddress{ + addresses := []v1.NodeAddress{ {Type: v1.NodeInternalIP, Address: internalIP}, {Type: v1.NodeExternalIP, Address: externalIP}, - }, nil + } + + if internalDNSFull, err := metadata.Get("instance/hostname"); err != nil { + glog.Warningf("couldn't get full internal DNS name: %v", err) + } else { + addresses = append(addresses, + v1.NodeAddress{Type: v1.NodeInternalDNS, Address: internalDNSFull}, + v1.NodeAddress{Type: v1.NodeHostName, Address: internalDNSFull}, + ) + } + return addresses, nil } // NodeAddressesByProviderID will not be called from the node that is requesting this ID.